Page 1 sur 1

Espace membre : Connexion avec email / mot de passe

Posté : 05 mai 2013, 01:27
par nico44530
Bonjour,

J'aimerais que la connexion à mon espace membre se fasse avec l'email et non plus avec le pseudo.
J'ai essayé le script ci-dessous, et un var_dump sur $_SESSION donne null pour l'id et le pseudo.
<?php
require('../include/config.inc.php');

if (!empty($_POST['email']) && !empty($_POST['pass'])) :

	$email = $_POST['email'];
	$pass = sha1($_POST['pass']);
	
    $req = $connect->prepare('SELECT * FROM wa_communaute WHERE email = :email AND pass = :pass');
    $req->execute(array('email' => $email,'pass' => $pass));
    $result = $req->fetchAll();
    if(count($result) == 1) :
		session_start();
		$_SESSION['id'] = $result['id'];
		$_SESSION['pseudo'] = $result['pseudo'];
		header('Location: ../home');
    else:
        echo '<div class="error-login">Vos identifiants sont incorrects !</div>';
    endif;
else:
    echo '<div class="error-login">Veuillez remplir tous les champs !</div>';
endif;
?>
Merci d'avance ;)

Re: Espace membre : Connexion avec email / mot de passe

Posté : 05 mai 2013, 15:47
par moogli
Salut

fetchAll retourne un tableau de tableau donc la c'est $result[0]['id'] par exemple


Je te conseil d'afficher les erreurs c'est indispensable lorsque l'on développe (toutes les erreurs: E_ALL).

@+

Re: Espace membre : Connexion avec email / mot de passe

Posté : 05 mai 2013, 16:53
par nico44530
Merci ça fonctionne, mais pourquoi ça marche avec [0] ?

Re: [RESOLU] Espace membre : Connexion avec email / mot de p

Posté : 05 mai 2013, 17:05
par moogli
parce que fetchAll retourne un tableau qui contient des tableaux.


dans ton cas tu aurais simplement utilisé fetch tu conservais ton code ;)

regarde la des deux méthodes sur php.net


@+

Re: [RESOLU] Espace membre : Connexion avec email / mot de p

Posté : 06 mai 2013, 01:46
par nico44530
Si j'utilise fetch, mes identifiants sont incorrects alors que si j'utilise fetchAll, mes identifiants sont bons, et je me connecte ^^

Re: [RESOLU] Espace membre : Connexion avec email / mot de p

Posté : 06 mai 2013, 15:53
par moogli
Revoi l'utilisation du fetch il ne joue pas sur la requête les données sont les mêmes.
La seule différence c'est que fetch retourne une seule ligne de résultat par appel alors que fetchAll retourne le tout dans un tableau.

http://www.php.net/manual/fr/pdostatement.fetch.php

@+

Re: [RESOLU] Espace membre : Connexion avec email / mot de p

Posté : 07 mai 2013, 04:32
par AB
Cela dit si tu utilise $result = fetch(), la ligne suivante if(count($result) == 1) n'a plus de sens...
J'ai détaillé cet exemple dans ce topic (formulaire de connexion).