J'ai un erreur au niveau de la page accueil

Résolu
Imad - Modifié par jordane45 le 14/03/2014 à 15:11
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 - 15 avril 2014 à 14:15
Bonjour, j'ai besoin de votre aide on ce qui concerne mon projet creation d'une application qui fais la gestion de stock avec dreamweaver
j'ai fais la connexion et mm la page login et k'on j'essaye de mettre le login au niveau de la page accueil je trouve cette erreur que dois je faire. Merci d'avance



voila l'erreur:

Bienvenue:
Notice: Undefined variable: _session in C:\Program Files (x86)\EasyPHP-12.1\www\gestion_stock\accueil.php on line 43
voila mon code :
<?php
session_start();
include('connexion.php'); ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Welcome - Business.com - About us</title>
<link href="css/base.css" rel="stylesheet" type="text/css" />
</head>
<body>
<!--navigation -->

<div class="container_16">
<div class="grid_16 navbg">
                                                                                                        
<ul class="navlink">
 <li><a href="accueil.php" title="Home">Accueil</a></li>
    <li><a href="client.php" title="Home">Client</a></li>

  <li><a href="fournisseur.php" title="Service">fournisseur</a></li>
 <li><a href="produit.php" title="Solution">Produit</a></li>
 <li> <a href="login.php" class="active"> Deconnexion</a></li>
</ul>
</div>
</div>

<!--navigation -->
<!--header -->

 <div class="container_16">
 <div class="grid_16 hdrBg">
   <h1> </h1>
     </div>
 </div>

<!--header -->
<!--body -->
<div class="container_16">
<div class="grid_16" id="body">
  <div class="grid_10 omega">
  Bienvenue:<?php echo $_session['login']; ?> 
</div>
</div>
</div>


<!--body -->
<!--footer -->
<div class="container_16">
<div class="grid_16" id="footer">

<ul class="footerlink">
       <li><a href="index.html" title="Home">Home</a></li><li>|</li>
       <li><a href="about.html" title=" About">About</a></li><li>|</li>
       <li><a href="#" title="Service">Service</a></li><li>|</li>
       <li><a href="#" title="Solution">Solution</a></li><li>|</li>
       <li><a href="#" title="Contact">Contact</a></li> 
     </ul>
     
     
     <p class="clear"> </p>
      <p class="copyright"> </p>


</div>
</div>
<!--footer -->
</body>
</html>

6 réponses

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
Modifié par jordane45 le 3/04/2014 à 14:42
Bonjour,

Ta variable n'est pas connue.. car surement pas encore initialisée...

Déjà, tu peux, avant d'utiliser des variables de type POST / GET ou SESSION vérifier qu'elles existent.

Utilise pour cela : ISSET

Exemple pour ton code :


<div class="grid_16" id="body">
  <div class="grid_10 omega">
  Bienvenue:<?= (isset($_SESSION['login']))?$_SESSION['login']:' No_Login' ?> 
</div>



Ensuite, vérifie à quel endroit dans ton script tu Initialises cette variable... (peut être dans ton include : connexion.php ?)

Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
0
ça marche pas :/
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
Modifié par jordane45 le 7/04/2014 à 14:01
Le "ça ne marche pas" ... ne va surement pas m'aider à savoir ce qui bloque... peux tu détailler ????

Si c'est un pb d'affichage... testes comme ceci :
<?php
$strLogin =  (isset($_SESSION['login']))?$_SESSION['login']:'No_Login' ;?> 
?>
<div class="grid_16" id="body">
  <div class="grid_10 omega">
  Bienvenue:<?php echo $strLogin; ?>
</div>


Et surtout... quoi qu'il se passe... merci de donner un maximum d'informations sur le souci rencontré !
- Peut être as tu des messages d'erreurs... si oui... lesquels.?...
- Que doit faire ton script ?
- En quoi ne fonctionne t-il pas ?
0
cs_Homeros Messages postés 53 Date d'inscription dimanche 24 juin 2007 Statut Membre Dernière intervention 25 février 2016 2
3 avril 2014 à 13:45
je ne vois pas ta requete sql !
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
3 avril 2014 à 14:43
@Homeros, je ne vois pas le rapport entre sa requête SQL et le message d'erreur indiqué...

Il a juste écrit $_session au lieu de $_SESSION
http://www.php.net/manual/fr/reserved.variables.session.php
0
cs_Homeros Messages postés 53 Date d'inscription dimanche 24 juin 2007 Statut Membre Dernière intervention 25 février 2016 2
3 avril 2014 à 17:43
d'après ce que j'ai compris, il veut afficher le login de l'utilisateur donc il a besoin d'une requete sql et vbl "$login" pour l'importer de la BDD et l'afficher.

Peut-être ce que je dit est pas juste, mais comme ça je le vois.

Merci de m'éclairer
0
voila le code jordane

<?php  include('connexion.php');
session_start(); ?>

<html>
<head>
<style type="text/css">
#wrapper {
 
 width:950px;
  height:auto;
  padding: 13px;
  margin-right:auto;
  margin-left:auto;
  background-color:#fff;
}
</style>
</head>

<body bgcolor="#e1e1e1">

<div id="wrapper">

<center><font face="Andalus" size="5">Your Score</font></center>
<br />
<br />
<div class="grid_16" id="body">
  <?php
$strLogin =  (isset($_SESSION['login']))?$_SESSION['login']:'No_Login' ;?> 
?>
<div class="grid_16" id="body">
  <div class="grid_10 omega">
  Bienvenue:<?php echo $strLogin; ?>
</div>
<?php
 

 $answer1= $_POST['answerone'];
 $answer2= $_POST['answertwo'];
 $answer3= $_POST['answerthree'];
 $answer4= $_POST['answerfour'];
 $answer5= $_POST['answerfive'];
 $answer6= $_POST['answersix'];
 $answer7= $_POST['answerseven'];
 $answer8= $_POST['answereight'];
 $answer9= $_POST['answernine'];
 $answer10= $_POST['answerten'];
 $answer11= $_POST['answereleven'];
 $answer12= $_POST['answertwelve'];
 $answer13= $_POST['answerthirteen'];
 $answer14= $_POST['answerfourteen' ];
 $answer15= $_POST['answerfifteen'];
 $answer16= $_POST['answersixteen'];
 $answer17= $_POST['answerseventeen'];
 $answer18= $_POST['answereighteen'];
 $answer19= $_POST['answernineteen'];
 $answer20= $_POST['answertwenty'];
 $answer21= $_POST['answertwentyOne'];
 $answer22= $_POST['answertwentyTwo'];
 $answer23= $_POST['answertwentyThree'];
 $answer24= $_POST['answertwentyFour'];
 $answer25= $_POST['answertwentyFive'];
 $answer26= $_POST['answertwentySix'];
 $answer27= $_POST['answertwentySeven'];
 $answer28= $_POST['answertwentyEight'];
 $answer29= $_POST['answertwentyNine'];
 $answer30= $_POST['answerthirty'];
 
 $score = 0;
 
 
 if ($answer1 == "B"&& $answer1 == "C"){$score++;}
 if ($answer2 == "C"){$score++;}
 if ($answer3 == "A"){$score++;}
 if ($answer4 == "A"){$score++;}
 if ($answer5 == "B"){$score++;}
 if ($answer6 == "A"){$score++;}
 if ($answer7 == "B"){$score++;}
 if ($answer8 == "D"){$score++;}
 if ($answer9 == "B"){$score++;}
 if ($answer10 == "C"){$score++;}
 if ($answer11 == "C"){$score++;}
    if ($answer12 == "C" && $answer12 == "D"){$score++;}
 if ($answer13 == "C"){$score++;}
 if ($answer14 == "D"){$score++;}
 if ($answer15 == "C"){$score++;}
 if ($answer16 == "D"){$score++;}
 if ($answer17 == "B"){$score++;}
 if ($answer18 == "C"){$score++;}
 if ($answer19 == "B"){$score++;}
 if ($answer20 == "A"){$score++;}
 if ($answer21 == "C"){$score++;}
 if ($answer22 == "A"){$score++;}
 if ($answer23 == "A"){$score++;}
 if ($answer24 == "D"){$score++;}
 if ($answer25 == "C"){$score++;}
 if ($answer26 == "B"){$score++;}
 if ($answer27 == "B"){$score++;}
 if ($answer28 == "B"){$score++;}
 if ($answer29 == "A"){$score++;}
 if ($answer30 == "C"){$score++;}
 echo "<center><font face='Berlin Sans FB' size='8'>Your Score is <br> $score/30</font></center>";
