Aller au contenu

zone de texte sur site internet


pixou80

Messages recommandés

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

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

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

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

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

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. &Ccedila devrait suffire.

Lien vers le commentaire
Partager sur d’autres sites

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

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

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

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

voici une image de la page :

th_400277279_Sanstitre_2_122_390lo.jpg

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

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

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...