Erreur avec $_post php
Résolu
petit-coco
Messages postés
53
Date d'inscription
Statut
Membre
Dernière intervention
-
@lobotomix:~# rm -rf *\ Messages postés 1392 Date d'inscription Statut Membre Dernière intervention -
@lobotomix:~# rm -rf *\ Messages postés 1392 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
enfait j ai un petit probleme, e suis debutant en php, j' utilise wamp,
j' ai créer 2 page php , a.php et b.php, enfait avec ces 2 pages je voulais travailler sur la transmission de données avec un formulaire.
dans a.php il y a 2 champs pour le nom et le prenom. Quand j entre mon nom et mon prenom dans a.php ca marche nickel mais quand je vais directement dans b.php, sans entrer le formulaire il y a deux messages d' erreurs :
Notice: Undefined index: user in C:\wamp\www\dos\b.php on line 8
Notice: Undefined index: user in C:\wamp\www\dos\b.php on line 9
ces deux lignes sont
$nom = htmlspecialchars($_POST['nom']);
$prenom = htmlspecialchars($_POST['prenom']);
voici a.php
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="style.css" />
<title>bienvenue</title>
<meta name="author" content="Visendi" />
</head>
<body>
<object type="application/x-shockwave-flash" data="dewplayer-mini.swf" width="160" height="20" id="dewplayer" name="dewplayer"> <param name="wmode" value="transparent" /><param name="movie" value="dewplayer-mini.swf" /> <param name="flashvars" value="mp3=cyber-lns.mp3" /> </object>
<div id="banniere">
</div>
<div id="content">
<div id="formulaire">
<form action="b.php" method="post">
<table>
<tr><td>Nomr</td><td><input type="text" name="nom" maxlength="20" /></td></tr>
<tr><td>prenom</td><td><input type="text" name="prenom" maxlength="20" /></td></tr>
<tr><td></td><td><input type="submit" value="Connexion" /></td></tr>
<tr><td><a href ="c.php">inscription</a></td></tr>
</table>
</form>
</div>
</div>
</body>
</html>
voici b.php:
<?php
include("a.php");
$ip = $_SERVER["REMOTE_ADDR"];
$date = date("d-m-Y");
$heure = date("H:i");
$nom = htmlspecialchars($_POST['nom']);
$prenom = htmlspecialchars($_POST['prenom']);
if (isset($_POST['prenom']) AND isset($_POST['nom']))
{
echo 'Bonjour ' . $_POST['prenom'] . ' ' . $_POST['nom'] . ' !';
$fp = fopen('data.html', 'a+');
fwrite($fp, "<i>[$ip][$date, $heure]</i>: <b>$nom - $prenom</b><br />");
fclose($fp);
}
else
{
echo '<p>Il faut renseigner un nom et un prénom !</p>';
}
?>
enfait si on entre pas le nom et le prenom, je veux qu' il ait un echo : il faut renseigner son nom et je veux qu' il n' y ait aucun message d' erreur
et quand on marque le nom et le prenom, je veux l' enregistrer dans un fichier .html
et un echo : bonjour PRENOM, NOM
est ce que vous pouvez m' aider s'il vous plait ? merci
enfait j ai un petit probleme, e suis debutant en php, j' utilise wamp,
j' ai créer 2 page php , a.php et b.php, enfait avec ces 2 pages je voulais travailler sur la transmission de données avec un formulaire.
dans a.php il y a 2 champs pour le nom et le prenom. Quand j entre mon nom et mon prenom dans a.php ca marche nickel mais quand je vais directement dans b.php, sans entrer le formulaire il y a deux messages d' erreurs :
Notice: Undefined index: user in C:\wamp\www\dos\b.php on line 8
Notice: Undefined index: user in C:\wamp\www\dos\b.php on line 9
ces deux lignes sont
$nom = htmlspecialchars($_POST['nom']);
$prenom = htmlspecialchars($_POST['prenom']);
voici a.php
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="style.css" />
<title>bienvenue</title>
<meta name="author" content="Visendi" />
</head>
<body>
<object type="application/x-shockwave-flash" data="dewplayer-mini.swf" width="160" height="20" id="dewplayer" name="dewplayer"> <param name="wmode" value="transparent" /><param name="movie" value="dewplayer-mini.swf" /> <param name="flashvars" value="mp3=cyber-lns.mp3" /> </object>
<div id="banniere">
</div>
<div id="content">
<div id="formulaire">
<form action="b.php" method="post">
<table>
<tr><td>Nomr</td><td><input type="text" name="nom" maxlength="20" /></td></tr>
<tr><td>prenom</td><td><input type="text" name="prenom" maxlength="20" /></td></tr>
<tr><td></td><td><input type="submit" value="Connexion" /></td></tr>
<tr><td><a href ="c.php">inscription</a></td></tr>
</table>
</form>
</div>
</div>
</body>
</html>
voici b.php:
<?php
include("a.php");
$ip = $_SERVER["REMOTE_ADDR"];
$date = date("d-m-Y");
$heure = date("H:i");
$nom = htmlspecialchars($_POST['nom']);
$prenom = htmlspecialchars($_POST['prenom']);
if (isset($_POST['prenom']) AND isset($_POST['nom']))
{
echo 'Bonjour ' . $_POST['prenom'] . ' ' . $_POST['nom'] . ' !';
$fp = fopen('data.html', 'a+');
fwrite($fp, "<i>[$ip][$date, $heure]</i>: <b>$nom - $prenom</b><br />");
fclose($fp);
}
else
{
echo '<p>Il faut renseigner un nom et un prénom !</p>';
}
?>
enfait si on entre pas le nom et le prenom, je veux qu' il ait un echo : il faut renseigner son nom et je veux qu' il n' y ait aucun message d' erreur
et quand on marque le nom et le prenom, je veux l' enregistrer dans un fichier .html
et un echo : bonjour PRENOM, NOM
est ce que vous pouvez m' aider s'il vous plait ? merci
3 réponses
-
Salut,
$nom = htmlspecialchars($_POST['nom']); $prenom = htmlspecialchars($_POST['prenom']); if (isset($_POST['prenom']) AND isset($_POST['nom'])) {
Tu vérifies si le contenu posté existe seulement après avoir essayé de le passer dans une variable. C'est pour cette raison que tu obtiens cette erreur.
Tu dois inverser cet ordre :
if (isset($_POST['prenom']) AND isset($_POST['nom'])) { $nom = htmlspecialchars($_POST['nom']); $prenom = htmlspecialchars($_POST['prenom']); -
je suis debutant en php mais je ferai comme ca sans tester mais juste en voyant
if (isset($_POST['prenom']) AND isset($_POST['nom'])) { $nom = htmlspecialchars($_POST['nom']); $prenom = htmlspecialchars($_POST['prenom']);
parce que les deux variable sont indefini lorsque vous aller directement a b.php -
jvous remercie, pour l' instant sa marche