$jour = date("d-m-Y");
$heure = date("H:i");
$date = $heure." ".$jour;  
$login= $_SESSION['login'];

 
mysql_query("UPDATE utilisateurs SET  score='".$score."',
 Date='".$date."' WHERE  login='". $login ."' ") or die(mysql_error()); 
  ?>
 <?php if($score>=0 &&$score<=4){
 echo "Niveau A1
";}
else if($score>=5 &&$score<=12){
 echo "Niveau A2 :

";} 
else if($score>=13 &&$score<=15){
 echo "
Niveau B1 ";}

else if($score>=16 &&$score<=25){
 echo "
Niveau B2 ";}
else {
 echo "
Niveau C1 ;}


?>

</div>

</body>
</html>

et voila le message d'erreur
Your Score


?>
Bienvenue:No_Login
Your Score is
9/30

Notice: Undefined index: login in C:\Program Files (x86)\EasyPHP-12.1\www\Site sans nom 17\process.php on line 105
Niveau A2
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
7 avril 2014 à 17:33
J'ai édité ton message pour y mettre les balises de code.... merci d'y penser à l'avenir .

Plus d'infos :
http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code


Pour ce qui est de ton message d'erreur :
Comme tu peux le voir.. il t'affiche : Bienvenue:No_Login
No_Login étant la valeur que j'ai mis lorsque ta variable $_POST['login'] n'existe pas.........

Pour le message d'erreur :
Notice: Undefined index: login in C:\Program Files (x86)\EasyPHP-12.1\www\Site sans nom 17\process.php on line 105
Tu as toutes les infos dans ce message pour trouver par toi même d'où vient le problème.... non ??

=> Dans ton fichier process.php ... à la ligne 105 ... tu as quoi comme code ??
$login= $_SESSION['login'];

Là... il te dit que ta variable $_SESSION['login'] n'existe pas...
Comme je te l'ai déjà expliqué.. lorsque tu récupère des valeurs depuis des variables de type POST / GET ou SESSION il vaut mieux s'assurer qu'elles existent en utilisant la fonction ISSET.

donc cette ligne de code devrait être:
$login= isset($_SESSION['login'])?$_SESSION['login']:'error_no_login_session';

/* PS: j'ai mis comme valeur si SESSION['login'] n'est pas trouvé : "error_no_login_session"
Mais tu peux y mettre ce que tu veux....
*/

0
bonjour mon ami j'ai bien compris l'erreur mais je sais pas comment le corrigé puis je vous m'aidiez
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
10 avril 2014 à 18:57
Bonjour,
Je reformule :

Les message d'erreur te dit que tu as une erreur dans ton fichier process.php a la ligne 105

TU AS QUOI COMME CODE A CETTE LIGNE ??
D'après ce que je vois.. tu as le code :
$login= $_SESSION['login'];


Vu que ta variable de SESSION ( LOGIN ) n'existe pas.... il te marque une erreur !

Donc :
1 - Reprend ce que je t'ai marqué concernant l'utilisation d' ISSET
2 - Où et comment initialises tu cette variable de session ?? (fais voir le code)
0
pour la premier page j'ai mis
if( isset ( $_POST['b1'] ) )
{
$_SESSION['login']= $_POST['t1'];
echo
$dr=mysql_query("select * from utilisateurs where login='". $_POST['t1']."' and pass='".$_POST['t2']."'");
$ligne=mysql_fetch_array($dr);
et pour la 2eme
session_start();
$login= $_SESSION['login'];
voila comment j'ai initialisé
Merci cher ami
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
Modifié par jordane45 le 11/04/2014 à 12:52
TU as bien mis le session_start(); sur ta première page également ?
Au cas où.. juste pour voir si tu as bien des choses dans les variables de session tu peux faire, sur ta deuxième page, un print_r($_SESSION)

Si ça ne marche toujours pas, COLLES nous le code complet de tes différentes PAGES.
=> En utilisant les BALISES DE CODE.
http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

.
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
Modifié par jordane45 le 11/04/2014 à 17:16
Oui... dans ta première page.


Bon.. le code devrait donner un truc du genre :
<?php 
session_start(); 
include('connexion.php');

 ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type='text/css'>
#wrapper {
 
 width:950px;
  height:auto;
  padding: 13px;
  margin-right:auto;
  margin-left:auto;
  background-color:#fff;
 
}
#wrapper form ol li {
 font-weight: bold;
}
#wrapper form ol li div div label {
 font-weight: normal;
}
#wrapper form ol li div {
 font-weight: normal;
}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

</head>
<?php

//---------------------------------------------------------
//   RECUPERATION DES VARIABLES POST
//      Si elle n'existe pas déjà en session.
//---------------------------------------------------------

if(! isset($_SESSION['login'])){
 $login = isset($_POST['t1'])?$_POST['t1']:'error';
 $pasw= isset($_POST['t2'])?$_POST['t2']:'error';
 $_SESSION['login']= $login;
}


?>
<body>
<form method="post" action="#">

<div>
<p class="member"><h3>Authentification</h3></p>
<p>Login</p>
<input type='text' name="t1"/>
<p>Password</p>
<p>
  <input type='Password' name="t2"/>
  <input name="b1" type="submit" class="login" id="b1"/>
  </br>
</p>
</form>
<?php
//---------------------------------------------------------
//   PREPARATION DE LA REQUETE
//---------------------------------------------------------
if( isset ( $_POST['b1'] ) ){ 
 $sql="SELECT * 
           FROM utilisateurs 
           WHERE login='". $login."'
           AND pass='".$pasw."'";

//------------------------------------------------------  
// Le temps des tests..
// pour vérifier que ta requête est bonne:
   print_r($sql);
//------------------------------------------------------
  $dr = mysql_query($sql);
  $ligne=mysql_fetch_array($dr);

// Verification que l'utilisateur/pasword 
// ne retourne qu' UN  seul utilisateur
if(count($ligne)==1){
    // le temps des tests.. tu peux commenter la redirection
    // pour voir si ta requête est bonne...(et tu remplaces par
    // un echo:
    echo " OK "; 
   //header("location:Quiz.php");
}else{
    echo 'login ou mot de passe invalide ou nombre d'utilisateurs incorrecte !';
}

}
?>
     </div>
   </body>
</html>
 


Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
0
j'ai toujours le meme erreur :
?>
Bienvenue:error
Your Score is
0/30
UPDATE utilisateurs SET score='0' ,Date='17:26 14-04-2014' WHERE login='error' Niveau A1
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
14 avril 2014 à 17:47
Tu as testé en laissant les commentaires comme je te l'ai dit ???

C'est à dire ... SANS FAIRE LA REDIRECTION
//header("location:Quiz.php");


Tout en laissant les différents PRINT que j'y avais mis...
Qu'est ce que ça t'affiche ???
0
oui j'ai laissé les commentaire sans modifier cette ligne:
<form method="post" action="#">
il m'affiche
Notice: Undefined variable: login in C:\Program Files (x86)\EasyPHP-12.1\www\Site sans nom 17\index.php on line 69

Notice: Undefined variable: pasw in C:\Program Files (x86)\EasyPHP-12.1\www\Site sans nom 17\index.php on line 70
SELECT * FROM utilisateurs WHERE login='' AND pass='' OK
mais si je le change avec <form method="post" action="Quiz.php">
?>
Bienvenue:error
Your Score is
10/30
UPDATE utilisateurs SET score='0' ,Date='17:57 14-04-2014' WHERE login='error'
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
Modifié par jordane45 le 14/04/2014 à 18:18
Et de cette manière ? (qu'obtiens tu ? )

<?php 
session_start(); 
include('connexion.php');

 ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type='text/css'>
#wrapper {
 
 width:950px;
  height:auto;
  padding: 13px;
  margin-right:auto;
  margin-left:auto;
  background-color:#fff;
 
}
#wrapper form ol li {
 font-weight: bold;
}
#wrapper form ol li div div label {
 font-weight: normal;
}
#wrapper form ol li div {
 font-weight: normal;
}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

