8795 sujets

Développement web côté serveur, CMS

Bonjour,

Ma page index.php inclue dans son menu un lien en javascript pour se connecter au site.
<?php 
include('menu.php'); 
include('connect-bdd.php');
?> <!-- menu et BDD -->
<div id="header"></div>
<div id="container">
<div id="contain"><?php include('connexion.php');?>

echo'<li><a href="javascript:showDiv()">Connexion</a></li>';


La page qui montre le formulaire de connexion et qui le traite me pose un problème. Je n'arrive pas à récupérer les valeurs du formulaire.
J'ai tout essayé, des isset, des !empty, des echo ...
<?php
include('connect-bdd.php');
// reste des données obligatoires
 
if (isset($_POST['login']) && isset($_POST['mdp']) && ($_POST['login']!= "") && ($_POST['mdp']!=""))
{
    // récupération des données de connexion
    $login=$_POST['login'];
    $mdp=$_POST['mdp'];
 
    // requête SQL pour vérifier l'utilisateur
    $sql="SELECT * FROM team WHERE login = '$login' AND mdp ='$mdp'";
    $exec = mysql_query($sql) or die('Impossible de se connecter au serveur MySQL');;
    // tester le résultat de l'éxécution
    if (mysql_num_rows($exec) == 0)
    {
        echo 'Erreur de connexion, impossible de continuer';
    }
    else
    {
        session_start();
         
        // récupérer les infos utiles de l'utilisateur
        $ligne=mysql_fetch_array($exec);
        $_SESSION['nom']=$ligne['nom'];
        $_SESSION['prenom']=$ligne['prenom'];
         
        if ($_SESSION['login'])
        {
            header("Location:admin.php");
        }
        else
        {
            header("Location:index.php");
        }  
    }
}
else
{
    if (isset($_POST['login']) && isset($_POST['mdp']) && ($_POST['login']!= "") && ($_POST['mdp']!=""))
    {
    // récupération des données de connexion
    $login=$_POST['login'];
    $mdp=$_POST['mdp'];
 
    // requête SQL pour vérifier l'utilisateur
    $sql="SELECT * FROM team WHERE login = '$login' AND mdp ='$mdp'";
    $exec = mysql_query($sql) or die('Impossible de se connecter au serveur MySQL');;
    // tester le résultat de l'éxécution
    if (mysql_num_rows($exec) == 0)
    {
        echo 'Erreur de connexion, impossible de continuer';
    }
    else
    {
        session_start();
         
        // récupérer les infos utiles de l'utilisateur
        $ligne=mysql_fetch_array($exec);
        $_SESSION['nom']=$ligne['nom'];
        $_SESSION['prenom']=$ligne['prenom'];
         
        if ($_SESSION['login'])
        {
            header("Location:admin.php");
        }
        else
        {
            header("Location:index.php");
        }
    }
}
}
?>

Je n'obtiens aucun msg d'erreur avec ce code.

Qu'en pensez-vous (à part que c'est en mysql et qu'il faudrait du PDO...) ?
lizeal a écrit :
Qu'en pensez-vous (à part que c'est en mysql et qu'il faudrait du PDO...) ?
ou du mysqli_ ^^

