Page 1 sur 1

Connection espace membre qui marche sur FF pas IE

Posté : 27 nov. 2006, 23:06
par analfabete
Bonsoir à tous je rencontre actuellement un problème avec mon scipt de connection a ma section membre, sous Firefox tout marche, quand je met de mauvais identifiant j'ai le message d'erreur qui s'affcihe et avec les bon identifiants cela me redirige vers la bonne page, cependant aucune des deux action cité ci-dessus marche sur IE
Voilà mon code de connection
<?php

if (isset($_POST['envoyer']) && $_POST['envoyer']=='Envoyer' && $_SESSION['logged'] == false)
{
    if ( isset($_POST['login']) && isset($_POST['pwd']) )
        {
                include('../script/connect_db.php');
                $sql = 'SELECT idmembre,login,pwd_md5,actif FROM membre WHERE login=\''.htmlentities($_POST['login']).'\' AND pwd_md5=\''.md5($_POST['pwd']).'\'';
                $req = mysql_query($sql);
                mysql_close();
                $res = mysql_fetch_array($req);
             $res_1=mysql_num_rows($req);

        if ($res_1 == 1)
                {       
                        if( $res['actif'] == 0 )
                        {
                                $erreur = '<p1>Votre compte n\'est pas encore activer<br></p1>';
                        }
                       
                        else
                        {
                                if (isset($_POST['connection_auto']) && $_POST['connection_auto'] == 'on')
                {
                        $expire = time() + 3600 * 24 * 365;
                                        setcookie('pseudo', $_POST['login'], $expire);
                        setcookie('mot_passe', md5($_POST['pwd']), $expire);
                 }
               
                                session_start();
                               
                                $_SESSION['logged'] = true;
                $_SESSION['login'] = $res['login'];
                                $_SESSION['idmembre'] = $res['idmembre'];
                header('Location: index.php');
                exit();
                        }
                }
               
                else    
                {
            $erreur = '<p1>Pseudo ou mot de pass incorrect<br></p1>';
        }
    }
}

?>

Posté : 27 nov. 2006, 23:22
par Ajoloca
Bonsoir,

Ta ligne session_start(); devrait se trouver en tête du script et pas là ou elle se trouve.

Posté : 27 nov. 2006, 23:24
par analfabete
Cela n'a rien fais :cry:

Posté : 27 nov. 2006, 23:29
par Ajoloca
Re,

Tu est sur que $_SESSION['logged'] contien QQ chose à l'entrée du script?
Est tu sur que tu rentres dans le second if()?

Posté : 28 nov. 2006, 12:54
par analfabete
Cela devient vraiment enigmatique, j'ai nettoyer les variable qui ne servait a rien et j'ai reduit un peu le code de facon que celui marche toujours sur firefox--> erreur ou connection, cependant celui-ci ne marche pas sur IE, c'est un vrai casse tête
Voilà mon code et celui du formulaire qui se trouve sur la meme page :
<?php
if (isset($_POST['envoyer']))
{
    if ( isset($_POST['login']) && isset($_POST['pwd']) ) 
	{
		include('../script/connect_db.php');
		$sql = 'SELECT idmembre,login,pwd_md5,actif FROM membre WHERE login=\''.htmlentities($_POST['login']).'\' AND pwd_md5=\''.md5($_POST['pwd']).'\'';
		$req = mysql_query($sql);
		mysql_close();
		$res = mysql_fetch_array($req);
   		$res_1=mysql_num_rows($req);

        if ($res_1 == 1) 
		{	
			if( $res['actif'] == 0 )
			{
				$erreur = '<p1>Votre compte n\'est pas encore activer<br></p1>';
			}
			
			else
			{
				/*if (isset($_POST['connection_auto']) && $_POST['connection_auto'] == 'on')
            	{
                  	$expire = time() + 3600 * 24 * 365;
					setcookie('pseudo', $_POST['login'], $expire);
                   	setcookie('mot_passe', md5($_POST['pwd']), $expire);
                 }	
				
            	$_SESSION['login'] = $res['login'];
				$_SESSION['idmembre'] = $res['idmembre'];*/
            	header('Location: index.php');
            	
			}
		}
		
		else 	
		{
    		$erreur = '<p1>Pseudo ou mot de pass incorrect<br></p1>';
    	}
    }
}
et le formulaire:
 <?php echo $erreur;?>
          <form action="connection.php" method="post">
            <p>
              <label>Pseudo</label>
              <input name="login" type="text" class="textfield" value="" size="16" maxlength="16"/>
            </p>
            <p>
              <label>Mot de pass</label>
              <input name="pwd" type="password" class="textfield" value="" size="16" maxlength="16"/>
            </p>
			            <p>
             Connexion automatique: <input type="checkbox" name="connection_auto" value="on" />

            </p>
			<br/>
            <p style="text-align:center; padding-top:6px;">
              <input name="envoyer" src="../img/bouton_envoyer.png" type="image" value="Envoyer"/>
            </p>
            <p style="font-size:10px; text-align:center;"><em><a href="oubli_pwd.php">Mot de pass oublié ?</a><br/>
              <a href="inscription.php">Je m'inscrit !</a></em></p>
          </form>

Posté : 28 nov. 2006, 13:00
par zeus
Si, au sommet de ton script, tu fait
print_r($_POST)
, tu obtients des différences entre IE et FF ?

Posté : 28 nov. 2006, 13:05
par analfabete
Oui voila ce que j'obtiens sur Firefox:
Array ( [login] => analfabete [pwd] => a1ac3agc [envoyer_x] => 45 [envoyer_y] => 11 [envoyer] => Envoyer )
et sous IE:
Array ( [login] => analfabete [pwd] => a1ac3agc [envoyer_x] => 31 [envoyer_y] => 9 ) 

Posté : 28 nov. 2006, 13:08
par analfabete
deja le nouveau code ne marche plus j'y omprend rien: lorsque mon utilisateur clique sur envoyer le isse($_POST[envoyer] ) devrait repondre true

Posté : 28 nov. 2006, 13:10
par zeus
Et tu ne vois pas l'erreur ? ;)

Que va-t-il en être du test sur l'existence de $_POST['envoyer'] ?


Je pense qu'il faut donc modifier le test de vérification de soumission du formulaire en vérifiant la présence de $_POST['envoyer_x'] et $_POST['envoyer_y'] plutot que $_POST['envoyer'] ;)

Posté : 28 nov. 2006, 13:21
par analfabete
Arf je recherche un tutorial sur les formulaires en php car je ne comprend pas à quoi correspond envoyer_x et envoyer_y :?

Posté : 28 nov. 2006, 13:35
par zeus
Quand tu remplaces le input type submit par un input type image, tu envoi la position de la souris sur l'image plutot que le nom du input

C'est tout ;)

Posté : 28 nov. 2006, 13:39
par analfabete
Um daccord !
J'ai trouver la solution: me servir de isset($_POST) au départ, sa marche nickel et sa allège le code
Merci