KioskeaKioskeaCommentCaMarcheInscrivez-vous, c'est gratuit !
Vendredi 16 mai 2008 - 05:24:29

[php][formulaire]

Rechercher : dans
[php][formulaire]
par spirou
 Fil de Discussions
Statut : Non résolu
vendredi 19 août 2005 à 16:04:09
Bonjour à tous,

Ne connaissant strictement rien au php, et avant de commencer à apprendre, je m'amuse à tester différents scripts afin de voir exactement ce que l'on peut vraiment faire avec et surtout pour ne pas utiliser de javascript que je ne connais d'ailleurs pas non plus.

Ce script provient du magazine Linux Pratique, mais l'ayant recopier à la lettre en ayant juste rajouté des identifiant pour le css, il s'avère qu'il ne fonctionne pas.
[code]<form action="<?echo$PHP_SELF?>" method="post">
<textarea id="saisie" name="message" wrap=virtual></textarea>
<input id="bouton" type="submit" value="Envoyer">
</form>

<?
if (!empty($_POST['message'])) {
$fp = fopen("contact.txt", "a");
fwrite($fp, n12br($_POST['message'])."<p>\n");
fclose($fp);
}
?>
[/code]
Je vois qu'il y a une erreur après le <p>, puisque sur ma page s'affiche \n"); fclose($fp); } ?>

Messages

Ou se situe réellement l'erreur ?
Répondre à spirou  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par kilian, le vendredi 19 août 2005 à 16:12:18 Fil de Discussions
Tu l'utilises comment cette page?
Tu l'ouvres chez toi sans passer par un site?
Répondre à kilian

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par spirou, le vendredi 19 août 2005 à 18:26:19 Fil de Discussions
Oui je l'utilise de chez moi, vu que je n'ai encore rien mis en ligne.

J'ai installé easy php sur mon ordinateur et mis le dossier contenant mes pages dedans, et lorsque je cliques sur le bouton envoyer, il m'affiche une page d'erreur.
Répondre à spirou

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par kilian, le vendredi 19 août 2005 à 18:28:39 Fil de Discussions
Et tu l'ouvres bien en tapant http://localhost ou http://127.0.0.1 ?
Répondre à kilian

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par spirou, le vendredi 19 août 2005 à 18:59:28 Fil de Discussions
Oui, j'ouvres les pages en cliquant sur easy php et en allant dans web local.
Répondre à spirou

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par spirou, le vendredi 19 août 2005 à 21:27:52 Fil de Discussions
Bon je résume :

Il me met comme erreur :

Forbidden
You don't have permission to access /mon_répertoire/< on this server.

Apache/1.3.33 Server at 127.0.0.1 Port 80

Je n'ai défini aucun droit sur mon_répertoire et suis administrateur, alors ???

J'ai essayé avec 4 navigateurs différents, et c'est pareil.
J'ai aussi essayé de voir dans les options avancés de PhpMyAdmin, et je crois avoir fais une connerie, puisque je n'arrive plus à avoir accès à phpMyAdmin, il me met "Le h�te 'localhost' n'est pas authoris� � se connecter � ce serveur MySQL ", zut !!!

Je remets mon code, au cas où quelqu'un verrait un truc qui colle pas.

<H1>CONTACT</H1>
    
    <FORM action="<?ECHO $PHP_SELF?>" method="post">
    <TEXTAREA id="saisie" name="message" wrap=virtual></TEXTAREA>
    <INPUT id="bouton" type="submit" value="Envoyer">
    </FORM>
    
    <?PHP
    IF (!EMPTY($_POST['message'])) {
    $fp = FOPEN("contact.txt", "a");
    FWRITE($fp, n12br($_POST['message'])."<p>\n>");
    FCLOSE($fp);
    }
    ?>
    
    <p>Historiques :</p>
   
    <?
  
    readFile("contact.txt")
  
    ?>

Quand j'enlève la balise <p>, \n>"); FCLOSE($fp); } ?>ne s'affiche plus sur ma page, mais toujours une erreur lorsque je valide avec le bouton.

Ca commence bien, à peine commencé, de suite un problème....
Répondre à spirou

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par kilian, le vendredi 19 août 2005 à 21:32:48 Fil de Discussions
Argh, tiens c'est bizzare.
Tu as un fichier qui s'appele .htaccess dans tes repertoires?

Et pour mysql tu es sûr qu'il est démarré? Sinon essaie de remplacer l'hôte par 127.0.0.1
Et tu avait installé easyphp en admin aussi?
Répondre à kilian

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par spirou, le vendredi 19 août 2005 à 21:52:39 Fil de Discussions
Oui, j'ai trouvé un fichier .htaccess et il contient ceci:

Order deny,allow
allow from 127.0.0.1
deny from all

Je l'avais installé en tant qu'administrateur.
J'ai aussi essayé en localhost et en 127.0.0.1, mais sans résultat.
Répondre à spirou

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par kilian, le samedi 20 août 2005 à 00:35:39 Fil de Discussions
Je connais pas trop les htaccess.
Essaie toujours de renommer ce fichier en ce que tu veux.
Sans ce fichier, tu devrais avoir moins de soucis. Par contre après ça, l'accés à ton site local sera accessible par tous si ton firewall ne bloque pas l'accés.

Mais essaie toujours pour voir...
Ca fonctionnait bien avant?
Répondre à kilian

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par Babylontiti, le samedi 20 août 2005 à 06:18:58 Fil de Discussions
Salut,

Quelques suggestions:
Remplacer:
<form action="<?echo$PHP_SELF?>" method="post">
(Il manque la fin d'instruction ';')
par:
<form action="<?echo $PHP_SELF;?>" method="post">

Ensuite remplacer:
 fwrite($fp, n12br($_POST['message'])."<p>\n");
(Fonction: NL2BR() --> Petite erreur de recopiage... ;-))
par:
 fwrite($fp, "nl2br($_POST[\'message\'])<p>\r\n");

Et voilà, déjà un début.
PS:Le fichier ".htaccess" semble correct.
Bye @+ "La culture, c'est comme la confiture...
Moins on n'en as, plus on l'étale...!" ;-)
Répondre à Babylontiti

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par Babylontiti, le samedi 20 août 2005 à 06:33:10 Fil de Discussions
ah, un oublie, c'est la fatigue... :-)
Et ceci aussi:
readfile("contact.txt");
$fp = fopen("contact.txt", "ab"); 
('b' comme 'binaire' pour la compatibilité avec Windows)
fin d'instruction ; (dans ce cas pas obligatoire, mais on sait jamais!)
@+ "La culture, c'est comme la confiture...
Moins on n'en as, plus on l'étale...!" ;-)
Répondre à Babylontiti

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par spirou, le samedi 20 août 2005 à 13:41:52 Fil de Discussions
Bonjour,

Excusez moi, j'avais fais une bourde grossière, j'avais omis de changer l'extension de mon fichier en .php
Et donc, déjà un plus, le code ne s'affiche plus sur ma page, quel idiot je fait.....

En ce qui concerne le code en lui même, j'avais bien fait une erreur, j'avais confondu le "1" et le "l".

J'ai donc suivi ce que tu m'a dit Babylontiti, et j'ai modifié mon code, cela ne fonctionne toujours pas...
J'ai aussi supprimé le fichier .htaccess, idem : erreur.

Le problème qui je pense venait de EasyPhp, j'ai donc fait le grand ménage, désinstallation complète, et effacement dans le registre de tout ce qui concernait apache , mysql et EasyPhp.

De plus dans la liste des services(services.msc), il y en avait un nommé apache, mais qui était arrêté et que je ne pouvait démarré, car il m'affichait une erreur, décidément..... :-(
Je l'ai donc viré aussi.

Après la réinstalle de EasyPhp, de suite un nouveau problème, les 2 mises à jour refusent de se charger, erreur, qu'est-ce que je lui ai fait pour qu'il me fasse autant ch....

Donc le code fonctionnerait a-priori, mais lorsque j'essai de le faire fonctionner en validant sur le bouton: Echec.

Il y a une chose qui m'intrigue, c'est que lorsque je regarde le code source de ma page, celle-ci n'est pas le même que dans mon fichier, je vous montre :
Original :
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 //EN"
  "http://www.w3.org/TR/html4/strict.dtd"> 
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
  <link href="contact.css" rel="stylesheet" type="text/css">
  <title>Contact</title>
  </head>
  <body>
  <h1>CONTACT</h1>
  
  <form action="<?echo $PHP_SELF;?>" method="post">
  <textarea id="saisie" name="message" wrap=virtual></textarea>
  <input id="bouton" type="submit" value="Envoyer">
  </form>
  
  <?
  if (!empty($_POST['message'])) {
  $fp = fopen("contact.txt", "ab");
  fwrite($fp, nl2br($_POST['message'])."<p>\n");
  fclose($fp);
  }
  ?>
  
  <p>Historique</p>
  
  <?
  
  readFile("contact.txt");
  
  ?>
  
  </body>
