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 :

Création d'un espace membre PHP, PDO [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 149
    Points : 87
    Points
    87
    Par défaut Création d'un espace membre PHP, PDO
    Bonjour à tous,
    Je suis actuellement entrain de concevoir un espace membre en PHP avec les fonctionnalités PDO.
    Pour cela j'ai été suivre des tutoriaux pour m'aider à réaliser cette espace membre. Je pense ne pas avoir fait d'erreur et pourtant...

    Voici ma page inscription.php :

    Code php : 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
     
    <?php
     session_start();
    if (empty($_SESSION['membre_id'])) //les membres connecte ne peuvent pas s'inscrire
    {
    ?>
     <div id="cadreformins">
     <p class="texte3">Formulaire d'inscription</p>
    <form id="monform" name="form1" method="post" action="inscriptionvalide.php" enctype="multipart/form-data">
    <p class="classinscr"><label>Nom d'utilisateur :
    <input type="text" name="membre_pseudo" />
    </label>
    </p>
    <p class="classinscr">
    <label>Mot de passe :
    <input type="password" name="membre_mdp" />
    </label>
    </p>
    <p class="classinscr">
    <label>Votre e-mail :
    <input type="email" name="membre_mail" />
    </label>
    </p>
    <p class="classinscr">
    <label>
    <input type="submit" name"submit" value="envoyer" />
    </label>
    </p>
    </form>
    <?php
    }
    else
    {
    echo "Vous êtes déjà inscrit, et connecté";
    }
    ?>

    et voici ma page inscriptionvalide.php :

    Code php : 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
    58
    59
     
     <?php
    session_start();
     
        if (empty($_SESSION['membre_id'])) //les membres connecte ne peuvent pas s'inscrire
        {
        /* il faut que toutes les variables du formulaires existent*/
        if(isset($_POST['membre_pseudo']) && isset($_POST['membre_mdp']) && isset($_POST['membre_mail']))
        {
        /*il faut que tous les champs soient renseignes*/
        if($_POST['membre_pseudo']!="" && $_POST['membre_mdp']!="" && $_POST['membre_mail']!="")
        {
        /*connexion a la BDD*/
        require_once("connexioninscription.inc.php");
     
        /* on teste l'adresse email, si c'est bon, on continue, sinon, on affiche un message d'erreur*/
        if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}.[a-z]{2,4}$#", $_POST['membre_mail']))
        {
        /*on verifie si un membre ne possede pas deja le meme pseudo*/
        $req = $bdd->prepare('SELECT membre_id FROM membres WHERE membre_pseudo = :membre_pseudo');
        $req->execute(array('membre_pseudo'=> $_POST['membre_pseudo']));
        $nb_resultats_recherche_membre=$req->fetch();
     
        if(!$nb_resultats_recherche_membre) /*si il n'y a pas de resultat*/
        {
        /*on crypte le mot de passe*/
        $membre_mdp = sha1($_POST['membre_mdp']);
     
        /*Si le pseudo est libre et l'email valide, alors on enregistre le nouveau membre*/
        $req=$bdd->prepare('INSERT INTO membres(membre_pseudo,membre_mdp,membre_mail,membre_inscription) VALUES(:membre_pseudo, :membre_mdp, :membre_mail, CURDATE())');
        $req->execute(array('membre_pseudo'=>$_POST['membre_pseudo'], 'membre_mdp'=>$membre_mdp, 'membre_mail'=>$_POST['membre_mail']));
     
        echo "Merci de votre inscription";
        }
        else
        {
        echo "Un membre possede deja ce pseudo";
        }   
        }
        else
        {
        echo "Votre adresse email n'est pas valide";
        }
        }
        else
        {
        echo "Il faut remplir tous les champs";
        }
        }
        else
        {
        echo "Une erreur s'est produite";
        }
        }
        else
        {
        echo "Vous êtes déjà inscrit, et connecté";
        }
        ?>

    Les erreurs affichés sont les suivantes :

    Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/croba286/public_html/inscription.php:13) in /home/croba286/public_html/inscription.php on line 18

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/croba286/public_html/inscription.php:13) in /home/croba286/public_html/inscription.php on line 18
    Je ne vois pas comment remédier à ce problème, un peu d'aide ne serais pas de refus .
    Merci pour votre attention et de votre aide.
    Sincèrement.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    ton session_start a la ligne 18 ne fonctionne pas car tu as quelque chose envoyé dés la ligne 13.

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 149
    Points : 87
    Points
    87
    Par défaut
    Bonjour sabotage,

    La ligne 13, situé sur mon code correspond à ma connexion à ma base de donnée, or tout semble correct, je ne vois aucune erreur :/.

    voici ma connexion :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?php
    try
    {
    	$dns = 'mysql:host=localhost;dbname=dbname';
      $utilisateur = 'dbusers';
      $motDePasse = 'dbmdp';
      $bdd = new PDO( $dns, $utilisateur, $motDePasse, array (PDO::MYSQL_ATTR_INIT_COMMAND=>'SET NAMES utf8',PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION));
    }
    catch (Exception $e)
    {
            die('Erreur : ' . $e->getMessage());
    }
    ?>

    et mon appel à ma connexion semble correct également :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    require_once("connexioninscription.inc.php");

    Je ne vois toujours pas l'erreur :/.
    Merci pour votre attention et votre aide.
    Sincèrement.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Qu'est ce qu'il a precisement entre la ligne 1 et la ligne 13 ?

    Si tes fichiers, y compris ceux inclus, sont en UTF8, vérifie qu'ils soient sans BOM.

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 149
    Points : 87
    Points
    87
    Par défaut
    re sabotage, tout d'abord merci pour ton soutien ,

    J'ai revérifié, aucune de mes pages n'inclut une signature BOM.

    Voici le code correspondant entre ma ligne 1 et 13 :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    /*1*/ <?php
    session_start();
     
        if (empty($_SESSION['membre_id'])) //les membres connecte ne peuvent pas s'inscrire
        {
        /* il faut que toutes les variables du formulaires existent*/
        if(isset($_POST['membre_pseudo']) && isset($_POST['membre_mdp']) && isset($_POST['membre_mail']))
        {
        /*il faut que tous les champs soient renseignes*/
        if($_POST['membre_pseudo']!="" && $_POST['membre_mdp']!="" && $_POST['membre_mail']!="")
        {
        /*connexion a la BDD*/
      /*13*/  require_once("connexioninscription.inc.php");

    Merci pour ton aide.
    Sincèrement.

  6. #6
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 149
    Points : 87
    Points
    87
    Par défaut
    Re,

    J'ai trouvé la solution, il fallait ajouter session_start(); en tout début de code avant même le <DOCTYPE HTML>

    mais maintenant une autre erreur survient lorsque j'essaye de compléter les informations d'insription via mon navigateur.

    les erreurs sont les suivantes :

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/croba286/public_html/inscriptionvalide.php:1) in /home/croba286/public_html/inscriptionvalide.php on line 2
    Erreur : SQLSTATE[28000] [1045] Access denied for user 'croba286_membres'@'localhost' (using password: YES)
    Fatal error: Call to a member function prepare() on a non-object in /home/croba286/public_html/inscriptionvalide.php on line 19
    Merci pour ta patience et de ton aide.
    Sincèrement.

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Même chose pour inscriptionvalide.php, il y a quelque chose au debut du fichier : un caractère blanc, un espace, un retour à la ligne, un BOM ... quelque chose avant le <?php

  8. #8
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 149
    Points : 87
    Points
    87
    Par défaut
    Re,
    Concernant l'erreur Fatal error: Call to a member function prepare() on a non-object in /home/croba286/public_html/inscriptionvalide.php on line 19, c'est corriger ^^ erreur dans le mot de passe.

    Concernant les session_start(); j'ai vérifier qu'il figure en tout débus de code sur la ligne 1, mais, l'erreur : Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/croba286/public_html/inscriptionvalide.php:1) in /home/croba286/public_html/inscriptionvalide.php on line 1

    perciste :/.

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Réencode ton fichier.

  10. #10
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 149
    Points : 87
    Points
    87
    Par défaut
    Re,
    J'ai trouvé l'erreur ( qui peut être invisible de temps en temps ^^' )
    Il se trouve que j'avais un espace au tout début de mon code avant la déclaration "<?php" ce qui causait le problème ^^.

    Merci pour le temps et l'aide que tu m'aura consacré sabotage .
    Sincèrement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. espace membre php
    Par roro84 dans le forum Langage
    Réponses: 1
    Dernier message: 12/03/2012, 21h26
  2. [Blog] Création avec espace membre
    Par danydan01 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 13/05/2011, 11h25
  3. [MySQL] création d'un espace membre
    Par zup17 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 21/02/2011, 14h20
  4. Création d'un espace membre
    Par zoneech dans le forum Langage
    Réponses: 16
    Dernier message: 24/12/2008, 20h07
  5. Réponses: 8
    Dernier message: 26/03/2006, 15h09

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