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

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Espace membre : Connexion avec email / mot de passe

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

par AB » 07 mai 2013, 04:32

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).

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

par moogli » 06 mai 2013, 15:53

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

par nico44530 » 06 mai 2013, 01:46

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

par moogli » 05 mai 2013, 17:05

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: Espace membre : Connexion avec email / mot de passe

par nico44530 » 05 mai 2013, 16:53

Merci ça fonctionne, mais pourquoi ça marche avec [0] ?

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

par moogli » 05 mai 2013, 15:47

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).

@+

Espace membre : Connexion avec email / mot de passe

par nico44530 » 05 mai 2013, 01:27

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 ;)