Sinon à coté (j'ai juste survolé le code, pas trop de temps là tout de suite^^)
if(isset($var)&&$var!='')

revient au même que
if(!empty($var))



Ensuite, si tu fais un var_dump($_POST); juste après :
include('connect-bdd.php');
// reste des données obligatoires


Qu'est-ce que tu obtiens ?

J'ai l'impression que le soucis vient de la transmission des données du formulaire.
Modifié par Lothindil (28 Feb 2014 - 14:23)
En gros, ton soucis c'est que le fichier où tu traites la connexion ne reçoit aucune donnée via $_POST (vu que celui-ci est vide).

Maintenant, il faut voir comment tu envoies les données, parce que c'est de ce coté-là que ce situe ton problème.

(et pour empty, le jour où j'ai découvert cette fonction, je l'ai plus lâché, trop pratique^^)
Y aurait pas une petite erreur de copier-coller ?

if (isset($_POST['login']) && isset($_POST['mdp']) && ($_POST['login']!= "") && ($_POST['mdp']!=""))
{
   /*morceau de code qui traite $_POST*/
}
else
{
   if (isset($_POST['login']) && isset($_POST['mdp']) && ($_POST['login']!= "") && ($_POST['mdp']!=""))
   {
      /*morceau de code qui traite $_POST*/
   }
}


Parce que là, j'ai pas du tout l'affichage du formulaire de connexion et tu nous donnes 2 fois le même bout de code en fait. Smiley biggol
<?php
include('connect-bdd.php');
var_dump($_POST);
// reste des données obligatoires
 
if (isset($_POST['login']) && isset($_POST['mdp']) && ($_POST['login']!= "") && ($_POST['mdp']!=""))
{
    // récupération des données de connexion
    $login=$_POST['login'];
    $mdp=$_POST['mdp'];
 
    // requête SQL pour vérifier l'utilisateur
    $sql="SELECT * FROM team WHERE login = '$login' AND mdp ='$mdp'";
    $exec = mysql_query($sql) or die('Impossible de se connecter au serveur MySQL');;
    // tester le résultat de l'éxécution
    if (mysql_num_rows($exec) == 0)
    {
        echo 'Erreur de connexion, impossible de continuer';
    }
    else
    {
        session_start();
         
        // récupérer les infos utiles de l'utilisateur
        $ligne=mysql_fetch_array($exec);
        $_SESSION['nom']=$ligne['nom'];
        $_SESSION['prenom']=$ligne['prenom'];
         
        if ($_SESSION['login'])
        {
            header("Location:admin.php");
        }
        else
        {
            header("Location:index.php");
        }  
    }
}
else {
echo'erreur';
}

effectivement, j'ai tellement changé de façon de faire que je fais n'importe quoi.
Bah ça change rien... J'ai toujours pas le formulaire de contact Smiley biggol parce que si $_POST est vide, c'est que, à aucun moment, tu ne transmets les variables post à ton fichier qui traite.
<!-- connexion -->
<div id="hideshow" style="visibility: hidden;">
    <div id="fade"></div> 
    <div class="popup_block"> 
        <div class="popup"> 
            <a href="javascript:hideDiv()">
                <img src="close-connexion.png" class="cntrl" alt="" />
            </a>
										<!-- ========== FORM: connexion/ ========== -->
<form method="post" action="#">
<div class="m-input-prepend">
  <span class="add-on">Login</span>
  <input class="m-wrap" size="16" type="text" name="login" placeholder="Identifiant">
</div>
<div class="m-input-prepend">
  <span class="add-on">MDP</span>
  <input class="m-wrap" size="16" type="password" name="mdp" placeholder="Mot de passe">
</div>
<input type="submit" name="submit" value="Se connecter" class="m-btn blue"/>
</form>
										<!-- ========== /FORM: connexion ========== -->
        </div>
    </div>
</div>

<!-- ================================================== Traitement: pour se connecter/ ================================================== -->
<?php
include('connect-bdd.php');
var_dump($_POST);
// reste des données obligatoires
 
if (isset($_POST['login']) && isset($_POST['mdp']) && ($_POST['login']!= "") && ($_POST['mdp']!=""))
{
    // récupération des données de connexion
    $login=$_POST['login'];
    $mdp=$_POST['mdp'];
 
    // requête SQL pour vérifier l'utilisateur
    $sql="SELECT * FROM team WHERE login = '$login' AND mdp ='$mdp'";
    $exec = mysql_query($sql) or die('Impossible de se connecter au serveur MySQL');;
    // tester le résultat de l'éxécution
    if (mysql_num_rows($exec) == 0)
    {
        echo 'Erreur de connexion, impossible de continuer';
    }
    else
    {
        session_start();
         
        // récupérer les infos utiles de l'utilisateur
        $ligne=mysql_fetch_array($exec);
        $_SESSION['nom']=$ligne['nom'];
        $_SESSION['prenom']=$ligne['prenom'];
         
        if ($_SESSION['login'])
        {
            header("Location:admin.php");
        }
        else
        {
            header("Location:index.php");
        }  
    }
}
else {
echo'erreur';
}
?>