[RESOLU] Formulaire de connexion, aide.

Avatar du membre
Eléphanteau du PHP | 25 Messages

13 janv. 2015, 15:04

Je n'arrive pas à créer un formulaire de connexion .. tout les tutoriaux ne sont plus valable à cause de Mysql .. ! :(
				<?php 

					if ($_SESSION['logged'] == NULL) //Si le membre n'est pas connecté on affiche le formulaire de connexion

					{

				?>


				<?php

				if (isset($_POST['submit']))

				{

					$error = FALSE;

					$req = $bdd->prepare('SELECT id FROM accounts WHERE account = :account, pass = :pass ');
                	$req->execute(array('account' => $_POST['account'], 'pass' => $_POST['pass'] ));

                	$resultat = $req->fetch();
                                            
                		if (!$resultat)

                		{

                			$error = TRUE;
                			$errorMSG = 'Mauvais identifiant et/ou mot de passe.';
                			echo 'Mauvais identifiant et/ou mot de passe.';

                		}

                		else

                		{
                			$_SESSION['logged'] = 1;
                			echo "<script>window.location.replace('index.php')</script>";
                		}

            	}

                      
                ?>

                <div id="login">
                    <form action="index.php" method="POST">
                    	<input type="text" class="name" name="account" placeholder="Nom d'utilisateur" />
                        <input type="password" class="pass" name="pass" placeholder='******' />
                        <input type="submit" class="valider" name="submit"  value="Connexion">
                    </form>
                </div>


                <?php 

            		}

            		else // Sinon on affiche ses stats.

            		{

            	?>


                 <div id="login_ok">
					
                    <div class="avatar">
                    	<img src="images/avatar.jpg" alt="avatar">
                    </div>
                    
                    	<span class="joueur">Zouzou - Lvl. 200</span>
                    
						<a href="index.html" class="deconnexion">Se deconnecter</a>
                    
                    	<a href="#" class="credits">Acheter des crédits</a>
                    
                    	<a href="#" class="debloquer">Débloquer sont personnage</a>
                    
                    	<a href="#" class="support">Contacter le support</a>
                    
                    	<a href="#" class="messages">Messages</a>
                     
                    	<a href="#" class="messages_no">Messages</a>
                    
                    	<a href="#" class="personnages">Changer de personnages</a>
                    
                    	<a href="#" class="reglages">Changer les réglages</a>
                    
                    	<a href="#" class="points">98100</a>
                    
                </div> 


                <?php

                	}

                ?>
Si quelqu'un comprends pourquoi se code ne fonctionne pas, je suis preneur ^.^ !

ynx
Mammouth du PHP | 586 Messages

13 janv. 2015, 15:25

Salut,

Essaye d'initialiser la session php en ajoutant l'instruction session_start(); au début de ton script.

Pense également à activer le rapport d'erreur php et à les afficher, ça devrais t'aider à comprendre où est le problème.

Bonne journée

Avatar du membre
Eléphanteau du PHP | 25 Messages

13 janv. 2015, 15:31

Merci de ta réponse rapide.

<?php session_start(); ?> est déjà mis sur ma page index. Le code source du premier poste est issu d'un <?php include('loginbox.php'); ?>

Pour ce qui est du message d'erreur, je ne vois pas trop comment faire.

Pour tout contact, mon skype est : Petibegon

ynx
Mammouth du PHP | 586 Messages

13 janv. 2015, 15:36

Pour voir les messages d'erreurs php, ajoute ces deux lignes juste avant ton include('loginbox.php') :
ini_set('display_errors', TRUE);
error_reporting(E_ALL);

Avatar du membre
Eléphanteau du PHP | 25 Messages

13 janv. 2015, 17:08

Sa ne fais rien ..

Avatar du membre
Eléphanteau du PHP | 25 Messages

13 janv. 2015, 17:44

