problème avec fwrite dans un formulaire

Invité
Invité n'ayant pas de compte PHPfrance

20 juil. 2009, 18:43

Bonjour les experts,
je viens de me mettre au php et j'ai un souci avec un fichier texte qui ne veut pas s'afficher .
j'ai une page html/css où lorsque on click sur "livre d'or" on tombe sur "guestbook.php" dont l'affichage est divisé en 2 div conteneurs : - le premier sert aux utilisateurs de remplir le formulaire du livre d'or et le deuxième sert toute suite à faire afficher dans la même page le message saisi. Les données saisies par l'utilisateur(nom, email, message) sont enregistrés et lu dans un fichier texte externe se trouvant dans le même dossier
Mon problème, c'est qu'il refuse d'écrire/lire dans guestbook.txt et donc ça n'affiche pas le texte sur la page php.
Je vous mets le code php :

<?php
// verif des données saisies dans form:
	if(isset($_POST['envoi']) == true) {
		if (isset($_POST['txtName']) == true) {
			$name = trim($_POST['txtName']);
		} else {
			$name = '';
		}
		if (isset($_POST['txtEmail']) == true) {
			$email = trim($_POST['txtEmail']);
		} else {
			$email = '';
		}
		if (isset($_POST['txtpost']) == true) {
			$nouvelles = trim($_POST['txtpost']);
		} else {
			$nouvelles = '';
		}
		if ($name != '' && $email != '') {
			$fichier = fopen('guestbook.txt', 'a');
			fwrite($fichier, $name . ';' . $email . ';' . date('d.m.Y H.i.s'));
			fwrite($fichier, "\n");
			fwrite($fichier, $nouvelles . '#');
			fwrite($fichier, "\n");
			fclose($fichier);
		}
	}

$fichier = file("guestbook.txt");
?>
		<div id="affichage">
        <?php 
			foreach($fichier as $colo) {
				$piece = split(';', $colo);
				if (count($piece) > 1) {
					echo '<div>' . "\n";
					echo 'Name: ' . $piece[0] . '<br />';
					echo $piece[1] . '<br />';
					echo 'écrit à ' . $piece[2] . ':<br />';
					echo '<br />';
					echo '</div>';
				} else {
					echo '<div>' . "\n";
					echo $colo . '<br /><br />';
					echo '</div>';
				}
			}
		?>
		</div>
		<div id="formulaire">
        	<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
            <table>
                <tr>
                    <td>Nom:</td>
                    <td><input type="text" name="txtName" /></td>
                </tr>
                <tr>
                    <td>E-Mail:</td>
                    <td><input type="text" name="txtEmail" /></td>
                </tr>
                <tr>
                    <td>Message:</td>
                    <td>&nbsp;</td>
                </tr>
                <tr>
                    <td colspan="2">
                    	<textarea id="nouvelles" name="txtpost"></textarea>
                    </td>
                </tr>
                <tr>
                    <td>&nbsp;</td>
                    <td>
                    	<input type="submit" name="subSenden" />
                    </td>
                </tr>
            </table>
            </form>
		</div>
merci

Eléphant du PHP | 65 Messages

20 juil. 2009, 19:37

Bonjour,

Corrige l'attribut de ton submit :
<input type="submit" name="envoi" />
et ça devrait marcher.

Fred

dounia
Invité n'ayant pas de compte PHPfrance

20 juil. 2009, 20:24

ça mars ! quelle bêtise... merci