8800 sujets

Développement web côté serveur, CMS

Bonsoir,

Voici mon problème, j'ai un code HTML sous cette forme:

<div class="connection">
			    <form id="connexion" method="post" action="userslogin.php">
			        <input type="text" name="pseudo" size="15" value="Login" />
			        <input type="password" name="mdp" size="15" value="password" />
			        <input type="submit" value="go" /> </br/>
				    <a id="show" href="#" >S'inscrire</a>
			    </form>
			</div>

Puis un code PHP que voici:

<?php
// On démarre la session
session_start();
// on se connect à BDD
include('fonctions/fonctions.php');
connexionbdd();
// défini une variable fausse
$pseudoOK = false;

// On n'effectue les traitement qu'à la condition que
// les informations aient été effectivement postées
if ( isset($_POST) && (!empty($_POST['pseudo'])) && (!empty($_POST['mdp'])) ) {

  // On va chercher le mot de passe afférent à ce pseudo
    $sql = "SELECT membre_id, membre_pseudo, membre_mdp FROM membres WHERE membre_pseudo = '".mysql_real_escape_string($_POST['pseudo'])."'";
    $req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);

 
  // On vérifie que l'utilisateur existe bien
  if (mysql_num_rows($req) > 0) {
     $data = mysql_fetch_assoc($req);
   
    // On vérifie que son mot de passe est correct
	if(md5($_POST['mdp']) == $data['membre_mdp']) {
      $pseudoOK = true;
    }
  }
}

// Si le pseudo a été validé on met les données en sessions
if ($pseudoOK) {
    $_SESSION['membre_id'] = $data['membre_id'];
    $_SESSION['membre_pseudo'] = $data['membre_pseudo'];
    $_SESSION['membre_mdp'] = $data['membre_mdp'];
    
}
else {
  echo 'Une erreur est survenue, veuillez réessayer !';
  header('Location:  http://www.globalflygame.fr');  
}
?>

impossible de traiter l'action
j'ai toujours mon echo 'Une erreur est survenue, veuillez réessayer !

ps: ma table se présente sous cette forme
http://img651.imageshack.us/img651/1487/63864026.jpg
Modifié par ekke (31 May 2011 - 17:27)
Salut,

