Récupérer les données depuis un formulaire

Résolu/Fermé
fleur_rose Messages postés 45 Date d'inscription vendredi 13 juillet 2012 Statut Membre Dernière intervention 6 janvier 2013 - 18 juil. 2012 à 16:48
fleur_rose Messages postés 45 Date d'inscription vendredi 13 juillet 2012 Statut Membre Dernière intervention 6 janvier 2013 - 20 juil. 2012 à 10:20
Bonjour,


je dévelllope une application avec php, et maintenet je suis dans l'étape d'autentification c'est à dire l'identification des utilisateurs,
alors l'utilisateur saisie dans un formulaire le login et le mot de passe
mon problème c'est lorsque je récupère les données ça me redirige soit vres une page blache soit on m'affiche des erreurs du genre:



( ! ) Notice: Undefined index: login in C:\wamp\www\RC_2\Nouveau dossier\validation.php on line 9
Call Stack
# Time Memory Function Location
1 0.0009 372240 {main}( ) ..\validation.php:0

( ! ) Notice: Undefined index: pass in C:\wamp\www\RC_2\Nouveau dossier\validation.php on line 10
Call Stack
# Time Memory Function Location
1 0.0009 372240 {main}( ) ..\validation.php:0
Echec de connexion à la base.You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1


mais je vois pas où est le problème voilà le code dans "validation.php" mais qui ne marche pas :s :
<?php
//connexion avec la base
$base = mysql_connect('localhost','root', '') or die ('Echec de connexion au serveur de base de données.');
mysql_select_db('bd_rc',$base) or die ('Echec de connexion à la base.');
?>
<?php
$login=$_POST['login'];
$pass=$_POST['pass'];
$sql = "select Mot_passe from utilisateur where Nom_ut=".$login."";
$req = mysql_query($sql) or die('Echec de connexion à la base.'.mysql_error());
$data = mysql_fetch_assoc($req);
if ($data['Mot_passe'] = $pass)
{
session_start();
$_SESSION['Nom_ut'] = $login;
include('cadre_index.php');
header ('Location: cadre_index.php');
exit;
}
else
{
include('cadre_7_index.htm');
header ('Location: cadre_7_index.htm');
exit;
}
?>

Merci d'avance

4 réponses

tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 219
18 juil. 2012 à 18:02
Salut,

Testez en déplacent session_start(); en tout début de page puis en remplacent ".$login." dans la requête par $login et enfin, placez une condition isset avant $login=$_POST['login'];
if(isset($_POST['envoyer'])){
$login=$_POST['login'];
//etc..
}

$_POST['envoyer'] correspondant au nom du submit (name="envoyer")
0
fleur_rose Messages postés 45 Date d'inscription vendredi 13 juillet 2012 Statut Membre Dernière intervention 6 janvier 2013
18 juil. 2012 à 18:09
Merci d'abord pour ta réponse,
j'ai fais comme tu m'a indiqué mais cette fois voilà l'erreur qui s'affiche:

Parse error: syntax error, unexpected T_VARIABLE in C:\wamp\www\RC_2\Nouveau dossier\validation.php on line 11
0
tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 219
18 juil. 2012 à 18:44
Vous pouvez poster votre code en entier?
0
maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
18 juil. 2012 à 19:52
pour la requete :

login est un varchar => simple quotes autour

pour les données :

tu as controlé que tu recevait bien tes $_POST ?

un print_r($_POST); renvoie quelque chose ?

il y a bien method="POST" dans ton form ?
0
fleur_rose Messages postés 45 Date d'inscription vendredi 13 juillet 2012 Statut Membre Dernière intervention 6 janvier 2013
19 juil. 2012 à 09:25
Bonjour maka54 merci pour ta réponse,
oui dans mon formulaire c'est la méthode post
et j'ai créé un fichier .php qui contient le code suivant:

 <?php
 print_r($_POST);
 ?>