</head>
<body>
<form method="post" action="#">

<div>
<p class="member"><h3>Authentification</h3></p>
<p>Login</p>
<input type='text' name="t1" id="t1"/>
<p>Password</p>
<p>
  <input type='Password' name="t2" id="t2"/>
  <input name="b1" type="submit" class="login" id="b1"/>
  </br>
</p>
</form>

<?php
//---------------------------------------------------------
//   REQUETE
//---------------------------------------------------------
$login ="no_post";
$pasw ="no_post";
if( isset ($_POST['b1'] ) ){ 
    Echo "<p><h2> Variables POST : </h2><br>";
    print_r($_POST);
    Echo "</p>";
    //----------------------------------------------------
    //  RECUPERATION DES VARIABLES POST
    //----------------------------------------------------
    $login = isset($_POST['t1'])?$_POST['t1']:'';
    $pasw= isset($_POST['t2'])?$_POST['t2']:'';
     //----------------------------------------------------
 if($login && $pasw){
   $sql="SELECT * 
           FROM utilisateurs 
           WHERE login='". $login."'
           AND pass='".$pasw."'";

  //------------------------------------------------------  
  // Le temps des tests..
  // pour vérifier que ta requête est bonne:
   print_r($sql);
  //------------------------------------------------------
  $dr = mysql_query($sql);
  $ligne=mysql_fetch_array($dr);

  // Verification que l'utilisateur/pasword 
  // ne retourne qu' UN  seul utilisateur
  if(count($ligne)==1){
    // le temps des tests.. tu peux commenter la redirection
    // pour voir si ta requête est bonne...(et tu remplaces par
    // un echo:
    echo '<p>';
    $_SESSION['login']= $login;
     echo " OK - Utilisateur => ". $_SESSION['login']; 
    echo '</p>';
   //header("location:Quiz.php");
  }else{
    echo '<p>';
    echo 'login ou mot de passe invalide ou nombre d\'utilisateurs incorrecte !';
    echo '</p>';
  }
}else{
Echo "<p> Login ou Password non renseigné </p>";
}

}
?>
     </div>
   </body>
