pixou80 Posté(e) le 25 mars 2013 Partager Posté(e) le 25 mars 2013 Bonjour, je suis super nul en programmation et j'aimerai un peu d'aide ^^. J'ai créé il y a de cela un petit moment une page internet qui reprend mes favoris (elle affiche le nom et lien vers mes favoris). ce que je souhaite c'est en bas de page ajouter une zone de texte ou je puisse y coller des liens et que cette zone de texte conserve ces liens. j'ai reussi à creer une zone de texte avec : <textarea cols="50" rows="7" name="zone libre"></textarea> le problème c'est que le texte que je rentre disparaît après rechargement de la page. j’avais une idée: lier la zone de texte à un fichier .txt pour écrire dedans et ainsi conserver le texte de la zone de texte .Mais je veux pouvoir écrire et retirer le texte de cette zone de texte en passant directement par ma page internet (sans avoir a toucher au fichier txt). le soucis c'est que je ne sais pas comment faire un peu d'aide ? ^^ Lien vers le commentaire Partager sur d’autres sites More sharing options...
taistoiathos Posté(e) le 25 mars 2013 Partager Posté(e) le 25 mars 2013 Bonjour, j'ai un peu de mal àcomprendre ce que tu essaies de faire. Tout d'abord, qui saisis le texte dans la zone, un visiteur du site ou le webmaster? Lien vers le commentaire Partager sur d’autres sites More sharing options...
pixou80 Posté(e) le 25 mars 2013 Auteur Partager Posté(e) le 25 mars 2013 n'importe qui sans être loggué. Lien vers le commentaire Partager sur d’autres sites More sharing options...
seboss666 Posté(e) le 25 mars 2013 Partager Posté(e) le 25 mars 2013 il va falloir un peu de php pour faire ça à mon avis, un html ne sait pas par définition modifier un fichier texte côté serveur. Lien vers le commentaire Partager sur d’autres sites More sharing options...
pixou80 Posté(e) le 25 mars 2013 Auteur Partager Posté(e) le 25 mars 2013 si on sait me dire comment peut m'importe que ce soit php ^^ Lien vers le commentaire Partager sur d’autres sites More sharing options...
taistoiathos Posté(e) le 25 mars 2013 Partager Posté(e) le 25 mars 2013 Tu mets sur la page avec le formulaire <?php?><form method="post" action="write.php"> <textarea id="1" name="user_input"></textarea> <input type="submit" name="nom" value="Send" id="2"/></form> Sur la page "write.php" tu mets <?PHP$filename = "output.txt"; #Must CHMOD to 777$text = $_POST['user_input']; # Form must use POST. if it uses GET, use the linebelow:#$text = $_GET['user_input']; #POST is the preferred method$fp = fopen ($filename, "w"); # w = write to the file only, create file if it does not exist, discard existing contentsif ($fp) { fwrite ($fp, $text); fclose ($fp); echo ("File written");}else { echo ("File was not written");}?> Comme ça, ce que l'on aura tapé dans la zone de saisie sera dans le fichier "output.txt". Il suffirait donc de faire de telle sorte que ce soit lu la prochaine fois (sans doute il suffirait de placer, entre <textarea id="1" name="user_input"> et </textarea> <?php include('output.txt') ?> mais je n'en suis pas certain. Lien vers le commentaire Partager sur d’autres sites More sharing options...
pixou80 Posté(e) le 25 mars 2013 Auteur Partager Posté(e) le 25 mars 2013 ecrire quelque chose dans la zone de texte et l'envoyer l'inscrit bien dans le fichier output.txt. par contre le fait d'ajouter <?php include('output.txt') ?> à l'endroit ou tu l'indiques ajoute "<?php include('output.txt') ?>" dans la zone de texte. De plus est il possible lorsque l'on clique sur envoyer de ne pas afficher la page write.php qui indique File written et de rester sur la page principale ? mais ça ce n'est qu'un détail déjà faire en sorte que ce qui est écrit dans le fichier write vienne se mettre dans la zone de texte ^^ Lien vers le commentaire Partager sur d’autres sites More sharing options...
taistoiathos Posté(e) le 25 mars 2013 Partager Posté(e) le 25 mars 2013 Avec le saut de lignes... <?php?><form method="post" action="write.php"><textarea id="1" name="user_input"><?phpiclude('output.txt');?></textarea> <input type="submit" name="nom" value="Send" id="2"/></form> Pour rester sur la page principale, il faut regarder un peu du cote de "self_echo", mais la, il me faudra chercher un peu... Sans doutre d'autres inpacticiens connaissent par coeur ces choses-la. Lien vers le commentaire Partager sur d’autres sites More sharing options...
pixou80 Posté(e) le 25 mars 2013 Auteur Partager Posté(e) le 25 mars 2013 comme indiqué ça ne change rien j'ai cela dans la zone de texte : <?php iclude('output.txt'); ?> Lien vers le commentaire Partager sur d’autres sites More sharing options...
taistoiathos Posté(e) le 25 mars 2013 Partager Posté(e) le 25 mars 2013 Euh.. désolé, une petite erreur de frappe... include au lieu de iclude... Lien vers le commentaire Partager sur d’autres sites More sharing options...
pixou80 Posté(e) le 25 mars 2013 Auteur Partager Posté(e) le 25 mars 2013 oups j'ai fait un copier coller pour écrire le message mais j'ai bien mis include dans mon fichier et ca indique bien dans la zone de texte : <?php include('output.txt'); ?> Lien vers le commentaire Partager sur d’autres sites More sharing options...
taistoiathos Posté(e) le 25 mars 2013 Partager Posté(e) le 25 mars 2013 Avec saut de lignes avant <?php et apres ?> ? Ça marche chez moi... Lien vers le commentaire Partager sur d’autres sites More sharing options...
pixou80 Posté(e) le 25 mars 2013 Auteur Partager Posté(e) le 25 mars 2013 j'ai noté ca tel quel : <?php ?> <form method="post" action="write.php"> <textarea id="1" name="user_input"> <?php include('output.txt'); ?> </textarea> <input type="submit" name="nom" value="Send" id="2"/> </form> et j'ai dans la zone de texte : <?php include('output.txt'); ?> je suis même parti d'un fichier vierge en n'inscrivant que ce que tu m'a donné et ca me mets bien <?php ... dans la zone de texte je ne comprends plus la :s Lien vers le commentaire Partager sur d’autres sites More sharing options...
taistoiathos Posté(e) le 25 mars 2013 Partager Posté(e) le 25 mars 2013 Quel est l'extension du fichier? Si c'est .html, peut-être il faut le changer en .php Sinon, y'aurait-il des fois un espace devant le deuxième <?php ? A part ça, je ne vois pas trop... Lien vers le commentaire Partager sur d’autres sites More sharing options...
pixou80 Posté(e) le 25 mars 2013 Auteur Partager Posté(e) le 25 mars 2013 c'est bien ca l'erreur html ... passé en php et ca roule merci bien. Plus qu'a trouver comment transformer mon texte en lien et empêcher d'aller sur le write.php avec écrit File written quand je clique sur send Lien vers le commentaire Partager sur d’autres sites More sharing options...
taistoiathos Posté(e) le 25 mars 2013 Partager Posté(e) le 25 mars 2013 Une idée simple qui n'utilise pas self_echo. Tu peux simplement placer le code pour write.php (n'importe où) dans le fichier pour la page principale, et dans la page principale tu modifie la ligne <form method="post" action="write.php"> Au lieu de write.php, tu mets le nom du fichier de la page principale. Ça devrait suffire. Lien vers le commentaire Partager sur d’autres sites More sharing options...
RaphAstronome Posté(e) le 26 mars 2013 Partager Posté(e) le 26 mars 2013 Arrête immédiatement avec l'include qui lit quelque chose venant de l'utilisateur !!! C'est une faille de sécurité énorme, ton visiteur peut exécuter n'importe quoi sur ton serveur avec ça et faire ce qu'il veux avec ton site ! Pour afficher un fichier on utilise plutôt readfile mais l'utilisateur peut tout de même envoyer du code HTML donc faille XSS. Il faut donc en plus d'utiliser autre chose qu'include le sécuriser par htmlentities soit à l'affichage (souvent préféré car plus propre) soit à l'écriture (plus rapide pour le serveur). Pour le htmlentities à la lecture : htmlentities(file_get_contents('output.txt')); Pour le htmlentities à l'écriture (remplacer le fwrite éxistant) : fwrite ($fp, htmlentities($text)); Il ne faut pas faire les deux en même temps car sinon ça double corrige le code, il y a aussi magic_quotes qui échappe automatiquement les ' en \' (entre autres) mais normalement c'est plus le cas (obsolète et normalement désactivé). Si ta page est en UTF8 et que ton PHP est pas tout récent il faut que le htmlentities soit paramétré pour prendre en compte htmlentities($text, ENT_COMPAT, 'UTF-8') Lien vers le commentaire Partager sur d’autres sites More sharing options...
taistoiathos Posté(e) le 26 mars 2013 Partager Posté(e) le 26 mars 2013 Arrête immédiatement avec l'include qui lit quelque chose venant de l'utilisateur !!! C'est une faille de sécurité énorme, ton visiteur peut exécuter n'importe quoi sur ton serveur avec ça et faire ce qu'il veux avec ton site ! Je m'imaginais que groskeke avait sa page sur un serveur local ou sur un endroit où personne n'y va, vu qu'il laisse "n'importe qui" modifier le contenu de sa page... Sinon je n'aurais pas suggéré fwrite avec include ... Mais bien sûr tu as raison, même un URL clandestin attire les hacker... Sinon, pour savoir la version/configuration du serveur php, il suffit une page avec <?phpinfo()?> Lien vers le commentaire Partager sur d’autres sites More sharing options...
pixou80 Posté(e) le 26 mars 2013 Auteur Partager Posté(e) le 26 mars 2013 En effet mon site est perso je suis le seul a y aller mais on ne sait jamais ^^ merci je vais essayer de modifier tout ca voici les informations sur la version du serveur : PHP Version 4.4.3-dev édit : c'est ok pour les modifications apportées. Merci beaucoup. par contre quelqu'un sait t'il comment afficher mon texte en lien ? en ce qui concerne la modification pour ne pas être redirigé vers le write.php avec écrit file written je n'ai pas reussi. pour le lien, petit exemple: j'écris www.google.fr ou hhtp://.... après avoir cliqué sur "send" le texte passe en tant que lien dans la zone de texte. Lien vers le commentaire Partager sur d’autres sites More sharing options...
taistoiathos Posté(e) le 27 mars 2013 Partager Posté(e) le 27 mars 2013 il suffirait donc de définir une fonction qui prend comme argument un string et qui remplace tous les sous-strings de forme http:// ... en <a href="http:// ...> http:// ... </a> Je suppose que tu ne veux pas taper tout ça dans la zone texte, et c'est parce qu'il y en a beaucoup ? Auquel cas, sans doute le mieux serait, au lieu de bricoler comme ça juste avec le php, te servir d'une base de donnée... Tu veux nous montrer à quoi ressemble tes pages? Lien vers le commentaire Partager sur d’autres sites More sharing options...
pixou80 Posté(e) le 27 mars 2013 Auteur Partager Posté(e) le 27 mars 2013 voici une image de la page : En partie haute j'ai juste mis 3 colonnes et des liens (liens répertoriés par theme). Ces liens sont directement rentrés dans l'index.php et uploadé sur le serveur. En bas la zone de texte dont je veux mettre des liens "provisoires". Lien vers le commentaire Partager sur d’autres sites More sharing options...
taistoiathos Posté(e) le 27 mars 2013 Partager Posté(e) le 27 mars 2013 Elle est un peu trop floue... Lien vers le commentaire Partager sur d’autres sites More sharing options...
pixou80 Posté(e) le 27 mars 2013 Auteur Partager Posté(e) le 27 mars 2013 normal c'est mes liens que j'ai masqué (liens perso) ce n'est que des liens avec les favicon.ico à coté rien de nécessaire à la création de liens dans la zone de texte Lien vers le commentaire Partager sur d’autres sites More sharing options...
taistoiathos Posté(e) le 28 mars 2013 Partager Posté(e) le 28 mars 2013 D'accord, dans ce cas le mieux serait de faire une table mysql avec les liens et l'emplacement de favicon.ico, et faire afficher avec php. Surtout si il y a encore beaucoup de lien a ajoute. Lien vers le commentaire Partager sur d’autres sites More sharing options...
pixou80 Posté(e) le 28 mars 2013 Auteur Partager Posté(e) le 28 mars 2013 non mais je ne veux pas ajouter les liens de la zone de texte avec les autres. ceux du haut sont permanent. ceux de la zone de texte restent dans la zone de texte pour être retiré plus tard. C'est pour cela que j'ai ajouté la zone de texte et veux transformer mon texte en lien. reste a savoir comment modifier un texte de la zone de texte en lien. mystère... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.