JeuWeb - Crée ton jeu par navigateur
[Résolu] Problème SQL - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [Résolu] Problème SQL (/showthread.php?tid=2354)



[Résolu] Problème SQL - Psykose - 03-02-2008

Salut à tous,
Voila j'ai un probleme j'ai créé deux tables SQL pour l'inscription de mon jeu:

- 1 table temporaire dans laquelle se trouve l'adresse Email, le pseudo et la passe du membre, ainsi qu'un nombre aléatoire pour la confirmation.

- 1 Table permanente pour les données du joueur (les informations ci-dessus + quelques autres).

Le truc c'est que ça envoie par Email un lien qui ramène vers une page qui copie les données de la table temporaire vers la table définitive puis il efface la donnée qui vient d'être inscrite de la table temporaire.

C'est là qu'est mon problème, il ne récupére pas les données de la table temporaire, et il ecrit deux fois dans la table définitive avec le mot de passe et l'adresse email manquant.
De plus le script doit envoyer un Email à la fin des opérations pour confirmer la validation du compte et cet Email n'arrive Jamais...

Voici mon code (il est pas commenté, mais c'est facilment compréhensible) :
Code :
    $recup_pseudo = $_GET['p'];
    $recup_rand = $_GET['rand'];
    
      include("mysqlrequired.php");
         $RequeteBasic = mysql_query("SELECT * FROM ds_data WHERE Pseudo='$recup_pseudo'");
                         
                while ($RequeteSQL = mysql_fetch_array($RequeteBasic) )
                    {
                    $passwd = $RequeteBasic['Password'];
                    $mail = $RequeteBasic['Email'];
                    $Sql_rand = $RequeteBasic['Rand'];
                    }
                    
            if($recup_rand == $Sql_rand){    
                $Usr_name = ucwords(strtolower($recup_pseudo));
                $Death_time = time() + mt_rand(3600000, 18000000);
                $Death_kind = mt_rand(1, 5);
                mysql_query("INSERT INTO ds_users VALUES('', '$Usr_name', '$passwd', '$mail', 'oui', '$Death_time', '$Death_kind')");
                mail($mail, "Validation Ma Mort", "Votre inscription au jeu Ma Mort à bien été validée.
                
                Voici vos informations personnelles afin de pouvoir vous connecter au jeu :
                Pseudo : $Usr_name
                Mot de Passe : $passwd
                
                En cas de problème n'hésitez pas à contacter les administrateurs par le biais du site,
                L'Equipe Ma Mort", "From: Staff_MaMort");
                
                echo("Votre Inscritpion s'est effectuée avec succès, vous pouvez dés à présent vous connecter.<br>
                Un email de confirmation avec vos identifiants vous a été envoyé à l'adresse que vous avez stipulée lors de votre inscription.<br>
                En cas de problèmeme n'hésitez pas à consulter cet Email car il est possible que votre pseudo ai pû être modifié <br>
                <strong>Bon Jeu</strong><br><br><br>");
                    
            }
            
            else{
            echo("Une erreur est survenue lors de la confirmation, en cas de problème contacter le staff.<br><br><br>");
            }
      mysql_close();

Auriez vous une idée pour m'aider ?

Merci d'avance,
Psy


RE: Probleme SQL - Aro - 03-02-2008

Deux choses :p

- Oublie pas les "or die(mysql_error());" dans tes requêtes pour les déboguer Wink

- Essaie, dans tes requêtes, de mettre tes variables comme cela: '".$variable."' j'avais à un moment un problème à cause de cela.
Exemple:
Code PHP :
<?php 
$RequeteBasic
= mysql_query("SELECT * FROM ds_data WHERE Pseudo='".$recup_pseudo."'");

En espérant que ça servira :p


RE: Probleme SQL - nemesis_elite - 03-02-2008

Coucou vite fait avant que mon pc portable s'éteigne (batterie -_-)

Code PHP :
<?php 
while ($RequeteSQL = mysql_fetch_array($RequeteBasic) )
{
$passwd = $RequeteBasic['Password'];
$mail = $RequeteBasic['Email'];
$Sql_rand = $RequeteBasic['Rand'];
}

c'est pas plutot
Code PHP :
<?php 
while ($RequeteSQL = mysql_fetch_array($RequeteBasic) )
{
$passwd = $RequeteSQL['Password'];
$mail = $RequeteSQL['Email'];
$Sql_rand = $RequeteSQL['Rand'];
}

NemeSiS_eliTe


RE: Probleme SQL - Psykose - 04-02-2008

ah oui merci ^^
l'erreur toute bête Wink

Pour la double inscription j'ai ajouté la propriété unique (bête erreur également) au champ pseudo Wink