Inscription => ecriture dans tables

Karkas
Invité n'ayant pas de compte PHPfrance

12 nov. 2006, 18:40

CC, donc voila je rencontre a petit probleme sur lequel sa fait 1/4 d'heure je planche je m'explique, j'ai crée deux table une membres et une autre ressources,

Table membres

Code : Tout sélectionner

id pseudo mot_passe confirmation confirmation_code email cash point timestamp
Table ressources

Code : Tout sélectionner

id metal timestamp joueur
Je souhaiterais qu'a linscription, les entrées de la table ressources soit crée en concordance avec celle de la table membres cad id = id, pseudo = joueur et pr le reste une valeur defini dans un fichier de config ( bref donc la table membres se crée tres bien mais pas la table ressources) je vous mais mon code pr que vous voyez de vous meme
<?php
//Identifiants de connexion à la base de données.
require("config.inc.php");

//Connexion à la base de données.
mysql_connect($host,$username,$password);
mysql_select_db($bdd_name);

//On vérifie que la variable $_POST['inscription'] existe
if (isset($_POST['inscription']))
{
        //Si les variables contenant le pseudo, le mot de passe et l'email existent et contiennent quelque chose.
        if (isset($_POST['pseudo'], $_POST['mot_passe'], $_POST['email']) && !empty($_POST['pseudo']) && !empty($_POST['mot_passe']) && !empty($_POST['email']))
        {
                //Si le pseudo est supérieur à 3 caractères et inférieur à 35 caractères.
                if (strlen(trim($_POST['pseudo'])) > 3 && strlen(trim($_POST['pseudo'])) < 35)
                {
                        //Si le mot de passe est supérieur à 4 caractères.
                        if (strlen(trim($_POST['mot_passe'])) > 4)
                        {
                                //Mesure de sécurité.
                                $pseudo = htmlspecialchars($_POST['pseudo']);
                                $mot_passe = htmlspecialchars($_POST['mot_passe']);
                                $email = htmlspecialchars($_POST['email']);

                                //On vérifie que le pseudo n'existe pas.
                                $sql = mysql_query("SELECT COUNT(*) AS nb_pseudo FROM membres WHERE pseudo='".$pseudo."'");
                                if (mysql_result($sql, 0, 'nb_pseudo') == 0)
                                {
                                     //Hashage du mot de passe avec md5().
                                     $mot_passe = md5($mot_passe);

                                     //Génération du code de confirmation.
                                     $lettres_chiffres = 'abcdefghijklmnopqrstuvwxyz0123456789';
                                     $lettres_chiffres_melanges = str_shuffle($lettres_chiffres);
                                     $code_confirmation = substr($lettres_chiffres_melanges, 1, 10);
                               
                                     //Envoi du mail de confirmation.
                                     $message = '
                                Bonjour '.$pseudo.'<br />
                                Vous venez de vous inscrire sur "nom_du_site" et pour valider votre inscription, vous devez cliquer sur le lien suivant : <a href="http://s.free.fr/confirmation.php?code='.$code_confirmation.'&pseudo='.$pseudo.'">http://s.free.fr/confirmation.php?code='.$code_confirmation.'&pseudo='.$pseudo.'</a>
                                    ';
									
			
                               
                                    //Si le mail a été envoyé on peut enregistrer le membre
                                    if (mail($email, 'Confirmation de l\'inscription sur [Nom_du_site]', $message))
                                    {   
                                         //On éxécute la requête qui enregistre un nouveau membre.
									
                                       mysql_query("INSERT INTO membres (pseudo, mot_passe, confirmation, confirmation_code, email, cash, point, timestamp) VALUES ('".$pseudo."', '".$mot_passe."', '0', '".$code_confirmation."', '".$email."', '". $cash ."', '". $point ."', '". $timestamp ."')");	
									   $pseudo == $joueur;		

mysql_query("INSERT INTO ressources (metal, timestamp, joueur,) VALUES ('".$metal."', '".$timestamp.", '".$joueur.")");

                                         echo 'Message : votre compte a bien été créé ! Un e-mail vient de vous être envoyé contenant un lien de confirmation de votre inscription.';
                                   }
                                   else
                                   {
                                         echo 'Erreur : echec lors de l\'envoi du mail ! veuillez vous ré-inscrire';
                                   }
                               }
                               else
                                   echo 'Erreur : le pseudo existe déjà !';
                        }
                        else
                                echo 'Erreur : le mot de passe est trop court !';
                }
                else
                        echo 'Erreur : le pseudo est soit trop court, soit trop long !';
        }
        else
                echo 'Erreur : vous avez oublié d\'entrer votre pseudo ou votre mot de passe ou votre adresse email !';
}

//Déconnection de la base de données.
mysql_close();
?>  
c'est cette partie du code qui ne veu pas fonctionner
//On éxécute la requête qui enregistre un nouveau membre.
									
                                       mysql_query("INSERT INTO membres (pseudo, mot_passe, confirmation, confirmation_code, email, cash, point, timestamp) VALUES ('".$pseudo."', '".$mot_passe."', '0', '".$code_confirmation."', '".$email."', '". $cash ."', '". $point ."', '". $timestamp ."')");	
									   $pseudo == $joueur;		

mysql_query("INSERT INTO ressources (metal, timestamp, joueur,) VALUES ('".$metal."', '".$timestamp.", '".$joueur.")");
donc j'espere trouver de l'aide aupres de vous

Merci

Eléphant du PHP | 187 Messages

12 nov. 2006, 20:17

Salut,
ca marcherait mieux en retirant un = :
$pseudo == $joueur; devient $pseudo = $joueur;
Parceque pour l'instant tu verifie si les valeurs des variables pseudo et joueur sont égales alors que toi tu veux affecter à la variable pseudo la valeur de la variable joueur.
Une petite précision aussi, tu ferais mieux de laisser la clé primaire de ta deuxieme BDD sans y toucher et créer un nouveau champ du style id_joueur. Pour de plus amples informations va sur google et cherche des informations sur les base de données relationelles.