</html>


Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
0
Variables POST :

Array ( [t1] => ***@*** [t2] => 1111 [b1] => Envoyer )

SELECT * FROM utilisateurs WHERE login='***@***' AND pass='1111'

login ou mot de passe invalide ou nombre d'utilisateurs incorrecte !
>
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
14 avril 2014 à 18:37
Et ben voila...ça marche mieux.
Maintenant...
1 - Tu fais des tests avec un Login et un Password Valables. ( qui ne donnent bien q'une seule ligne dans la requête)
=> Tu peux tester directement ta requête dans ta BDD pour t'assurer que le résultat est bon.

2 - Tu vérifies que tu obtiens bien le texte :
OK - Utilisateur => LOGIN_que_tu_as_renseigné

3 - Si 1 et 2 OK ...Tu dé-commente la redirection ( le Header locaion) et tu regardes si maintenant sur ta seconde page ça fonctionne correctement.
0
1) verification

Array ( [t1] => ***@*** [t2] => 2222 [b1] => Envoyer )

SELECT * FROM utilisateurs WHERE login='***@***' AND pass='2222'

login ou mot de passe invalide ou nombre d'utilisateurs incorrecte !
2) <form method="post" action="Quiz.php">
header("location:Quiz.php");
Bienvenue:error
Your Score is
0/30
toujours le mm erreur :/
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
14 avril 2014 à 19:44
Je ne t'ai pas dit de modifier le form...juste de decommenter le header location !!!
De toutes façons. .ton login password est faut...tu as testé ta requête en direct dans ta bdd ???
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
15 avril 2014 à 02:00
Pour être un peu plus précis... que donne, directement dans ta base de données..la requête :
SELECT * FROM utilisateurs WHERE login='***@***' AND pass='2222' 

en remplaçant les *** par la bonne valeur. bien sûr.

Est-ce que ça te retourne une ligne (et une seule ) ?

Si c'esr le cas
(et UNIQUEMENT DANS CE CAS)... les points 1 et 2 de ma question précédente sont OK.
et tu peux donc (tout en laissant le FORM action="#" ) decommenter la ligne
//header("location:Quiz.php");




NB : une fois que tu as validé... tu es redirigé vers la page quizz.php.
Hors... ce n'est pas dans cette page que tu affiches le résultat du quizz ( et le nom du user) mais dans la page encore d'après... process.php.

Donc.. dans la page process.php tu pourras ajouter si ce n'est pas déjà fait :
  <?php
  $login= isset($_SESSION['login'])?$_SESSION['login']:'error';
  echo "<br> Le Login est : " .$login."<br>";
?> 


Sans oublier de mettre en début de ton script :
session_start(); 


Sa
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
15 avril 2014 à 12:49
Tu as du mal à comprendre comment ça fonctionne....

