IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Gestion d'un champ "Déjà inscrit" en POO


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Décembre 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 2
    Par défaut Gestion d'un champ "Déjà inscrit" en POO
    Bonjour à tous, je suis débutant en développement PHP/MYSQL. J'ai une problématique qui touche les formulaires développés en POO.

    Voici mon contexte : J'ai un site teaser qui débouche sur un site avec plus d'information. Sur le site teaser il y a un formulaire d'inscription qui permet d'accéder au site complet. Pour les gens qui se sont déjà inscrit et qui souhaitent revenir sur le site complet, je dois mettre un champ "déjà inscrit". J'utilise une BDD pour enregistrer mes inscriptions. J'ai malheureusement des difficultés à développer la fonctionnalité de ce champ.

    Le problème c'est que je n'arrive pas à trouver un tutoriel ou un exemple simple pour faire cela. J'ai besoin d'être orienté.
    Je souhaite juste que l'adresse mail renseigné dans le champ "déjà inscrit" se compare avec les adresses mails enregistrées dans la BDD et que si elle correspond, ça me redirige sur une autre page.

    Je suis partie d'un exercice pour modifier des données dans la BDD. J'ai déjà commencé à réduire le code pour n'utiliser que le champ mail... mais je suis bloquer par ce qu'il faut mettre dans les requêtes prépare, etc...

    pour info sur le code ci-dessous : ma variable pour l'adresse mail est "courriel" et la colonne correspondante dans PhpMyAdmin s'appelle "email".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <?php
    include 'supp.php'; // dedans il y a les infos de connection à la BDD + un gestionnaire des erreurs
    session_start();
    if(isset($_POST['connect'])){
    	if(!isset($_POST['courriel']) || $_POST['courriel']=='' ) erreur(); // on vérifie qu'il  y a un champ courriel qui est arrivé
    	$prep = $pdo->prepare('SELECT courriel FROM t_inscription WHERE email=?');
    	$prep->execute(array($_POST['courriel']));
    	$code = $prep->fetch();
    	if($_POST['courriel']==$code['courriel']) {//si le code renseigné dans la BDD est le même qui à été envoyé
    		$prep = $pdo->prepare('SELECT id_inscription FROM t_inscription WHERE email=?');
    		$prep->execute(array($_POST['courriel']));
    		$id = $prep->fetch();
    		//$_SESSION['id'] = $id[0];//on récupère l'ID qui est associé à l'adresse mail
    		header('Location: pagesortie.html');
    		exit();
    	}
    	else {
    		erreur('ça ne marche pas !');
    	}
    }
    ?>
    ...plus bas dans le HTML ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php if(!isset($_SESSION['id'])): ?>
    <form method="post">
    	Mail : <input type="text" name="courriel" /><br />
    	Code de modification : <input type="password" name="code_modif" /><br />
    	<input type="submit" name="connect" value="Se connecter" />
    </form>
    <?php endif; ?>


    Je vous remercie à l'avance pour votre aide.

  2. #2
    Membre Expert

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Par défaut
    Mmmmh... si le champ dans ta table s'appelle bien email, tu dois retourner sélectionner email et non courriel (qui n'existe pas).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT email FROM t_inscription WHERE email=?
    Au passage, c'est une bonne idée de donner le même nom à ses variables que ce qu'ils représentent en base de données pour éviter de s'emmêler les pinceaux

  3. #3
    Nouveau candidat au Club
    Inscrit en
    Décembre 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 2
    Par défaut
    Bonjour Spartacusply,

    merci pour l'astuce, j'ai déjà essayé avec "email". Mais le résultat est que : quelque soit les informations que je rentre dans le champs, je suis redirigé sur ma page. je souhaite que ça ne soit le cas que pour les emailing et qu'ils correspondent à ce qui est enregsitré dans la BDD.

    Je suis d'accord avec toi concernant le nommage des variables et champs de BDD. Mais dans mon cas, je suis repartie d'un formulaire basique que j'avais fait il y a longtemps.

    Suite au dépôt, hier, de ma problématique, j'ai fais un autre essai avec un WHILE pour que le le courriel se compare à l'ensemble des courriels enregistrés dans la BDD. mais çà ne me donne rien du tout. je n'ai pas encore assez d'expérience pour combiner les bons outils. l'idéale serait de trouver un exemple de base et concret. On dirait que personne ne fait ce genre de chose sur internet !

    Merci encore Spartacusply.

  4. #4
    Membre Expert

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Par défaut
    Juste après le premier fetch fait un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    var_dump($_POST['courriel']);
    print_r($code);
    exit;
    pour voir ce que contiennent précisément les deux variables que tu compares.

  5. #5
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Vatican

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2004
    Messages : 144
    Par défaut
    Bonjour,

    tu n'as pas besoin d'aller jusqu’à comparer le résultat de ta requête avec la variable postée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if($_POST['courriel']==$code['courriel'])
    il suffirait de vérifier que ta requête renvoie au moins une ligne.

Discussions similaires

  1. Quote et double quote
    Par aktos dans le forum Langage
    Réponses: 8
    Dernier message: 05/01/2007, 19h55
  2. UPDATE en ajoutant un 0 sur un champ de type "char"
    Par doum2 dans le forum Requêtes
    Réponses: 1
    Dernier message: 08/03/2006, 14h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo