Jump to content

zone de texte sur site internet


Recommended Posts

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 ? ^^

Link to comment
Share on other 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.

Link to comment
Share on other 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 ^^

Link to comment
Share on other 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.

Link to comment
Share on other 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

Link to comment
Share on other sites

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

Link to comment
Share on other 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.

Link to comment
Share on other 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')

Link to comment
Share on other 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()?>
Link to comment
Share on other 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.

Link to comment
Share on other 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?

Link to comment
Share on other 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".

Link to comment
Share on other 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...

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...