Lorsque tu utilises un formulaire et que tu mets ACTION="une_page.php" .. au momment de la validation du formulaire tu es directement redirigé vers cette page......
(donc tout le code que tu mets dans ta première page n'est pas exécutée..)

Donc.. soit tu déplaces le code de varification de LOGIN dans ta page quizz.php....

Soit tu mets <form action="#" et là.. ton formulaire appelle la page actuelle...et éxécute le code qui s'y trouve...

Donc... en partant du principe que tu LAISSES action="#" ...
Pour l'instant tu obtiens :
avec le form action="#"
Variables POST :

Array ( [t1] => ***@*** [t2] => 1111 [b1] => Envoyer )

SELECT * FROM utilisateurs WHERE login='***@***' AND pass='1111'

login ou mot de passe invalide ou nombre d'utilisateurs incorrecte !

Je souhaiterais savoir ce que ta requête retourne EXACTEMENT lorsque tu l'exécutes dans ta BDD ;.....
Combien de Lignes sont retournées ????
Car là... le message est clair :
- Soit tes identifiants sont faux
- Soit tu as plus d'une ligne de résultat...

Au cas où, peux tu tester ceci :
<?php 
session_start(); 
include('connexion.php');

 ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type='text/css'>
#wrapper {
 
 width:950px;
  height:auto;
  padding: 13px;
  margin-right:auto;
  margin-left:auto;
  background-color:#fff;
 
}
#wrapper form ol li {
 font-weight: bold;
}
#wrapper form ol li div div label {
 font-weight: normal;
}
#wrapper form ol li div {
 font-weight: normal;
}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

</head>
<body>
<!-- NE PAS MODIFIER !!!!!!! -->
<form method="post" action="#">

<div>
<p class="member"><h3>Authentification</h3></p>
<p>Login</p>
<input type='text' name="t1" id="t1"/>
<p>Password</p>
<p>
  <input type='Password' name="t2" id="t2"/>
  <input name="b1" type="submit" class="login" id="b1"/>
  </br>
</p>
</form>

<?php
//---------------------------------------------------------
//   REQUETE
//---------------------------------------------------------
$login ="no_post";
$pasw ="no_post";
if( isset ($_POST['b1'] ) ){ 
    Echo "<p><h2> Variables POST : </h2><br>";
    print_r($_POST);
    Echo "</p>";
    //----------------------------------------------------
    //  RECUPERATION DES VARIABLES POST
    //----------------------------------------------------
    $login = isset($_POST['t1'])?$_POST['t1']:'';
    $pasw= isset($_POST['t2'])?$_POST['t2']:'';
     //----------------------------------------------------
 if($login && $pasw){
   $sql="SELECT * 
           FROM utilisateurs 
           WHERE login='". $login."'
           AND pass='".$pasw."'";

  //------------------------------------------------------  
  // Le temps des tests..
  // pour vérifier que ta requête est bonne:
   print_r($sql);
  //------------------------------------------------------
  $dr = mysql_query($sql) or die("Erreur dans la requête  :".mysql_error()) ;
  $ligne=mysql_fetch_array($dr);

  //------------------------------------------------------  
  // Le temps des tests..
 // Pour savoir ce que te retournes ta requête :
   echo "<p> RESULTAT DE LA REQUETE : <br>";
   print_r( $ligne);
   echo " </p>";


  // Verification que l'utilisateur/pasword 
  // ne retourne qu' UN  seul utilisateur
  if(count($ligne)==1){
    // le temps des tests.. tu peux commenter la redirection
    // pour voir si ta requête est bonne...(et tu remplaces par
    // un echo:
    echo '<p>';
    $_SESSION['login']= $login;
     echo " OK - Utilisateur => ". $_SESSION['login']; 
    echo '</p>';
      //header("location:Quiz.php");
  }else{
    echo '<p>';
    echo 'login ou mot de passe invalide ou nombre d\'utilisateurs incorrecte !';
   echo '<br> Nb de lignes retournées : ".count($ligne)."<br>";
    echo '</p>';
  }
}else{
Echo "<p> Login ou Password non renseigné </p>";
}

}
?>
     </div>
   </body>
</html>



0
pour la base de donnée elle me donne cette phrase comme resultat
Affichage des lignes 0 - 0 ( 1 total, Traitement en 0.0007 sec)

+ Options
Textes complets id_user login pass score Date
Modifier Modifier Copier Copier Effacer Effacer 2 ***@*** 2222 0 2014-04-02
0
Test du code :
Variables POST :

Array ( [t1] => ***@*** [t2] => 2222 [b1] => Envoyer )

SELECT * FROM utilisateurs WHERE login='***@***' AND pass='2222'

