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

PHP & Base de données Discussion :

Vérifier si un pseudo & un email existe ou pas dans la base


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    dépanneur informatique
    Inscrit en
    Juin 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : dépanneur informatique

    Informations forums :
    Inscription : Juin 2020
    Messages : 4
    Par défaut Vérifier si un pseudo & un email existe ou pas dans la base
    Bonjour à tous,

    Je dois réaliser un espace membre pour un site :

    Voici mon code :

    User.php


    <?php

    class User {

    private $_cnx;

    public function __construct(PDO $cnx) {

    $this->setCnx($cnx);
    }

    public function setCnx($dbh) {

    $this->_cnx = $dbh;
    }

    public function insertUser(Post $users) {

    $req = "INSERT INTO user (pseudo, email) VALUES(:pseudo, :email)";

    $pseudo = $users->getPseudo();
    $email = $users->getEmail();

    $stmnt = $this->_cnx->prepare($req);

    $stmnt->bindParam(':pseudo', $pseudo);
    $stmnt->bindParam(':email', $email);

    $stmnt->execute();
    }

    public function getUser($pseudo, $email) {

    $sql = "SELECT pseudo, email FROM user WHERE pseudo = :pseudo AND email = :email";

    $stmnt = $this->_cnx->prepare($req);

    $stmnt->bindParam(':pseudo', $pseudo);
    $stmnt->bindParam(':email', $email);

    $stmnt->execute();

    $count = $stmnt->rowCount();

    if($count > 0) {

    echo "Le pseudo & L'email existe dejà !";
    }
    else {

    return true;
    }
    }
    }
    home.php


    <?php

    require('class/User.php');
    require('class/Post.php');

    try {

    $db = new PDO('mysql:host=localhost;dbname=site', 'root', '');
    }

    catch(PDOException $e) {

    echo 'Mauvaise requête ' . $e->getMessage();
    }

    if(isset($_POST['submit_form'])) {

    $pseudo = $_POST['pseudo'];
    $email = $_POST['email'];

    if((empty($pseudo)) OR empty($email)) {

    $message_error = 'Tous les champs doivent être remplis !</p>';
    }
    else {

    $data_users = array(

    'pseudo' => $pseudo,
    'email' => $email
    );

    $cnx = new User($cnx);
    $data_users = new Post($data_users);
    $data_user = $manager->getUser($pseudo $email);

    if(false === $data_user) {

    return false;
    }
    else {

    $cnx->insertUser($data_users);
    }
    }
    }
    Notice: Undefined index: pseudo in C:\wamp64\www\php_expert_devoir_2\process\process_registration.php on line 18
    Notice: Undefined index: email in C:\wamp64\www\php_expert_devoir_2\process\process_registration.php on line 19
    Si quelqu'un pourrait m’éclaircir la chose. Merci

  2. #2
    Membre chevronné Avatar de ma5t3r
    Homme Profil pro
    Développeur freelance
    Inscrit en
    Mai 2015
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2015
    Messages : 320
    Par défaut
    Tu mets ton code dans une balise "QUOTE", il faut le mettre dans une balise "CODE" (#)

    Faudrait peut-être revoir à nommer les variables correctement.
    Je ne connais pas Post mais à mon avis, y a une erreur ici. Est-ce que $users est de type Post ? (Pourquoi le pluriel ?)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public function insertUser(Post $users) {
    Quant à tes messages d'erreur, ils sont clairs
    Notice: Undefined index: pseudo in C:\wamp64\www\php_expert_devoir_2\process\process_registration.php on line 18
    Notice: Undefined index: email in C:\wamp64\www\php_expert_devoir_2\process\process_registration.php on line 19
    si on extrapole :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $pseudo = $_POST['pseudo'];
    $email = $_POST['email'];
    J'imagine que dans ton formulaire, les contrôles "pseudo" et "email" ne sont pas définis.
    Le mieux serait d'avoir le code de ton form.

  3. #3
    Candidat au Club
    Homme Profil pro
    dépanneur informatique
    Inscrit en
    Juin 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : dépanneur informatique

    Informations forums :
    Inscription : Juin 2020
    Messages : 4
    Par défaut
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
     
    <?php
     
    require('traitement.php');
     
    ?>
     
    <!DOCTYPE html>
     
    <html>
     
    <head>
    	<title>Espace Membres</title>
    	<meta charset="utf-8">
    	<link rel="stylesheet" type="text/css" href="css/styles.css">
    </head>
     
    <body>
    	<div id="container">
    		<header>
    			<h1>Espace Membres</h1>
    		</header>
     
    		<form method="post" action="">
    			<table>
    				<thead>
    					<tr>
    						<th>S'inscrire</th>
    					</tr>
    				</thead>
     
    				<tbody>
    					<tr>
    						<td><label for="pseudo">Pseudo</label></td>
    						<td><input type="text" name="pseudo" id="pseudo"></td>
    					</tr>
     
    					<tr>
    						<td><label for="mail">Email</label></td>
    						<td><input type="text" name="email" id="mail"></td>
    					</tr>
    				</tbody>
     
    				<tfoot>
    					<tr>
    						<td><input type="submit" name="submit" value="Se connecter"></td>
    					</tr>
    				</tfoot>
    			</table>
     
    			<?php if(isset($message_error)) echo $message_error ?>
    		</form>
    	</div>
    </body>
     
    </html>

  4. #4
    Membre chevronné Avatar de ma5t3r
    Homme Profil pro
    Développeur freelance
    Inscrit en
    Mai 2015
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2015
    Messages : 320
    Par défaut
    Et le code de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    require('traitement.php');

  5. #5
    Candidat au Club
    Homme Profil pro
    dépanneur informatique
    Inscrit en
    Juin 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : dépanneur informatique

    Informations forums :
    Inscription : Juin 2020
    Messages : 4
    Par défaut
    execuse moi c'est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    require('home.php');

  6. #6
    Membre chevronné Avatar de ma5t3r
    Homme Profil pro
    Développeur freelance
    Inscrit en
    Mai 2015
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2015
    Messages : 320
    Par défaut
    J'imagine que "process_registration.php" est la page où se situe ton form.

    Tu testes submit_form alors que le name de ton bouton submit est submit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(isset($_POST['submit_form'])) {

Discussions similaires

  1. Vérifier l'existence des données dans la base de données
    Par MAB-ANZA dans le forum Accès aux données
    Réponses: 2
    Dernier message: 02/04/2011, 08h30
  2. [MySQL] Vérifier que l'utilisateur et l'email n'est pas prise
    Par Invité dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 28/02/2011, 16h21
  3. Réponses: 2
    Dernier message: 07/07/2010, 12h24
  4. Afficher une liste qui n'existe pas dans la base de données.
    Par Zvetch dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 25/09/2007, 13h23
  5. [SQL] Vérifier qu'il n'existe pas dans la base
    Par Nemrod13 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 11/06/2007, 17h13

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