mais il ne m'affiche que : Array ( ) dans toute la page qui est vide appart ce text
0
maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
19 juil. 2012 à 09:43
donc tu n'envoies pas tes données
montres le code html du formulaire
0
fleur_rose Messages postés 45 Date d'inscription vendredi 13 juillet 2012 Statut Membre Dernière intervention 6 janvier 2013
19 juil. 2012 à 09:45
je viens de le poster :)
0
fleur_rose Messages postés 45 Date d'inscription vendredi 13 juillet 2012 Statut Membre Dernière intervention 6 janvier 2013
19 juil. 2012 à 09:38
Bonjour tout le monde,
merci beaucoup tryan44 pour ton aide, comme j'ai dit j'ai essayé les modifications que tu m'as indiqué mais en vain
Voici mon code entier:

le formulaire est dans identification.htm :


<html>

<head>
<meta http-equiv="Content-Language" content="fr">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Identification</title>
<!--mstheme--><link rel="stylesheet" href="spri1011.css">
<meta name="Microsoft Theme" content="spring 1011">
<script language="JavaScript">
<!--
function FP_preloadImgs() {//v1.0
 var d=document,a=arguments; if(!d.FP_imgs) d.FP_imgs=new Array();
 for(var i=0; i<a.length; i++) { d.FP_imgs[i]=new Image; d.FP_imgs[i].src=a[i]; }
}

function FP_swapImg() {//v1.0
 var doc=document,args=arguments,elm,n; doc.$imgSwaps=new Array(); for(n=2; n<args.length;
 n+=2) { elm=FP_getObjectByID(args[n]); if(elm) { doc.$imgSwaps[doc.$imgSwaps.length]=elm;
 elm.$src=elm.src; elm.src=args[n+1]; } }
}

function FP_getObjectByID(id,o) {//v1.0
 var c,el,els,f,m,n; if(!o)o=document; if(o.getElementById) el=o.getElementById(id);
 else if(o.layers) c=o.layers; else if(o.all) el=o.all[id]; if(el) return el;
 if(o.id==id || o.name==id) return o; if(o.childNodes) c=o.childNodes; if(c)
 for(n=0; n<c.length; n++) { el=FP_getObjectByID(id,c[n]); if(el) return el; }
 f=o.forms; if(f) for(n=0; n<f.length; n++) { els=f[n].elements;
 for(m=0; m<els.length; m++){ el=FP_getObjectByID(id,els[n]); if(el) return el; } }
 return null;
}
// -->
</script>
</head>

<body onload="FP_preloadImgs(/*url*/'buttonA.jpg', /*url*/'buttonB.jpg', /*url*/'button10.jpg', /*url*/'button11.jpg')">

<p align="center">&nbsp;</p>
<p align="center">&nbsp;</p>
<form method="POST" action="validation.php" name="formulaire_identification" enctype="multipart/form-data">
	<!--webbot bot="SaveResults" U-File="C:\wamp\www\RC_2\Nouveau dossier\_private\form_results.csv" S-Format="TEXT/CSV" S-Label-Fields="TRUE" -->
	<p align="center">&nbsp;&nbsp; </p>
	<p align="center"><a href="connexion.jpg">
	<img border="0" src="connexion.jpg" width="48" height="48"></a>&nbsp;&nbsp;&nbsp;&nbsp; 
	Identifiant:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
	<input type="text" name="login" size="20"></p>
	<p align="center">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
	Mot de passe:&nbsp;&nbsp;&nbsp;&nbsp;
	<input type="password" name="pass" size="20"></p>
	<p align="center">&nbsp;</p>
	<p align="center">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
	<a href="validation.php">
	<img border="0" id="img1" type="submit" name='envoyer' src="button9.jpg" height="30" width="150" alt="Valider" fp-style="fp-btn: Embossed Capsule 9; fp-font: Times New Roman; fp-font-style: Bold; fp-font-size: 14; fp-font-color-normal: #D84E00; fp-font-color-hover: #EBB66C; fp-font-color-press: #EBB66C" fp-title="Valider" onmouseover="FP_swapImg(1,0,/*id*/'img1',/*url*/'buttonA.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img1',/*url*/'button9.jpg')" onmousedown="FP_swapImg(1,0,/*id*/'img1',/*url*/'buttonB.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img1',/*url*/'buttonA.jpg')"></a>&nbsp;&nbsp;&nbsp;
	<a href="identification.htm">
	<img border="0" id="img2" type="reset" src="buttonF.jpg" height="30" width="150" alt="Annuler" fp-style="fp-btn: Embossed Capsule 9; fp-font: Times New Roman; fp-font-style: Bold; fp-font-size: 14; fp-font-color-normal: #D84E00; fp-font-color-hover: #EBB66C; fp-font-color-press: #EBB66C" fp-title="Annuler" onmouseover="FP_swapImg(1,0,/*id*/'img2',/*url*/'button10.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img2',/*url*/'buttonF.jpg')" onmousedown="FP_swapImg(1,0,/*id*/'img2',/*url*/'button11.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img2',/*url*/'button10.jpg')"></a></p>
	<p align="center">&nbsp;</p>