RESULTAT DE LA REQUETE :
Array ( [0] => 2 [id_user] => 2 [1] => ***@*** [login] => ***@*** [2] => 2222 [pass] => 2222 [3] => 0 [score] => 0 [4] => 2014-04-02 [Date] => 2014-04-02 )

login ou mot de passe invalide ou nombre d'utilisateurs incorrecte !
Nb de lignes retournées : ".count($ligne)."
"
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
15 avril 2014 à 13:46
Autant pour moi... petite erreur de frappe.
Tu peux remplacer par :
?php 
session_start(); 
include('connexion.php');

 ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type='text/css'>
#wrapper {
 
 width:950px;
  height:auto;
  padding: 13px;
  margin-right:auto;
  margin-left:auto;
  background-color:#fff;
 
}
#wrapper form ol li {
 font-weight: bold;
}
#wrapper form ol li div div label {
 font-weight: normal;
}
#wrapper form ol li div {
 font-weight: normal;
}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

</head>
<body>
<!-- NE PAS MODIFIER !!!!!!! -->
<form method="post" action="#">

<div>
<p class="member"><h3>Authentification</h3></p>
<p>Login</p>
<input type='text' name="t1" id="t1"/>
<p>Password</p>
<p>
  <input type='Password' name="t2" id="t2"/>
  <input name="b1" type="submit" class="login" id="b1"/>
  </br>
</p>
</form>

<?php
//---------------------------------------------------------
//   REQUETE
//---------------------------------------------------------
$login ="no_post";
$pasw ="no_post";
if( isset ($_POST['b1'] ) ){ 
    Echo "<p><h2> Variables POST : </h2><br>";
    print_r($_POST);
    Echo "</p>";
    //----------------------------------------------------
    //  RECUPERATION DES VARIABLES POST
    //----------------------------------------------------
    $login = isset($_POST['t1'])?$_POST['t1']:'';
    $pasw= isset($_POST['t2'])?$_POST['t2']:'';
     //----------------------------------------------------
 if($login && $pasw){
   $sql="SELECT * 
           FROM utilisateurs 
           WHERE login='". $login."'
           AND pass='".$pasw."'";

  //------------------------------------------------------  
  // Le temps des tests..
  // pour vérifier que ta requête est bonne:
   print_r($sql);
  //------------------------------------------------------
  $dr = mysql_query($sql) or die("Erreur dans la requête  :".mysql_error()) ;
 $num_rows = mysql_num_rows($dr);
  $ligne=mysql_fetch_array($dr);

  //------------------------------------------------------  
  // Le temps des tests..
 // Pour savoir ce que te retournes ta requête :
   echo "<p> RESULTAT DE LA REQUETE : <br>";
   print_r( $ligne);
   echo " </p>";


  // Verification que l'utilisateur/pasword 
  // ne retourne qu' UN  seul utilisateur
  if( $num_rows == 1){
    // le temps des tests.. tu peux commenter la redirection
    // pour voir si ta requête est bonne...(et tu remplaces par
    // un echo:
    echo '<p>';
    $_SESSION['login']= $login;
     echo " OK - Utilisateur => ". $_SESSION['login']; 
    echo '</p>';
      //header("location:Quiz.php");
  }else{
    echo '<p>';
    echo 'login ou mot de passe invalide ou nombre d\'utilisateurs incorrecte !';
   echo "<br> Nb de lignes retournées : ". $num_rows."<br>";
    echo '</p>';
  }
}else{
Echo "<p> Login ou Password non renseigné </p>";
}

}
?>
     </div>
   </body>
</html>




0
Variables POST :

Array ( [t1] => user1 @ gmail .fr [t2] => 1111 [b1] => Envoyer )

SELECT * FROM utilisateurs WHERE login=' user1 @ gmail .fr' AND pass='1111'

RESULTAT DE LA REQUETE :
Array ( [0] => 1 [id_user] => 1 [1] => user1 @ gmail .fr [login] => user1 @ gmail. fr [2] => 1111 [pass] => 1111 [3] => 0 [score] => 0 [4] => 2014-04-02 [Date] => 2014-04-02 )

OK - Utilisateur => user1 @ gmail .fr
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
Modifié par jordane45 le 15/04/2014 à 13:57
Super.
Maintenant de-commente la ligne HEADER.
//....

    $_SESSION['login']= $login;
     echo " OK - Utilisateur => ". $_SESSION['login']; 
    echo '</p>';
      header("location:Quiz.php");
  }else{

//...
0
Rejoignez-nous