J'ai jeté un coup d'oeil a ton script et il paraît juste. As-tu vérifier que ta fonction "connexionbdd();" fonctionnait correctement?
J'ai eu le même problème que toi.
A ta place, j'aurais quand même executé ma requête ainsi:
$req = mysql_query($sql, $base)
avec $base, la base dans laquelle je pioche mes données (même si cette déclaration n'est pas obligatoire)

Concernant le script, tu aurais pu éviter de créer la variable "$pseudook" en faisant directement:

<?php 
// On démarre la session 
session_start(); 

//On enlève les fonctions et connectbdd()
 
// On n'effectue les traitement qu'à la condition que 
// les informations aient été effectivement postées 
if ( isset($_POST) && (!empty($_POST['pseudo'])) && (!empty($_POST['mdp'])) ) { 
  //On se connecte à la bdd
   $base = mysql_connect('localhost', 'ident', '**************') or die("Un erreur est survenue!");
	        mysql_select_db ('bdd', $base) or die("Un erreur est survenue!"); 

  // On va chercher le mot de passe afférent à ce pseudo 
    $sql = "SELECT membre_id, membre_pseudo, membre_mdp FROM membres WHERE membre_pseudo = '".mysql_real_escape_string($_POST['pseudo'])."'"; 
    $req = mysql_query($sql, $base) or die('Erreur SQL : <br />'.$sql); 
 
  // On vérifie que l'utilisateur existe bien 
  if (mysql_num_rows($req) > 0) { 
     $data = mysql_fetch_assoc($req); 
    
    // On vérifie que son mot de passe est correct 
      if(md5($_POST['mdp']) == $data['membre_mdp']) { 
         $_SESSION['membre_id'] = $data['membre_id']; 
         $_SESSION['membre_pseudo'] = $data['membre_pseudo']; 
         $_SESSION['membre_mdp'] = $data['membre_mdp']; 
        }  
    else { 
        echo 'Une erreur est survenue, veuillez réessayer !'; 
        header('Location:   http://www.globalflygame.fr');    
     } 
   } 
}  
?> 


Mais bon, chacun sa façon de coder Smiley lol
Cordialement.
Modifié par guillaume33 (31 May 2011 - 19:14)
Merci, j'avais bien une conneries dans ma fonction...

Autre chose


<?php  
// On démarre la session  
session_start();  

// On n'effectue les traitement qu'à la condition que les informations aient été effectivement postées  
if ( isset($_POST) && (!empty($_POST['pseudo'])) && (!empty($_POST['mdp'])) ) {  
   //On se connecte à la bdd 
   $base = mysql_connect('', '') or die("Un erreur est survenue!"); 
           mysql_select_db ('globalflygame', $base) or die("Un erreur est survenue!");  
 
    // On va chercher le mot de passe afférent à ce pseudo  
    $sql = "SELECT membre_id, membre_pseudo, membre_mdp FROM membres WHERE membre_pseudo = '".mysql_real_escape_string($_POST['pseudo'])."'";  
    $req = mysql_query($sql, $base) or die('Erreur SQL : <br />'.$sql);  
  
    // On vérifie que l'utilisateur existe bien  
    if (mysql_num_rows($req) > 0) {  
        $data = mysql_fetch_assoc($req);  
     
    // On vérifie que son mot de passe est correct  
        if(md5($_POST['mdp']) == $data['membre_mdp']) {  
            $_SESSION['membre_id'] = $data['membre_id'];  
            $_SESSION['membre_pseudo'] = $data['membre_pseudo'];  
            $_SESSION['membre_mdp'] = $data['membre_mdp'];  
		    echo 'vous etes bien identifie !';
			header('Location:    http://www.globalflygame.fr');
 
        }   
        else {  
            echo 'Une erreur est survenue, veuillez réessayer !';  
            header('Location:    http://www.globalflygame.fr');      
        }  
    }  
}   
?>


La redirection ne fonctionne pas... une idée ?
Modifié par ekke (31 May 2011 - 21:01)
Oui, enlève
echo 'vous etes bien identifie !'; 

Tu pourrais aussi préciser les messages les erreurs en cas de problèmes:

<?php // .......... Script
 if(md5($_POST['mdp']) == $data['membre_mdp']) {   
            $_SESSION['membre_id'] = $data['membre_id'];   
            $_SESSION['membre_pseudo'] = $data['membre_pseudo'];   
            $_SESSION['membre_mdp'] = $data['membre_mdp'];   
            header('Location:     http://www.globalflygame.fr');  
        }    
        else {   
            header('Location:     http://www.globalflygame.fr');
 
             echo 'Une erreur est survenue, veuillez réessayer !';   
        } 
    } 
     else { echo "Pseudo inexistant"; }
}    
?>

ET SURTOUT SUPPRIME TES IDENTIFIANTS D'ACCES A TA BASE DE DONNÉE DANS TON DERNIER MESSAGE !!!!!!!!!!!!!!!!!! (lol toi t'es chez ovh)
Modifié par guillaume33 (31 May 2011 - 21:00)
guillaume33 a écrit :
Oui, enlève
echo 'vous etes bien identifie !'; 

Tu pourrais aussi préciser les messages les erreurs en cas de problèmes:

&lt;?php // .......... Script
 if(md5($_POST['mdp']) == $data['membre_mdp']) {   
            $_SESSION['membre_id'] = $data['membre_id'];   
            $_SESSION['membre_pseudo'] = $data['membre_pseudo'];   
            $_SESSION['membre_mdp'] = $data['membre_mdp'];   
            header('Location:     http://www.globalflygame.fr');  
        }    
        else {   
            header('Location:     http://www.globalflygame.fr');
 
             echo 'Une erreur est survenue, veuillez réessayer !';   
        } 
    } 
     else { echo &quot;Pseudo inexistant&quot;; }
}    
?&gt;

ET SURTOUT SUPPRIME TES IDENTIFIANTS D'ACCES A TA BASE DE DONNÉE DANS TON DERNIER MESSAGE !!!!!!!!!!!!!!!!!! (lol toi t'es chez ovh)

^^' tête en l'air u_u
ouai merci.
euh, pourquoi le fait de mettre un echo en amont empêche une redirection ?
Car le header doit être appelé avant que le moindre contenu ne soit envoyé que ce soit par des affichages PHP ou du HTML. Smiley cligne
Modifié par guillaume33 (31 May 2011 - 21:06)