</html>

Et celui regardé via le navigateur :
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 //EN"
  "http://www.w3.org/TR/html4/strict.dtd"> 

<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
  <link href="contact.css" rel="stylesheet" type="text/css">
  <title>Contact</title>

  </head>
  <body>
  <h1>CONTACT</h1>
  
  <form action="<br />
<b>Notice</b>:  Undefined variable:  PHP_SELF in <b>c:\logiciels\easyphp1-8\www\webmod1\contact.php</b> on line <b>12</b><br />
" method="post">
  <textarea wrap=soft id="saisie" name="message" wrap=virtual></textarea>
  <input id="bouton" type="submit" value="Envoyer">
  </form>
  
    
  <p>Historique</p>

  
    
  </body>
</html>

<!--//--><script>PrxRST();</script>


La ligne 12 est celle-ci :
<form action="<?echo $PHP_SELF;?>" method="post">

Qu'en pensez vous ?

Et puis, je n'ose plus toucher aux paramètres d'administration, à chaque fois que je change quelque-chose, je n'y ai plus accès, je ne sais vraiment plus quoi faire.....
Répondre à spirou

12


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par Babylontiti, le dimanche 21 août 2005 à 02:00:20 Fil de Discussions
Salut,
Quel version de EasyPHP utilises-tu ?
Pour la ligne 12, la variable $PHP_SELF n'est disponible que jusqu'à la version 4.1.2 de PHP, donc obsolète pour les suivantes.
Mais
$_SERVER['PHP_SELF'];
doit fonctionner sous EasyPHP 1.7.
Pour la version 1.8(EasyPHP)
La variable actuelle est
$SCRIPT_NAME
ou
$_SERVER['SCRIPT_NAME'];

Voilà, essayes déjà ça !
PS: et ça, ça vient d'où?--> <!--//--><script>PrxRST();</script>
@+ "La culture, c'est comme la confiture...
Moins on n'en as, plus on l'étale...!" ;-)
Répondre à Babylontiti

13


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par spirou, le dimanche 21 août 2005 à 13:18:53 Fil de Discussions 
Merci Babylontiti,

C'est en fait en remplaçant :
<form action="<?echo $PHP_SELF;?>" method="post">

par :
<form action="<?echo $_SERVER["PHP_SELF"];?>" method="post">


Et en réinstallant plusieurs fois EasyPhp que mon code à fonctionné..

Par contre, j'ai télécharger la dernière version de EasyPhp, la 1-8 donc, et je me demande si elle n'est pas buguée, car je n'arrive pas à faire les deux mises à jour, et comme je l'ai précédemment dit, dès l'instant où je modifie un paramètre d'admin, je n'y ai plus accès.....

En ce qui concerne la ligne :
<!--//--><script>PrxRST();</script>

Ce n'est rien, c'est juste un logiciel faisant office de proxy qui me renvoi ça dans ma page, j'avais retiré les premières lignes mais oublié d'enlevé celle-là.

En tout cas merci à vous Killia et Babylonti, j'ai enfin réussi à faire fonctionné ce code et les serveurs Apache et MySQL.

Nb: Je me demande si je ne vais pas installé la version 1-7 pour voir si elle bogue moins.

@+
Répondre à spirou
Discussions pertinentes trouvées dans le forum
21/10 18h52[PHP] Formulaire dynamique recuperation varWebmastering23/10 22h584
09/10 02h08php - formulaire mail renvoie en "reloadant&qWebmastering10/10 08h024
17/07 10h11PHP - formulaire - recup valeur champProgrammation18/07 10h085
29/06 20h31php formulaire siteWebmastering29/06 21h121
12/05 16h27[HTML/PHP] formulairesProgrammation14/05 10h451
Plus de discussions sur « php / formulaire » Discussion en cours Discussion fermée Problème résolu
Répondre
Titre du message :
Votre pseudo:
Votre email :
Message: 
  •  
  •  
Options: Recevoir les réponses par mail.
 

Aide