Probleme pour envoyer des données.
Résolu
drlecteur
Messages postés
36
Date d'inscription
Statut
Membre
Dernière intervention
-
drlecteur Messages postés 36 Date d'inscription Statut Membre Dernière intervention -
drlecteur Messages postés 36 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je me retourne vers vous une fois de plus car je suis bloquer :( .
En quelques mot je vous explique ce que j'essaye de faire puis je vous montrerai le code.
Donc voila la première page est un formulaire ou l'ont doit écrire un nom prénom et un mdp.
Ensuite on submit le formulaire et on appelle une 2 eme page. Dans cette 2 eme page on récupère les info du formulaire puis on les compare avec des donnés dans mas base de donnée. En effet dans celle ci j'ai un table nommé 'log' avec les champs 'prénom' & 'mot de passe'.
Ma question est la suivante :
Pourquoi lorsque je remplis et que j'envoie les donnés du formulaire de ma première page a ma deuxième lorsque j'arrive sur la deuxième la page est totalement blanche. Je demande a afficher le code source il n'ya rien. De plus au tout début de ma deuxième page j'ai mi un écho il ne s'affiche pas non plus. Je ne comprend pas.
Je vous met le code des deux pages :
Le formulaire page une :
<!DOCTYPE >
<html>
<head>
<title>Identifiaction</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<form action="main_page.php" method="post">
<p>
<br /> <br /> Veuillez taper votre prenom : <br /><br />
<input type="text" name="prenom" />
<br /> <br /> Veuillez taper votre Nom : <br /><br />
<input type="text" name="nom" />
<br /><br /> Veuillez taper votre mot de passe :<br /><br />
<input type="text" name="mdp" />
<br /><br /><input type="submit" value="Valider" /><br /><br />
</p>
</form>
</body>
</html>
et la seconde page pour verifier les entrées avec ce que contien la base de données :
<!DOCTYPE >
<html>
<head>
<title>Page Principal</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
echo "loooooolooooool";
<?php
$nom = htmlspecialchars($_POST['nom']); // Recuperation des info envoyer par l'utilisateur
$prenom = htmlspecialchars($_POST['prenom']);
$mdp = htmlspecialchars($_POST['mdp']);
try
{
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', 'root');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
// On récupère tout le contenu de la table log
$reponse = $bdd->query('SELECT * FROM log');
?>
$i = 0;
<?php
while ($donnees = $reponse->fetch())
{
if ($donnees['prenom'] == $prenom AND $donnees['Mot de passe'] == $mdp AND $donnees['nom'] == $nom) // ici on essaye de trouver dans la db des information qui son les meme que celle rentré par l'utilisateur
$i = 1;
?>
<?php
}
if ($i == 0)
WRONG LOGGIN/MDP // je rappelerai la page du formulaire
if ($i == 1)
you can enter // j'appelle la page suivante.
$reponse->closeCursor(); // Termine le traitement de la requête
?>
</body>
</html>
J'espère que j'ai été claire et que vous pourrez m'aider ! Merci d'avance.
Je me retourne vers vous une fois de plus car je suis bloquer :( .
En quelques mot je vous explique ce que j'essaye de faire puis je vous montrerai le code.
Donc voila la première page est un formulaire ou l'ont doit écrire un nom prénom et un mdp.
Ensuite on submit le formulaire et on appelle une 2 eme page. Dans cette 2 eme page on récupère les info du formulaire puis on les compare avec des donnés dans mas base de donnée. En effet dans celle ci j'ai un table nommé 'log' avec les champs 'prénom' & 'mot de passe'.
Ma question est la suivante :
Pourquoi lorsque je remplis et que j'envoie les donnés du formulaire de ma première page a ma deuxième lorsque j'arrive sur la deuxième la page est totalement blanche. Je demande a afficher le code source il n'ya rien. De plus au tout début de ma deuxième page j'ai mi un écho il ne s'affiche pas non plus. Je ne comprend pas.
Je vous met le code des deux pages :
Le formulaire page une :
<!DOCTYPE >
<html>
<head>
<title>Identifiaction</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<form action="main_page.php" method="post">
<p>
<br /> <br /> Veuillez taper votre prenom : <br /><br />
<input type="text" name="prenom" />
<br /> <br /> Veuillez taper votre Nom : <br /><br />
<input type="text" name="nom" />
<br /><br /> Veuillez taper votre mot de passe :<br /><br />
<input type="text" name="mdp" />
<br /><br /><input type="submit" value="Valider" /><br /><br />
</p>
</form>
</body>
</html>
et la seconde page pour verifier les entrées avec ce que contien la base de données :
<!DOCTYPE >
<html>
<head>
<title>Page Principal</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
echo "loooooolooooool";
<?php
$nom = htmlspecialchars($_POST['nom']); // Recuperation des info envoyer par l'utilisateur
$prenom = htmlspecialchars($_POST['prenom']);
$mdp = htmlspecialchars($_POST['mdp']);
try
{
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', 'root');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
// On récupère tout le contenu de la table log
$reponse = $bdd->query('SELECT * FROM log');
?>
$i = 0;
<?php
while ($donnees = $reponse->fetch())
{
if ($donnees['prenom'] == $prenom AND $donnees['Mot de passe'] == $mdp AND $donnees['nom'] == $nom) // ici on essaye de trouver dans la db des information qui son les meme que celle rentré par l'utilisateur
$i = 1;
?>
<?php
}
if ($i == 0)
WRONG LOGGIN/MDP // je rappelerai la page du formulaire
if ($i == 1)
you can enter // j'appelle la page suivante.
$reponse->closeCursor(); // Termine le traitement de la requête
?>
</body>
</html>
J'espère que j'ai été claire et que vous pourrez m'aider ! Merci d'avance.
A voir également:
- Probleme pour envoyer des données.
- Fuite données maif - Guide
- Trier des données excel - Guide
- Sauvegarde des données - Guide
- Supprimer les données de navigation - Guide
- Excel validation des données liste - Guide
11 réponses
j'arrive sur la deuxième la page est totalement blanche. Je demande a afficher le code source il n'ya rien
Ca sent l'erreur PhP à plein nez et que tu as un display_errors à Off ;)
Pour tester, je te conseil de mettre en tout début de ton fichier 2 ce qui suit :
Et à noter que dans ton fichier, y a pas mal de code php qui ne sera pas interprété car hors balise PhP (genre ton echo "loooooolooooool"; par exemple)
Ca sent l'erreur PhP à plein nez et que tu as un display_errors à Off ;)
Pour tester, je te conseil de mettre en tout début de ton fichier 2 ce qui suit :
<?php ini_set("display_errors", 1); ?>
Et à noter que dans ton fichier, y a pas mal de code php qui ne sera pas interprété car hors balise PhP (genre ton echo "loooooolooooool"; par exemple)
deja merci de t'intéresser a mon cas. alors voila j'ai mis au début ce que tu ma dit de mettre mais apparament cela n'a rien changer. De plus j'ai rajouter les balise php pour mon echo mais il ne s'affiche toujours pas. en gros j'en suis toujours au même point :X
Ce que je vais te dire ne vas surement pas corriger tes erreurs, mais bon :
- Le echo "loooooolooooool"; doit être mis à l'intérieur des balises PHP, même chose pour le $i = 0;
- Dans ton if, remplace les AND par des &&
- Tu ne peut pas te mettre d'écrire des choses qui ne sont pas du PHP à l'intérieur des balises PHP. Donc il faut supprimer (ou commenter) WRONG LOGGIN/MDP et you can enter
- Le echo "loooooolooooool"; doit être mis à l'intérieur des balises PHP, même chose pour le $i = 0;
- Dans ton if, remplace les AND par des &&
- Tu ne peut pas te mettre d'écrire des choses qui ne sont pas du PHP à l'intérieur des balises PHP. Donc il faut supprimer (ou commenter) WRONG LOGGIN/MDP et you can enter
Voila un code fonctionnel :
<!DOCTYPE > <html> <head> <title>Page Principal</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> </head> <body> <?php echo "loooooooooooooool"; $nom = htmlspecialchars($_POST['nom']); $prenom = htmlspecialchars($_POST['prenom']); $mdp = htmlspecialchars($_POST['mdp']); try { $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', 'root'); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } $reponse = $bdd->query('SELECT * FROM log'); $i = 0; while ($donnees = $reponse->fetch()) { if ($donnees['prenom'] == $prenom AND $donnees['Mot de passe'] == $mdp AND $donnees['nom'] == $nom) $i = 1; } if ($i == 0) // WRONG LOGGIN/MDP, je rappelerai la page du formulaire if ($i == 1) //you can enter, j'appelle la page suivante. $reponse->closeCursor(); // Termine le traitement de la requête ?> </body> </html>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ok merci, je vien de voir vos message, je vais manger je test tout sa aprés manger. Je vous tiendrai au courant de mon avancer. Merci beaucoup.
ok deja j'a fait ce que tu m'a dit, cela m'affiche le echo et a valeur de l'int i. Cependant la boucle que j'ai fait ne marche pas je vais me pencher sur le sujet. Si je n'y arrive vraiment pas je viendrait poser mes questions ! merci de l'aide que vous m'avez apportez !!!
Ma boucle ne marche pas, enfin je pense plutôt que c'est la condition pour mettre 'i' a un qui est incorrecte. Je vous met le code plus propre ici :
<!DOCTYPE >
<html>
<head>
<title>Page Principal</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<?php
echo "loooooooooooooool";
$prenom = htmlspecialchars($_POST['prenom']);
$mdp = htmlspecialchars($_POST['mdp']);
try
{
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', 'root');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
$reponse = $bdd->query('SELECT * FROM log');
$i = 0;
while ($donnees = $reponse->fetch())
{
if ($donnees['prenom'] == $prenom && $donnees['Mot de passe'] == $mdp)
{
$i = 1;
}
}
if ($i == 0)
// WRONG LOGGIN/MDP, je rappelerai la page du formulaire
if ($i == 1)
//you can enter, j'appelle la page suivante.
$reponse->closeCursor(); // Termine le traitement de la requête
?>
</body>
</html>
Merci de votre aide.
<!DOCTYPE >
<html>
<head>
<title>Page Principal</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<?php
echo "loooooooooooooool";
$prenom = htmlspecialchars($_POST['prenom']);
$mdp = htmlspecialchars($_POST['mdp']);
try
{
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', 'root');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
$reponse = $bdd->query('SELECT * FROM log');
$i = 0;
while ($donnees = $reponse->fetch())
{
if ($donnees['prenom'] == $prenom && $donnees['Mot de passe'] == $mdp)
{
$i = 1;
}
}
if ($i == 0)
// WRONG LOGGIN/MDP, je rappelerai la page du formulaire
if ($i == 1)
//you can enter, j'appelle la page suivante.
$reponse->closeCursor(); // Termine le traitement de la requête
?>
</body>
</html>
Merci de votre aide.
Tu devrais essayer de les comparés toi même, pour voir si tes variables sont bien remplis :
PS: Les espaces dans les noms de champs c'est une mauvaise idée. Dans ta table, appel ton champs mot_de_passe plutôt que "Mot de passe"
echo $donnees['prenom'] . ' : ' . $prenom . '<br/>'; echo '$donnees['Mot de passe'] . ' : ' . $mdp;
PS: Les espaces dans les noms de champs c'est une mauvaise idée. Dans ta table, appel ton champs mot_de_passe plutôt que "Mot de passe"
J'ai essayer, en fait en dehors de la boucle lorsque j'affiche la valeur de $prenom et &mdp les valeurs sont bonne. Maintenant quand je veux afficher les même valeur dans la boucle ou au quand je veux afficher les valeur de $donnees['prenom'] et de $donnees['Mot de passe'] dans la boucle rien n'apparait non plus. C'est pour cela que je pense que dans mon scritp je ne rentre même pas dans la boucle mais je ne comprend pas pourquoi :'( .