Je viens d'essayer de changer des trucs, mais sa ne fonctionne toujours pas. Je sature :evil:
				<?php

				if (isset($_POST['submit']))

				{

					$error = FALSE;

					$recherche = $bdd->prepare('SELECT id FROM accounts WHERE account = :account, pass = :pass ');
                	$recherche->execute(array('account' => $_POST['account'], 'pass' => $_POST['pass'] ));

                	$resultat = $recherche->fetchColumn();
                                            
                		if ($resultat != 2)

                		{

                			$error = TRUE;
                			$errorMSG = 'Mauvais identifiant et/ou mot de passe.';
                			echo 'Mauvais identifiant et/ou mot de passe.';

                		}

                		else

                		{
                			$_SESSION['logged'] = 1;
                			echo "<script>window.location.replace('index.php')</script>";
                		}

            	}

                      
                ?>
Aidez-moi :priere:

ViPHP
xTG
ViPHP | 7331 Messages

13 janv. 2015, 17:51

if ($resultat != 2)
Saurais-tu expliquer ce "2" ? ;)

De plus utilises fetch() au lieu de fetchColumn() qui dans ton cas ne sert pas à grand chose.

Avatar du membre
Eléphanteau du PHP | 25 Messages

13 janv. 2015, 18:32

Je sais pas ! Je ne sais justement pas quoi mettre au niveau du if ... Pourtant, je fais que essayer plein de choses :/

Mammouth du PHP | 2278 Messages

13 janv. 2015, 18:35

Eexplicitation de xtg:
<?php
errror_reporting(E_ALL);
var_dump($_SESSION); die(); //à supprimer si le résultta est différent de NULL ou vide
if ($_SESSION['logged'] == NULL) //Si le membre n'est pas connecté on affiche le formulaire de connexion
{

?>

<?php

if (isset($_POST['submit']))
{
	$error = FALSE;
	$req = $bdd->prepare('SELECT id FROM accounts WHERE account = :account, pass = :pass ');
    $req->execute(array('account' => $_POST['account'], 'pass' => $_POST['pass'] ));
	$resultat = $req->fetch();
var_dump($resultat); die(); //je mets des die pour être sûr de voir le message  je me
    if (!$resultat)
	{
		$error = TRUE;
        $errorMSG = 'Mauvais identifiant et/ou mot de passe.';
         echo 'Mauvais identifiant et/ou mot de passe.';

    }
	else
	{
    	$_SESSION['logged'] = 1;
print "c'est bon"; die();
        echo "<script>window.location.replace('INDEX.php')</script>";
    }

}
?>
Pour fetch : cf http://php.net/manual/fr/pdostatement.fetch.php
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Avatar du membre
Eléphanteau du PHP | 25 Messages

13 janv. 2015, 19:11

Merci je vais tester sa

EDIT : J'ai le droit à un : Boolean FALSE lorsque j'essai de me connecter. Que les logins soient bon ou mauvais, toujours le même Boolean FALSE :/

Mammouth du PHP | 2278 Messages

13 janv. 2015, 19:51

Pourquoi tu mets 2 fois $_POST['account'] ?
$req->execute(array('account' => $_POST['account'], 'pass' => $_POST['pass'] ));
v ar_dump($req); // donne quoi ?
        $resultat = $req->fetch();
var_dump($resultat); die(); //je mets des die pour être sûr de voir le message  je me
Moi je mettrais:
$account = $_POST['login'] ; // 
$passe = $_POST['passe'];
$req->execute(array('account' => $account, 'pass' => $passe ));
        $resultat = $req->fetch();
var_dump($resultat); die(); //je mets des die pour être sûr de voir le message  je me
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Avatar du membre
Eléphanteau du PHP | 25 Messages

13 janv. 2015, 20:04

J'ai fini par trouver mon erreur .... une journée entière pour une erreur aussi débile !

En fait, j'ai mis SELECT id au lieu de SELECT guid .... mauvais champs dans la bdd .... x)

Mammouth du PHP | 2278 Messages

13 janv. 2015, 22:45

Si c'est résolu, marque-le... :priere: :priere: :priere:
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD