Aller au contenu

TheRec

Hubmaster
  • Compteur de contenus

    1 777
  • Inscrit(e) le

  • Dernière visite

Tout ce qui a été posté par TheRec

  1. Bonjour, Pour obtenir le tableau final que tu souhaites j'utiliserais la création d'index automatiques (bref quand tu donne un index qui n'existe pas PHP crée cet index... s'il existe déjà la valeur que tu lui attribue remplace la précédente). Dans la condition vérifiant si le nom de la catégorie Drupal est égal à celle de DC (donc où tu affiche "well done! ...") j'utiliserais ce code : $new_dc[$dc_array[0]] = $drupal_array[0]; Ah et pour créer ton tableau $new_dc je n'ai pas bien compris pourquoi tu mettais l'élément avec l'index "0" à la valeur 0 :S Je ne comprends pas non plus l'utilité de ta boucle foreach... vu que tu connais les clés des tableaux dans lesquelles se trouvent les id des catégories (dc_array[0] et $drupal_array[0]). Mais peut-être ai-je mal compris ton problème ? :S
  2. Bonjour, J'ai pour habitude de mettre en doute le fonctionnement de PHP ou Apache qu'après avoir : Testé le script en question dans un environnement recommandé (Linux, sans safe_mode, ...) Verifié ma fonction ... Comme tu l'as dit, le problème peut avoir plusieurs source : bug dans ton script, bug de PHP avec les système de fichier que tu as utilisé (FAT32 ou NTFS, vu que c'est Windows), erreur dans ton appel récursif (en supposant que tu as utilisé la récursivité ?)... Peux-tu nous montrer le code que tu utilises pour transposer l'arborescence du système de fichier en un tableau PHP ? Ce sera plus facile pour essayer de reproduire ce problème
  3. Hé bien, au moins t'auras profité d'une baignade... avec cette chaleur c'est pas si mal... La fonction qui se trouve vers le lien que je t'ai envoyé permet de faire cela, à la seule condition que ton hébergeur permette la lecture à distance des fichiers avec les fonctions de lecture. Il faudrait juste la modifier un peu : <?php function force_download($filename) { if(@fopen($filename, "r")) { header("Content-Type: application/force-download\n"); header("Content-Disposition: attachment; filename=$filename"); readfile($filename); return true; } else { return false; } } ?> Ceci doit se mettre dans un fichier PHP (par exemple download.php)... et ensuite, en dessous de ces lignes, tu utilises un code de ce genre pour appeler la fonction que tu viens de créer : <?php if(!force_download("http://www.unhchr.ch/udhr/lang/frn.pdf")) { echo 'Le fichier demandé n\'existe pas ou n\'est pas atteignable.'; } ?> (J'ai pris un PDF au bol.. Déclaration universelle des droits de l'homme ) Désolé si tu ne comprends pas ce dont je parle, à ma connaissance c'est le seul moyen de procéder...du moins en PHP (Javascript pourrait difficilement s'occuper de ce genre de tâches). Avec d'autres langages côté serveur (ASP.net, JSP, ...) c'est également possible.
  4. Bonsoir, Tu peux faire cela avec les en-têtes HTTP appropriées, voici un exemple se trouvant dans les commentaires du manuel PHP (pas testé... mais il est annoncé que cela fonctionne dans IE et FF...à toi de voir pour les autres navigateurs). Il faut simplement qu'aucun autre caractère ne soit envoyé au navigateur avant que tu utilises la fonction header
  5. Bonjour, Dans le contexte d'un courriel en texte brut, "\n" (Linux), "\r\n" (Windows) et "\n\r" (Mac) représentent un retour à la ligne comme tu l'entends. Lorsque consulte un document (dans un fichier envoyé par un serveur HTTP, comme Apache) sans préciser que ce que tu veux envoyer est du texte brute, le document est interprété comme un fichier HTML et dans ce cas les retours de lignes ne signifient rien. Comme l'a dit birou, si tu veux un retour à la ligne en HTML c'est avec <br/> que cela est possible. Comme tu souhaites envoyer un courriel en texte brute tu ne va pas utiliser <br/> (qui ne signifie rien hors du contexte HTML). Pour afficher les résultats comme le destinataire du courriel va le recevoir, tu peux utiliser cette méthode : <pre><?php echo $message; ?></pre> Dans la balises <pre> le contenu est interprété comme s'il s'agissait d'un fichier texte et donc les retour à la ligne sont effectifs. Tu peux aussi opter pour une autre solution qui consiste à indiquer au navigateur (par un en-tête HTTP) que tu souhaites interpréter tout le contenu reçu au format texte brut : <?php header("Content-type: text/plain"); ?> Bonne continuation. EDIT: Grillé...
  6. De rien, pas de problème... je t'avoue que je n'avais pas saisi tout de suite la finalité de ton problème... enfin, c'est réglé Pour modifier le titre de ton sujet, il n'y a pas besoin de le faire sur le Hub. Dan ne tient pas à être premier sur ce terme dans tous les moteurs de recherches
  7. Bonjour, Sur ce billet la partie "graphique" xHTML/CSS et à partir de là, dans les commentaires j'ai trouvé ceci et cela qui parlent tous deux du même système, mais le dernier est une marche à suivre complète avec les fichiers nécessaires. J'ajouterais juste une vérification de la valeur que l'utilisateur envoie, qu'elle soit comprise entre les bornes de ton système de notes sinon cela serait trop facile de "tricher" Cela se passera à l'intérieur de cette fonction Javascript : function rateImg(rating,imgId) { remotos = new datosServidor; nt = remotos.enviar('update.php?rating='+rating+'&imgId='+imgId); rating = rating * 25; document.getElementById('current-rating').style.width = rating+'px'; } Bonne continuation !
  8. La formulation de ta question, "ma règle de réécriture me permet de", m'avait laissé pensé que tu avais développé le système de réécriture toi-même Enfin bref... tu peux spécifier ce code (HTML) dans les pages qui seront concernées : <base href="http://www.tonsite.com/" /> (Placé entre <head> et </head>). Les navigateurs vont ensuite utiliser ce chemin comme base pour "résoudre" les chemins relatifs... Sinon tu peux aussi spécifier tous les liens, images, CSS, ... en URL absolues (cela fait quand même plus de travail).
  9. Hé bien un peu de logique, c'est de ton fichier rewrite.php dont nous avons besoin ou plutôt la partie que tu as modifiée afin de rendre la réécriture possible (la/les règle(s) que tu as créée(s) en PHP). Si tu ne donnes pas les éléments qui sont la base de ton problème personne ne pourras t'aider à le résoudre.
  10. Bonjour, Il serait plus facile de te répondre si tu nous communiquais le contenu de ton fichier .htaccess (en entier, tu asles baslises CODE et CODEBOX à disposition en fonction de la longueur de ce fichier), afin qu'on puisse te dire comment modifier ta règle efficacement.
  11. TheRec

    Probleme de formulaire

    Bonjour, il faut passer une ressource MySQL à la fonction mysql_fetch_array... la ressource MySQL en question tu l'as créée avec la fonction mysql_query juste avant... donc modifie la ligne : while($choix = mysql_fetch_array) par while($choix = mysql_fetch_array($req)) Et ça fonctionnera. P.S. : Le format du champ n'est pas très important... le typage de PHP n'est pas si fort, d'ailleurs les données sont récupérées en chaînes de caractères.
  12. À ce moment, autant définir le sujet de l'e-mail en "dur" dans le fichier PHP qui envoie l'e-mail (je suppose avec la fonction mail) ... ainsi tes utilisateurs ne pourront pas le modifier. Ensuite au sujet de l'adresse e-mail, il suffit de définir un en-tête spécifie pour envoyer l'e-mail à partir d'une adresse e-mail qui n'existe pas... . Avec ce code PHP par exemple : mail($email_destinataire, "Commande Vtuning", $contenu_email, "From: noreply_AT_tondomain.com") Cela affichera "noreply_AT_tondomain.com" comme expéditeur lorsque ton visiteur ouvrira cet e-mail... Je pense que c'est cela dont tu parlais... si ce n'est pas le cas essaie de reforumler ta question.
  13. Qu'entends tu par "ça ne marche pas" (essaie au moins de dire ce qui se passe, une erreur 404 ?, il charge une autre page que ce que tu souhaites ?, ...) ? Dans ta règle tu prévois une partie fixe et 2 paramètres séparés par des traits d'union ... lorsque tu essaie d'utiliser une URL comme "A-B-C1-C2.php" tu as un trait d'union de plus... le moteur d'expression régulière est gourmand (et le mod_rewrite ne permet pas de modifier ce comportement, contrairement à PHP par exemple)... Tu utilises (.*) il va prendre le deuxième trait d'union comme faisant partie de ton premier paramètre ... et le deuxième paramètre sera "C2" (toujours avec l'exemple "A-B-C1-C2.php")... Pour changer ce comportement je te propose cette règle : RewriteRule ^a-([^-]+)-(.+)\.php$ $2.php?s=$1 [L] Ainsi ton premier paramètre ne DOIT par comprendre un trait d'union...et le deuxième paramètre lui peu en comprendre un si nécessaire. En espérant avoir compris ce que tu voulais dire par "ça ne marche pas" Bonne continuation. EDIT : Bon j'arrive après la tempête... Pardon.
  14. De rien ... juste pour être sûr que tu as bien compris quand je parlais d'un "problème similaire", la réponse qui a été donnée à ce problème est ce tutorial : http://www.asp-php.net/scripts/asp-php/ajax.php?page=1 Il permet d'obtenir ce que tu cherches... il te reste juste à appliquer cette méthode pour rajouter la sélection du pays en plus du département et de la ville.
  15. Il n'existe pas de fonction copydir ... Le fonction "copydirr" (r pour récursive) c'est la fonction (créée par une personne, pas native à PHP) qui se trouve dans les commentaires sur la page du manuel PHP de la fonction copy à cette adresse : http://ch2.php.net/manual/fr/function.copy.php#55130 Normal que tu ne trouves pas cela dans le CHM du manuel PHP, les commentaires ne se trouvent que sur le manuel online.
  16. En fait après relecture des commentaires la fonction rename à des problèmes de portabilité également, mais pas du même ordre (c'est l'implémentation de la fonction qui pose problème...les contraintes des systèmes de fichiers étant différentes)... Il va donc falloir faire le déplacement toi-même... c'est à dire : copie vers le nouvel emplacement et suppression des fichiers originaux ayant été copiés correctement. La copie devant être récursive (sous-répertoire, fichiers, ...) tu peux utiliser cette fonction trouvée dans les commentaires de la fonction copy. Pour la suppression tu as la fonction unlink et rmdir ... à toi de les coupler à la fonction copydirr (celle des commentaires de copy) afin qu'une fois qu'un fichier a été copié il soit supprimé. Tu peux éventuellement faire une fonction qui supprime un répertoire récursivement, mais c'est préférable de supprimer les fichiers un à un, histoire de ne pas avoir de surprise lorsqu'il y a un problème de permission ou d'accès à un fichier... Je ne vois pas trop d'autre solution qui soit portable. P.S: Dans un environement Linux, rename déplace les fichiers et tu reçois des avertissements lorsque des fichiers existent déjà etc.
  17. Bonjour, La fonction ftp_chdir permet de changer de répertoire courant sur le FTP, pas de déplacer des fichiers ou des dossiers. La fonction system(), exec(), shell_exec(), etc. sont possible comme tu te trouves sur un serveur dédié... elle a l'inconvénient de nuire à la portabilité de ton application, sous Windows par exemple ton script ne fonctionnera pas, la commande "mv" n'existe pas... De plus si une fois tu viens à activer le safe_mode ce sont des fonctions qui ne seront plus activées ou limitées. J'utiliserais plutôt la fonction rename, elle n'a pas ce problème de portabilité car elle fonctionne directement sur le système de fichiers (sans faire appel à un "programme" externe). Regarde parmi les commentaires sur cette page du manuel PHP, il y a des fonctions toutes faites et très intéressantes. Bonne continuation.
  18. Cela ne me contredit pas... je t'ai donné une solution à ton problème... as-tu lu le sujet vers lequel je t'ai orienté ? : À toi de modifier le procodé expliqué dans ce message (il faut suivre un lien vers un tutorial, il se trouve dans le deuxième message...enfin la première réponse à ce sujet) afin qu'avant de sélectionner le département, l'utilisateur doive sélectionner le pays... Ce que tu souhaites faire s'appelle de nos jour de l'AJAX (Asynchronous JavaScript and XML), ce n'est pas un langage à proprement parler, c'est une méthode de développement qui allie plusieurs technologies afin de permettre, entre autres, la récupération de données sans que l'utilisateur ait besoin de rafraîchir ou de changer de page (c'est très réducteur comme description) ... Tu vas trouver foison de "documentation" à ce sujet sur le Web (c'est très à la mode...quoique le buzz retombe un peu ces temps à mon avis). Quelques mots clé : AJAX, XMLHttpRequest, Web 2.0 (c'est beaucoup plus général), AJAX framework. Lorsque je tai dit que ce serait difficilement faisable je parlais de laccessibilité... Pour les personne ne pouvant ou ne souhaitant pas activer Javascript (on parle généralement de 10% des visiteurs, mais cela varie beaucoup en fonction de ton public cible), ce genre de formulaire est inaccessible dans la forme purement Javascript (AJAX)... Il est donc préférable que tu prévoies une solution alternative pour les utilisateurs n'ayant pas Javascript activé dans leur navigateur.
  19. Bonsoir, Cest possible évidemment, un problème similaire avait été traité il y a moins d'un mois. Il manque juste la partie "Pays", mais ce ne doit pas être trop compliqué de le faire... Reste ce problème d'accessibilité, c'est faisable mais cela n'est pas possible sans "rafraîchir" ou changer de page à chaque fois qu'un champ (une liste déroulante) a été choisi par l'utilisateur (ce qui est impossible sans que ce changement soit initié par l'utilisateur lui même... sans Javascript). Bien entendu ce système serait utilisé uniquement si Javascript nest pas activé.
  20. Bonsoir, lorsque tu génère ta liste déroulante (balise <select>), je suppose avec une boucle ou même sans c'est égale, utilise une condition sur la page courante et/ou en fonction de la variable $_POST['choix-forum'] (mais si ton visiteur atterrit sur ta page sans passer par ton formulaire la condition ne sera pas efficace) et si elle est vérifiée utilise l'attribut "selected" : <select name="choix-forum"> <option<?php echo $current_forum == 'forum_a' ? ' selected="selected"' : ''; ?>>Forum A</option> <option<?php echo $current_forum == 'forum_b' ? ' selected="selected"' : ''; ?>>Forum B</option> <option<?php echo $current_forum == 'forum_c' ? ' selected="selected"' : ''; ?>>Forum C</option> </select> A toi de t'arranger pour que la variable $current_forum contienne ce qu'il faut (en fonction de variables comme $_SERVER['REQUEST_URI'] par exemple... ou ta variable $_POST['choix-forum', mais cela pose le problème que je t'ai indiqué précédemment). En passant, si tu veux que ta liste envoie une valeur lorsque le formulaire est envoyé autrement qu'avec Javascript (Je suppose que tu utilise Javascript pour ton "menu"), utilise l'attribut value : <option value="forum_a"<?php echo $current_forum == 'forum_a' ? ' selected="selected"' : ''; ?>>Forum A</option>
  21. TheRec

    afichage d'une image

    Bonjour, Dans ton cas tu souhaites apparemment afficher une variable à l'intérieur d'une chaîne de caractère... Le manuel PHP explique les différentes possibilités de faire ceci. Si je suis la méthode que tu voulais utiliser, voici ce que cela donne : echo '<img src="/img/'.$donnees['img1'].'" />'; Au passage, pour présenter du code sur le forum, préfère la balise CODE à la QUOTE
  22. Moi j'ai un penchant pour CakePHP... "on" dit qu'il a une courbe d'apprentissage raide, personnellement il me convient et je m'y suis mis en moins d'une semaine et contrairement à Symfony l'architecture MVC est clairement représentée par le système de fichier (répertoires distincts et bien nommés, validation par les Modèles et non les contrôleurs, ...). De plus ils conservent une compatibilité avec PHP4 ce qui colle plus avec les besoins de certain de mes clients qui hébergent eux même leur site ou qui ont une contrainte à ce niveau. P.S. : Si jamais tu manques de ressource à ce sujet, j'ai écris le mois passé un article à ce sujet, il y a quelques liens utiles en fin d'article et dans l'article tu auras un résumé de ce que je pense, pour ce que ça vaut
  23. Bonjour, SylvioCO> Symfony n'a pas vraiment de rapport avec les CMS (enfin si, tu peux tout à fait développer un CMS en te basant sur Symfony)... c'est un framework de développement en PHP5, le sujet porte plutôt sur les frameworks de gestion de contenu (ModX, Joolma, ...). Sinon je suis d'accord avec toi, Symfony est un très bon framework, personnellement je préfère CakePHP (compatible PHP4 et PHP5)... mais lorsque PHP5 sera démocratisé j'opterai sûrement pour Symfony
  24. Bonjour, Ton Handler, ne serait-il pas justement le gestionnaire des document d'erreur (soit ton serveur HTTP). Le rewriting en PHP est fait en principe, on exploite le fait qu'un fichier n'étant pas trouvé par Apache (ou autre) mène le visiteur vers une page d'erreur définie par tes soins avec un .htaccess et la directive ErrorDocument... Et cette page d'erreur (en PHP) s'occupe du traitement du rewriting. Maintenant sans plus de détails sur ton Handler, il me parait difficile de trouver une solution à ton problème... mais à première vu le problème se situerait plutôt au niveau de ton serveur HTTP plutôt qu'au niveau de PHP... PHP (quelque version que ce soit) ne s'occupe pas de rediriger ou d'envoyer de réponse HTTP (Status, ...) sans qu'on le lui demande... alors qu'un serveur HTTP, c'est ton travail, s'il ne trouve pas une ressource il va envoyer un message d'erreur. En bref, montre nous un peu de code (PHP, .htaccess, ... tout ce qui fait partie de ta chaîne de réécriture) ne utilisant les balises BB Codes appropriés pour mettre en forme ton message (CODE pour petit morceau de code, CODEBOX pour les gros morceaux ). P.S. : Précise également les versions exactement des composants utilisés (Apache, PHP)... tu peux les trouver avec la fonction phpinfo(). Et également où sonts hébergées tes pages (nom de l'hébergeur).
  25. Bonjour Il existe entre autres les licences gratuites Creative Commons... elles permettent de demande que lors de l'utilisation d'une uvre (en l'occurrence ton script), l'auteur soit cité. À toi de choisir la licence qui te convient le mieux... Il existe aussi des licence GNU/GPL, GNU/LGPL mais il me semble que ces licences, sur le territoire français, ne soit pas vraiment fiables. Bonne continuation !
×
×
  • Créer...