</form>

</body>

</html>


Et ci dessous le code de validation.php

<?php
session_start();
//connexion avec la base
$base = mysql_connect('localhost','root', '') or die ('Echec de connexion au serveur de base de données.');
mysql_select_db('bd_rc',$base) or die ('Echec de connexion à la base.');
?>
<?php
if(isset($_POST['envoyer'])){
$login=$_POST['login'];
$pass=$_POST['pass'];
$sql = "select Mot_passe from utilisateur where Nom_ut='$login'";
$req = mysql_query($sql) or die('Echec de connexion à la base.'.mysql_error());
$data = mysql_fetch_assoc($req);
if ($data['Mot_passe'] = $pass)
{
$_SESSION['Nom_ut'] = $login;
include('acceuil.htm');
header ('Location: acceuil.htm');
exit;
}
else
{
include('identification_2.htm');
header ('Location: identification_2.htm');
exit;
}
}
?>


Maintenant tout ce qu'on m'affiche après le test est une page vide, c'est embêtant et ça devient urgent :s

merci beaucoup pour votre aide
0
maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
19 juil. 2012 à 09:48
tu as placé ce code à quel endroit ?
 <?php
 print_r($_POST);
 ?>


place juste avant cette ligne :

if(isset($_POST['envoyer'])){
0
fleur_rose Messages postés 45 Date d'inscription vendredi 13 juillet 2012 Statut Membre Dernière intervention 6 janvier 2013
19 juil. 2012 à 09:52
même si je le place avant
if(isset($_POST['envoyer']))
il m'affiche toujour la page blanche avec seulement Array()
0
maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
19 juil. 2012 à 09:55
en effet je viens de comprendre, l'envoie de formulaire se fait par un bouton submit

tu as mis un lien (balise <a>) autour de ton image donc tu n'envoie pas le formulaire, mais tu appelles la page validtaion.php, ce n'est pas la meme chose

donc retires ton lien autour de submit et çà devrait aller
0
tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 219
19 juil. 2012 à 09:57
Vous avez vraiment besoin du javascript et de enctype="multipart/form-data" pour un simple formulaire d'authentification?
Quelle est le but de votre code, authentifier l'utilisateur et le rediriger ou autre ?
0
fleur_rose Messages postés 45 Date d'inscription vendredi 13 juillet 2012 Statut Membre Dernière intervention 6 janvier 2013
19 juil. 2012 à 10:00
si de cette ligne que tu parle
 <a href="validation.php">

je l'ai enlevé et maintenant quand je clique sur envoyer je reste sur la meme page
0
fleur_rose Messages postés 45 Date d'inscription vendredi 13 juillet 2012 Statut Membre Dernière intervention 6 janvier 2013
20 juil. 2012 à 10:20
Merci beaucoup pour votre aide,
le problème et maintenant résolu :)
l'erreur était dans là où l'on redirige vers l'autre page
le:
 include('acceuil.htm');
header ('Location: acceuil.htm');
exit;

ça ne marche pas il faut le remplacer avec du java script
0