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 :

probleme ecriture sql


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Octobre 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Octobre 2007
    Messages : 130
    Par défaut probleme ecriture sql
    bonjour, j'ai un script pour un espace membre, je m'en servais sur un autre site et tout fonctionnais très bien, je suis en train de le réinstaller sur un autre site et j'ai un souci d'écriture sur la bdd, j'ai bien créer ma table, mon fichier config est correct cependant il ne veut pas écrire sur la table lors de l'enregistrement d'un nouveau membre, j'ai donc écrit manuellement un membre sur la table mais quand je rentre les identifiants il ne les reconnais pas, je n'ai pas de message d'erreur.

    table sql :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    CREATE TABLE membre (
       id_membre int(10),
       id varchar(20),
       pseudo varchar(20),
       passe varchar(20),
       email varchar(100),
       ville varchar(200)
    );
    formulaire d'inscription :

    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    <?
     
    require("conf.php");
     
    switch($action) {
    /*-----------------------------------------------------------------*/
    /*	AJOUT DANS MySQL			*/
    /*-----------------------------------------------------------------*/
     
    case "add";
     
    // CONNEXION A LA BASE DE DONNEE
    $db_link = @mysql_connect($sql_serveur,$sql_user,$sql_passwd,$sql_bdd);
    if(!$db_link) {echo "Connexion impossible à la base de données <b>$sql_bdd</b> sur le serveur <b>$sql_server</b><br>Vérifiez les paramètres du fichier conf.php"; exit;}
     
    // TEST SUR LES VALEURS SAISIES
    if($pseudo_membre==""){echo "Vous devez choisir un pseudo<br><br><a href=\"javascript:window.history.back()\">Retour</a>";exit;}
    if($passe_membre==""){echo "Vous devez choisir un mot de passe<br><br><a href=\"javascript:window.history.back()\">Retour</a>";exit;}
    // CHAMPS SUPLEMENTAIRES, inspirez-vous des lignes suivantes. Pour qu'un champs soit facultatif, omettez la ligne.
    if($email==""){echo "Vous n'avez pas saisi votre email<br><br><a href=\"javascript:window.history.back()\">Retour</a>";exit;}
    if($ville==""){echo "Vous n'avez pas saisi la ville<br><br><a href=\"javascript:window.history.back()\">Retour</a>";exit;}
     
    // ON VERIFIE SI CE PSEUDO EXISTE DEJA
    $requete=mysql_db_query($sql_bdd,"select * from membre where pseudo=\"$pseudo_membre\"",$db_link) or die(mysql_error());
    $num=mysql_num_rows($requete);
    if($num!=0)
    	{
    	echo "Ce pseudo existe déjà, veuillez en choisir un autre<br><br><a href=\"javascript:window.history.back()\">Retour</a>";
    	}
    else
    	{
    	// CREATION D'UN IDENTIFIANT ALEATOIRE
    	$taille = 20;
    	$lettres = "abcdefghijklmnopqrstuvwxyz0123456789";
    	srand(time());
    	for ($i=0;$i<$taille;$i++)
    		{
    		$id.=substr($lettres,(rand()%(strlen($lettres))),1);
    		}
     
    	// ON RECHERCHE L'ID MAXIMUM DE LA TABLE
    	$requete=mysql_db_query($sql_bdd,"select max(id_membre) from membre",$db_link) or die(mysql_error());
    	$idmax=mysql_result($requete,0,"max(id_membre)");
     
    	// INSERTION DANS LA TABLE 
    	$idnew=$idmax+1;
    	$requete=mysql_db_query($sql_bdd,"INSERT INTO `membre` VALUES ('','".$id."','".$pseudo_membre."','".$passe_membre."','".$email."','".$ville."');",$db_link) or die(mysql_error());
    	// CHAMPS SUPLEMENTAIRES, complétez la requête précédente en ajoutant les variables et en respectant l'ordre des colonnes de la table. Exemple :
    	 //insert into membre values ($idnew,\"$id\",\"$pseudo_membre\",\"$passe_membre\",\"$email\",\"$ville\")
     
    	// REDIRECTION VERS LA PAGE D'ENTREE DE L'ESPACE MEMBRE
    	echo "Merci, vous êtes bien enregistré. Cliquez <a href=\"$zone_membre?id=$id\">ici</a> pour entrer dans votre espace privé.";
    	}
     
    // DECONNEXION MYSQL
    mysql_close($db_link);
     
    break;
     
     
    /*-----------------------------------------------------------------*/
    /*	AFFICHAGE DU FORMULAIRE			*/
    /*-----------------------------------------------------------------*/
     
    default;
    echo "	<h2>Nouveau membre</h2>
    	<form action=\"adduser.php\" method=\"post\">
    	<input type=\"hidden\" name=\"action\" value=\"add\">
    	Chosissez un pseudo<br><input type=\"text\" name=\"pseudo_membre\"><br>
    	Chosissez un mot de passe<br><input type=\"password\" name=\"passe_membre\"><br>
    	<! -- CHAMPS SUPLEMENTAIRES, décommentez les 2 lignes suivantes -->
    	Votre email<br><input type=\"text\" name=\"email\"><br>
    	Ville<br><input type=\"text\" name=\"ville\"><br> 
    	<input type=\"submit\" value=\"Envoyer\">
    	</form>
    	<font face=\"Verdana\" size=\"2\"><a href=\"index.htm\">Se connecter</a></font>";
    break;
    }
    ?>
    merci de votre aide car la je ne voit plus trop.

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    A vue de nez, je dirais que tu viens de changer de version de PHP et surtout que la directive register_global est à Off (comme cela doit-être).

    Donc il va falloir refactoriser ton code pour le rendre compatible avec les nouvelles versions de PHP (plus rapide,plus sécurisé....plus mieux quoi ).

    Dans ton cas, ton erreur se situe dans le case, tu ne peux plus récupérer une valeur directement dans une variable:

    ceci est obsolète :

    cela devient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    switch($_POST['action'])
    Mais tu risque de rencontrer d'autres erreurs du même type.

  3. #3
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Octobre 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Octobre 2007
    Messages : 130
    Par défaut
    effectivement c'est un vieux code qui tournais en php3, j'ai donc modifié le switch, ça a l'air de démarrer sauf qu au moment ou je remplis le formulaire il m'indique "veuillez choisir un pseudo", aurais-tu un idée ?
    merci de ton aide

  4. #4
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Oui, j'ai aussi la solution

    Fais des correspondances avec ce que je t'ai écrit, c'est le même problème !!!!

  5. #5
    Membre expérimenté Avatar de Retrokiller069
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 217
    Par défaut
    Citation Envoyé par asus02 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?
     
    if($pseudo_membre==""){echo "Vous devez choisir un pseudo<br><br><a href=\"javascript:window.history.back()\">Retour</a>";exit;}
    if($passe_membre==""){echo "Vous devez choisir un mot de passe<br><br><a href=\"javascript:window.history.back()\">Retour</a>";exit;}
    // CHAMPS SUPLEMENTAIRES, inspirez-vous des lignes suivantes. Pour qu'un champs soit facultatif, omettez la ligne.
    if($email==""){echo "Vous n'avez pas saisi votre email<br><br><a href=\"javascript:window.history.back()\">Retour</a>";exit;}
    if($ville==""){echo "Vous n'avez pas saisi la ville<br><br><a href=\"javascript:window.history.back()\">Retour</a>";exit;}
     
    ?>
    Bonjour,

    je pense que tu devrais changé la première ligne "<?" par ceci "<?php" à l'avenir car je sais que dans certain cas cela ne fonctionnera pas.
    Pour ton problème cela pourrait venir sur le fait que tu ne testes pas si il existe, "$pseudo_membre", tu regardes directement s'il est vide.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(isset($pseudo_membre) && $pseudo_membre==""){...}
    je ne suis pas sur que cela vienne de là mais ne voyant pas où tu l'initialises...

    En espérant t'avoir aidé


    Citation Envoyé par MaitrePylos Voir le message
    Oui, j'ai aussi la solution

    Fais des correspondances avec ce que je t'ai écrit, c'est le même problème !!!!
    Du coup cela devrait plutôt être:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(isset($_POST ['pseudo_membre']) && $_POST ['pseudo_membre']==""){...}

  6. #6
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Octobre 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Octobre 2007
    Messages : 130
    Par défaut
    j'ai fait comme ca mais il ne voit toujours pas que j'ai rentré le pseudo ...

    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    <html>
    <head>
    <title> Espace membre</title>
    </head>
    <body>
    <font face="Verdana" size="2">
    <center>
    <?php
     
    require("conf.php");
     
    switch($_POST['action']) {
    /*-----------------------------------------------------------------*/
    /*	AJOUT DANS MySQL			*/
    /*-----------------------------------------------------------------*/
     
    case "add";
     
    // CONNEXION A LA BASE DE DONNEE
    // CONNEXION A LA BASE DE DONNEE
    $db_link = @mysql_connect($sql_serveur,$sql_user,$sql_passwd);
    if(!$db_link) {echo "Connexion impossible à la base de données <b>$sql_bdd</b> sur le serveur <b>$sql_server</b><br>Vérifiez les paramètres du fichier conf.php"; exit;}
    if (isset($_POST['action'])){
    $action = $_POST['action'];
    } else  {
    $action = "";
    }
    // Rendre la base de données p796_5, la base courante
    $db_selected = mysql_select_db('p796_5', $db_link);
     
    // TEST SUR LES VALEURS SAISIES
    if($pseudo_membre==""){echo "Vous devez choisir un pseudo<br><br><a href=\"javascript:window.history.back()\">Retour</a>";exit;}
    if($passe_membre==""){echo "Vous devez choisir un mot de passe<br><br><a href=\"javascript:window.history.back()\">Retour</a>";exit;}
    // CHAMPS SUPLEMENTAIRES, inspirez-vous des lignes suivantes. Pour qu'un champs soit facultatif, omettez la ligne.
    if($email==""){echo "Vous n'avez pas saisi votre email<br><br><a href=\"javascript:window.history.back()\">Retour</a>";exit;}
    if($ville==""){echo "Vous n'avez pas saisi la ville<br><br><a href=\"javascript:window.history.back()\">Retour</a>";exit;}
     
    // ON VERIFIE SI CE PSEUDO EXISTE DEJA
    $requete=mysql_db_query($sql_bdd,"select * from membre where pseudo=\"$pseudo_membre\"",$db_link) or die(mysql_error());
    $num=mysql_num_rows($requete);
    if($num!=0)
    	{
    	echo "Ce pseudo existe déjà, veuillez en choisir un autre<br><br><a href=\"javascript:window.history.back()\">Retour</a>";
    	}
    else
    	{
    	// CREATION D'UN IDENTIFIANT ALEATOIRE
    	$taille = 20;
    	$lettres = "abcdefghijklmnopqrstuvwxyz0123456789";
    	srand(time());
    	for ($i=0;$i<$taille;$i++)
    		{
    		$id.=substr($lettres,(rand()%(strlen($lettres))),1);
    		}
     
    	// ON RECHERCHE L'ID MAXIMUM DE LA TABLE
    	$requete=mysql_db_query($sql_bdd,"select max(id_membre) from membre",$db_link) or die(mysql_error());
    	$idmax=mysql_result($requete,0,"max(id_membre)");
     
    	// INSERTION DANS LA TABLE 
    	$idnew=$idmax+1;
    	$requete=mysql_db_query($sql_bdd,"insert into membre values ($idnew,\"$id\",\"$pseudo_membre\",\"$passe_membre\",\"$email\",\"$ville\");",$db_link) or die(mysql_error());
    	// CHAMPS SUPLEMENTAIRES, complétez la requête précédente en ajoutant les variables et en respectant l'ordre des colonnes de la table. Exemple :
    	 //insert into membre values ($idnew,\"$id\",\"$pseudo_membre\",\"$passe_membre\",\"$email\",\"$ville\")
     
    	// REDIRECTION VERS LA PAGE D'ENTREE DE L'ESPACE MEMBRE
    	echo "Merci, vous êtes bien enregistré. Cliquez <a href=\"$zone_membre?id=$id\">ici</a> pour entrer dans votre espace privé.";
    	}
     
     
    mysql_close($db_link);
    $old = umask( 0 );
    mkdir('mb/'.$idnew,0711);
    chmod('mb/'.$idnew, 0711);
    umask($old);
     
     
    break;
     
     
    /*-----------------------------------------------------------------*/
    /*	AFFICHAGE DU FORMULAIRE			*/
    /*-----------------------------------------------------------------*/
     
    default;
    echo "	<h2>Nouveau membre</h2>
    	<form action=\"adduser.php\" method=\"post\">
    	<input type=\"hidden\" name=\"action\" value=\"add\">
    	Chosissez un pseudo<br><input type=\"text\" name=\"pseudo_membre\"><br>
    	Chosissez un mot de passe<br><input type=\"password\" name=\"passe_membre\"><br>
    	<! -- CHAMPS SUPLEMENTAIRES, décommentez les 2 lignes suivantes -->
    	Votre email<br><input type=\"text\" name=\"email\"><br>
    	Ville<br><input type=\"text\" name=\"ville\"><br> 
    	<input type=\"submit\" value=\"Envoyer\">
    	</form>
    	<font face=\"Verdana\" size=\"2\"><a href=\"index.htm\">Se connecter</a></font>";
    break;
    }
    ?>
    </center>
    </font>
    </body>
    </html>
    merci, j'en est pas dormis de la nuit, mais il est vrais que j'utilisais ce code il y a 5/6 ans et maintenant on est en php5, de plus je ne suis pas fort en php, je sais que je doit t'embeter mais si j'abuse encore de ton temps.
    merci

  7. #7
    Membre expérimenté Avatar de Retrokiller069
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 217
    Par défaut
    Citation Envoyé par asus02 Voir le message
    j'ai fait comme ca mais il ne voit toujours pas que j'ai rentré le pseudo ...
    pas de souci, tu as fait ca pour $action mais tu dois le faire pour touts tes inputs.

    En regardant ton code tu as encore $pseudo_membre, tu devrais avoir $_POST['pseudo_membre'] de préférence avec le isset avant ^^

  8. #8
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Octobre 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Octobre 2007
    Messages : 130
    Par défaut
    ce qui devrais donner ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // TEST SUR LES VALEURS SAISIES
    if (isset($_POST['$pseudo_membre==""']){echo "Vous devez choisir un pseudo<br><br><a href=\"javascript:window.history.back()\">Retour</a>";exit;}
    if (isset($_POST['$passe_membre==""']){echo "Vous devez choisir un mot de passe<br><br><a href=\"javascript:window.history.back()\">Retour</a>";exit;}
    // CHAMPS SUPLEMENTAIRES, inspirez-vous des lignes suivantes. Pour qu'un champs soit facultatif, omettez la ligne.
    if (isset($_POST['$email==""']){echo "Vous n'avez pas saisi votre email<br><br><a href=\"javascript:window.history.back()\">Retour</a>";exit;}
    if (isset($_POST['$ville==""']){echo "Vous n'avez pas saisi la ville<br><br><a href=\"javascript:window.history.back()\">Retour</a>";exit;}
    il m'indique une erreur :

    Parse error: syntax error, unexpected '{' in /home/www/nx/adduser.php on line 32

  9. #9
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Il y a longtemps peut-être, mais un peu de cohérence svp.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if ($_POST['pseudo_membre']=="")
    Tu ne peux pas tout faire en un seul coup, il faut être logique.

    Dans un premier temps vérifie seulement que les inputs son vide comme l'exemple que je te donne.

  10. #10
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Octobre 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Octobre 2007
    Messages : 130
    Par défaut
    j'ai modifier les lignes, cependant ca ne fonctionne toujour pas, la premiere entrée fonctionne a moitié c'est a dire quelle ecrit l'id + id_membre, pas le pseudo ni le mdp.
    ensuite il ne veut plus il me dit "vous devez choisir un pseudo" ...

    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    <?php
     
    require("conf.php");
     
    switch($_POST['action']) {
    /*-----------------------------------------------------------------*/
    /*	AJOUT DANS MySQL			*/
    /*-----------------------------------------------------------------*/
     
    case "add";
     
     
    // CONNEXION A LA BASE DE DONNEE
    $db_link= mysql_connect($sql_serveur,$sql_user,$sql_passwd);
    if (!$db_link) {
       die('Impossible de se connecter : ' . mysql_error());
    }
    // Rendre la base de données p796_5, la base courante
    $db_selected = mysql_select_db('p796_5', $db_link);
    if (!$db_selected) {
       die ('Impossible de sélectionner la base de données : ' . mysql_error());
    }
     
     
     
    if (isset($_POST['action'])){
    $action = $_POST['action'];
    } else  {
    $action = "";
    }
     
     
    // TEST SUR LES VALEURS SAISIES
    if ($_POST['$pseudo_membre']==""){echo "Vous devez choisir un pseudo<br><br><a href=\"javascript:window.history.back()\">Retour</a>";exit;}
    if ($_POST['$passe_membre']==""){echo "Vous devez choisir un mot de passe<br><br><a href=\"javascript:window.history.back()\">Retour</a>";exit;}
    // CHAMPS SUPLEMENTAIRES, inspirez-vous des lignes suivantes. Pour qu'un champs soit facultatif, omettez la ligne.
    if ($_POST['$email']==""){echo "Vous n'avez pas saisi votre email<br><br><a href=\"javascript:window.history.back()\">Retour</a>";exit;}
    if ($_POST['$ville']==""){echo "Vous n'avez pas saisi la ville<br><br><a href=\"javascript:window.history.back()\">Retour</a>";exit;}
     
    // ON VERIFIE SI CE PSEUDO EXISTE DEJA
    $requete=mysql_db_query($sql_bdd,"select * from membre where pseudo=\"$pseudo_membre\"",$db_link) or die(mysql_error());
    $num=mysql_num_rows($requete);
    if($num!=0)
    	{
    	echo "Ce pseudo existe déjà, veuillez en choisir un autre<br><br><a href=\"javascript:window.history.back()\">Retour</a>";
    	}
    else
    	{
    	// CREATION D'UN IDENTIFIANT ALEATOIRE
    	$taille = 20;
    	$lettres = "abcdefghijklmnopqrstuvwxyz0123456789";
    	srand(time());
    	for ($i=0;$i<$taille;$i++)
    		{
    		$id.=substr($lettres,(rand()%(strlen($lettres))),1);
    		}
     
    	// ON RECHERCHE L'ID MAXIMUM DE LA TABLE
    	$requete=mysql_db_query($sql_bdd,"select max(id_membre) from membre",$db_link) or die(mysql_error());
    	$idmax=mysql_result($requete,0,"max(id_membre)");
     
    	// INSERTION DANS LA TABLE 
    	$idnew=$idmax+1;
        $requete=mysql_db_query($sql_bdd,"insert into membre values ($idnew,\"$id\",\"$pseudo_membre\",\"".md5($passe_membre)."\",\"$email\",\"$ville\")",$db_link) or die(mysql_error());
    	// CHAMPS SUPLEMENTAIRES, complétez la requête précédente en ajoutant les variables et en respectant l'ordre des colonnes de la table. Exemple :
    	 //insert into membre values ($idnew,\"$id\",\"$pseudo_membre\",\"$passe_membre\",\"$email\",\"$ville\")
     
    	// REDIRECTION VERS LA PAGE D'ENTREE DE L'ESPACE MEMBRE
    	echo "Merci, vous êtes bien enregistré. Cliquez <a href=\"$zone_membre?id=$id\">ici</a> pour entrer dans votre espace privé.";
    	}
     
     
    mysql_close($db_link);
     
    break;
     
    /*-----------------------------------------------------------------*/
    /*	AFFICHAGE DU FORMULAIRE			*/
    /*-----------------------------------------------------------------*/
     
    default;
    echo "	<h2>Nouveau membre</h2>
    	<form action=\"adduser.php\" method=\"post\">
    	<input type=\"hidden\" name=\"action\" value=\"add\">
    	Chosissez un pseudo<br><input type=\"text\" name=\"pseudo_membre\"><br>
    	Chosissez un mot de passe<br><input type=\"password\" name=\"passe_membre\"><br>
    	<! -- CHAMPS SUPLEMENTAIRES, décommentez les 2 lignes suivantes -->
    	Votre email<br><input type=\"text\" name=\"email\"><br>
    	Ville<br><input type=\"text\" name=\"ville\"><br> 
    	<input type=\"submit\" value=\"Envoyer\">
    	</form>
    	<font face=\"Verdana\" size=\"2\"><a href=\"index.htm\">Se connecter</a></font>";
    break;
    }
    ?>

  11. #11
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Autant pour moi, il faut aussi enlever le '$' dans la clé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if ($_POST['$pseudo_membre']=="")
    devient

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if ($_POST['pseudo_membre']=="")

  12. #12
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Octobre 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Octobre 2007
    Messages : 130
    Par défaut
    arf j'allais sauter de jois quand j'ai vu qu'il avais accepté la création mais en regardant dans la bdd il n'y a que l'id le passe crypté et id_membre, pas de nom ni adresse mail, et si je veut recrer un membre avec un autre pseudo il me met "Ce pseudo existe déjà, veuillez en choisir un autre".
    et je ne peu pas me connecter a l'espace membre ...

    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    <?php
     
    require("conf.php");
     
    switch($_POST['action']) {
    /*-----------------------------------------------------------------*/
    /*	AJOUT DANS MySQL			*/
    /*-----------------------------------------------------------------*/
     
    case "add";
     
     
    // CONNEXION A LA BASE DE DONNEE
    $db_link= mysql_connect($sql_serveur,$sql_user,$sql_passwd);
    if (!$db_link) {
       die('Impossible de se connecter : ' . mysql_error());
    }
    // Rendre la base de données p796_5, la base courante
    $db_selected = mysql_select_db('p796_5', $db_link);
    if (!$db_selected) {
       die ('Impossible de sélectionner la base de données : ' . mysql_error());
    }
     
     
     
    if (isset($_POST['action'])){
    $action = $_POST['action'];
    } else  {
    $action = "";
    }
     
     
    // TEST SUR LES VALEURS SAISIES
    if ($_POST['pseudo_membre']==""){echo "Vous devez choisir un pseudo<br><br><a href=\"javascript:window.history.back()\">Retour</a>";exit;}
    if ($_POST['passe_membre']==""){echo "Vous devez choisir un mot de passe<br><br><a href=\"javascript:window.history.back()\">Retour</a>";exit;}
    // CHAMPS SUPLEMENTAIRES, inspirez-vous des lignes suivantes. Pour qu'un champs soit facultatif, omettez la ligne.
    if ($_POST['email']==""){echo "Vous n'avez pas saisi votre email<br><br><a href=\"javascript:window.history.back()\">Retour</a>";exit;}
    if ($_POST['ville']==""){echo "Vous n'avez pas saisi la ville<br><br><a href=\"javascript:window.history.back()\">Retour</a>";exit;}
     
    // ON VERIFIE SI CE PSEUDO EXISTE DEJA
    $requete=mysql_db_query($sql_bdd,"select * from membre where pseudo=\"$pseudo_membre\"",$db_link) or die(mysql_error());
    $num=mysql_num_rows($requete);
    if($num!=0)
    	{
    	echo "Ce pseudo existe déjà, veuillez en choisir un autre<br><br><a href=\"javascript:window.history.back()\">Retour</a>";
    	}
    else
    	{
    	// CREATION D'UN IDENTIFIANT ALEATOIRE
    	$taille = 20;
    	$lettres = "abcdefghijklmnopqrstuvwxyz0123456789";
    	srand(time());
    	for ($i=0;$i<$taille;$i++)
    		{
    		$id.=substr($lettres,(rand()%(strlen($lettres))),1);
    		}
     
    	// ON RECHERCHE L'ID MAXIMUM DE LA TABLE
    	$requete=mysql_db_query($sql_bdd,"select max(id_membre) from membre",$db_link) or die(mysql_error());
    	$idmax=mysql_result($requete,0,"max(id_membre)");
     
    	// INSERTION DANS LA TABLE 
    	$idnew=$idmax+1;
        $requete=mysql_db_query($sql_bdd,"insert into membre values ($idnew,\"$id\",\"$pseudo_membre\",\"".md5($passe_membre)."\",\"$email\",\"$ville\")",$db_link) or die(mysql_error());
    	// CHAMPS SUPLEMENTAIRES, complétez la requête précédente en ajoutant les variables et en respectant l'ordre des colonnes de la table. Exemple :
    	 //insert into membre values ($idnew,\"$id\",\"$pseudo_membre\",\"$passe_membre\",\"$email\",\"$ville\")
     
    	// REDIRECTION VERS LA PAGE D'ENTREE DE L'ESPACE MEMBRE
    	echo "Merci, vous êtes bien enregistré. Cliquez <a href=\"$zone_membre?id=$id\">ici</a> pour entrer dans votre espace privé.";
    	}
     
     
    mysql_close($db_link);
     
    break;
     
    /*-----------------------------------------------------------------*/
    /*	AFFICHAGE DU FORMULAIRE			*/
    /*-----------------------------------------------------------------*/
     
    default;
    echo "	<h2>Nouveau membre</h2>
    	<form action=\"adduser.php\" method=\"post\">
    	<input type=\"hidden\" name=\"action\" value=\"add\">
    	Chosissez un pseudo<br><input type=\"text\" name=\"pseudo_membre\"><br>
    	Chosissez un mot de passe<br><input type=\"password\" name=\"passe_membre\"><br>
    	<! -- CHAMPS SUPLEMENTAIRES, décommentez les 2 lignes suivantes -->
    	Votre email<br><input type=\"text\" name=\"email\"><br>
    	Ville<br><input type=\"text\" name=\"ville\"><br> 
    	<input type=\"submit\" value=\"Envoyer\">
    	</form>
    	<font face=\"Verdana\" size=\"2\"><a href=\"index.htm\">Se connecter</a></font>";
    break;
    }
    ?>



  13. #13
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Je veux bien aider, mais même si tu connais pas bien le PHP, le minimum serait de parcourir ton code et voir si rien ne te saute au yeux.

    Bon alors, concrètement tu dit que il n'y a pas de user, donc dans la db, il y a des choses et d'autre n'y sont pas, faut donc allez voir comment on insère dans la db.....et je suis sûr que cela va te paraître logique.................

  14. #14
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 35
    Par défaut
    Bonjour asus02,

    J'ai parcours ton code et voila ce que je te propose en essayant de ne pas boulverser trop ton code

    Coté Mysql :
    Exécute moi ce script dans phpmyadmin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    DROP TABLE  membre;
    CREATE TABLE membre (
       id_membre int(10) AUTO_INCREMENT,
       id varchar(20),
       pseudo varchar(20),
       passe varchar(20),
       email varchar(100),
       ville varchar(200)
    );
    Coté php :
    mysql_db_query va être dépréciée donc ne l'utilise plus Bien qu'il soit plus judicieux d'utiliser PDO.

    Remplace cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete=mysql_db_query($sql_bdd,"select * from membre where pseudo=\"$pseudo_membre\"",$db_link) or die(mysql_error());
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete=mysql_query('select * from membre where pseudo=\''.$pseudo_membre.'\'') or die(mysql_error());
    Ne sert plus à rien avec l'auto incrément mysql :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // ON RECHERCHE L'ID MAXIMUM DE LA TABLE
    	$requete=mysql_db_query($sql_bdd,"select max(id_membre) from membre",$db_link) or die(mysql_error());
    	$idmax=mysql_result($requete,0,"max(id_membre)");
     
    	// INSERTION DANS LA TABLE 
    	$idnew=$idmax+1;
    remplace ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete=mysql_db_query($sql_bdd,"insert into membre values ($idnew,\"$id\",\"$pseudo_membre\",\"".md5($passe_membre)."\",\"$email\",\"$ville\")",$db_link) or die(mysql_error());
    par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete=mysql_query('insert into membre values ('.$id.',\''.pseudo_membre.'\',\''.md5($passe_membre).'\',\''.$email.'\',\''.$ville.'\')') or die(mysql_error());
    Dernière chose, je ne vois pas où tu initialises les variables que tu mets dans ta requête d'où les blancs dans la base.

    pour régler cela et tu le places après ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    // TEST SUR LES VALEURS SAISIES
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $aValInput = array();
    foreach ($_POST as $sKey => $sVal){
    	$aValInput[$sKey] = mysql_real_escape_string($sVal);
    }
    et tu remplaces :
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $aValInput['pseudo_membre']
    et tu fais de même pour les autres.

    En espérant t'aider, si tu as besoin d'explication je le ferais plus tard.
    Cdlt.

Discussions similaires

  1. Probleme liaison en ecriture SQL-ACCESS
    Par gueguenk dans le forum Développement
    Réponses: 0
    Dernier message: 09/03/2009, 16h50
  2. Probleme ecriture dans la base de registre
    Par Deton@tor dans le forum C++Builder
    Réponses: 8
    Dernier message: 30/04/2008, 15h03
  3. problemes exercices sql
    Par siciliano_messinese dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/09/2005, 16h52
  4. [JDBC]Probleme curseur SQL
    Par Welldone dans le forum JDBC
    Réponses: 13
    Dernier message: 11/07/2005, 16h57
  5. probleme requete sql
    Par Shosho dans le forum Langage SQL
    Réponses: 12
    Dernier message: 03/05/2005, 09h25

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