Probleme d'inscription

jojo403 Messages postés 5 Date d'inscription vendredi 15 mars 2002 Statut Membre Dernière intervention 22 juillet 2006 - 10 avril 2006 à 19:29
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 - 10 avril 2006 à 23:42
Bonsoir, voici mon script :

<?php
// serveur
$sql_serveur="localhost";

// login
$sql_user="root";

// pass
$sql_passwd="";

// bdd
$sql_bdd="enjoy";

// Et on se connecte :)
$db_link = @mysql_connect($sql_serveur,$sql_user,$sql_passwd);
if(!$db_link) {echo "Connexion impossible "; exit;}

//Récupération des variables

$prenom=$_POST['prenom'];
$pseudo=$_POST['pseudo'];
$pass=$_POST['pass'];
$age=$_POST['age'];
$adresse_msn=$_POST['adresse_msn'];
$pross=$_POST['pross'];
$ram=$_POST['ram'];
$carte_graphique=$_POST['carte_graphique'];
$souris=$_POST['souris'];
$carte_son=$_POST['carte_son'];
$tapis_souris=$_POST['tapis_souris'];

//Test sur les variables
if($pseudo==""){echo "Vous devez choisir un pseudo

Retour";exit;}
if($pass==""){echo "Vous devez choisir un mot de passe

Retour";exit;}

// On vérifie si le pseudo existe ou pas$requete mysql_query ('SELECT pseudo FROM user WHERE pseudo "'.$pseudo.'"');
if (mysql_num_rows ($requete) !== 0)
{
echo "Ce pseudo existe déjà, veuillez en choisir un autre

Retour";
}
else
{
// Création d'un identifiant
$taille = 20;
$lettres = "abcdefghijklmnopqrstuvwxyz0123456789";
srand(time());
for ($i=0;$i<$taille;$i++)
{
$id=substr($lettres,(rand()%(strlen($lettres))),1);
}

// Recherche de l'id maximum de la table
$requete=mysql_db_query($sql_bdd,"select max(id_membre) from user",$db_link) or die(mysql_error());
$idmax=mysql_result($requete,0,"max(id_membre)");

// Enregistrement dans la table user
$idnew=$idmax+1;
$requete=mysql_db_query($sql_bdd,"insert into user values ($idnew,"$pseudo","$pass")",$db_link) or die( mysql_error());

echo "Merci, vous êtes bien enregistré. Cliquez ici pour entrer dans votre espace privé.";
}

mysql_close(); // Déconnexion de MySQL
?>

et j'ai une erreur de ce type : Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-8\www\cs\test.php on line 39

Ce pseudo existe déjà, veuillez en choisir un autre

J'ai beau esseyer, je ne trouve vraiment aucune solution. Ma table s'appelle bien user et ma db est bien enjoy. Help me please

jordan

7 réponses

coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
10 avril 2006 à 19:44
Salut!
Tu peux regarder ma réponse ici: http://www.phpcs.com/infomsg/WARNING-MYSQL-4_711571.aspx

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
0
jojo403 Messages postés 5 Date d'inscription vendredi 15 mars 2002 Statut Membre Dernière intervention 22 juillet 2006
10 avril 2006 à 20:23
Malheuresement cela ne résoud pas mon problème car à mon gout la requete est bonne. Dans ma base de donnée enjoy j'ai bien une table user dans laquel se trouve bien la catégorie pseudo. Mais cela ne marche toujours pas

Help Me Pleaze

jordan
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
10 avril 2006 à 20:34
Salut,

si il te dit que c'est une requête invalide, c'est qu'elle est fausse.

Fait un echo de ta requête pour voir ce que ça donne :-)

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
jojo403 Messages postés 5 Date d'inscription vendredi 15 mars 2002 Statut Membre Dernière intervention 22 juillet 2006
10 avril 2006 à 21:18
Le problème c'est que je n'ai pas la moindre idée de quoi faire arrivé a ce stade la pour trouver le problème. Et quand tu me dit de faire un echo sur ma requete je ne vois pas trop se que tu veux dire. Dsl j'étudie le php depuis peu de temps, je n'ai pas encore toutes les bases. Et c'est ce qui me fait dire que la requete est bonne, mais comme elle ne l'est surement pas. Je n'ai vraiment PAS LA MOINDRE idée de ce qu'il faut que je fasse.

Merci d'avance.

jordan
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
10 avril 2006 à 21:56
Au fait je viens de voir ton code, prends plutôt un code d'espace membre récent, j'en ai fait un tout simple si tu veux dans mes sources ("espace membre très simple avec mysql") parce que là c'est très mal codé, on pourra partir sur de bonnes bases.

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
jojo403 Messages postés 5 Date d'inscription vendredi 15 mars 2002 Statut Membre Dernière intervention 22 juillet 2006
10 avril 2006 à 22:00
Ok merci beaucoup.
Voici ma nouvelle source :

<?php
mysql_connect("localhost", "root", ""); // Connexion à MySQL
mysql_select_db("enjoy"); // Sélection de la base mateo21

//Récupération des variables
$prenom=$_POST['prenom'];
$pseudo=$_POST['pseudo'];
$pass=$_POST['pass'];
$age=$_POST['age'];
$adresse_msn=$_POST['adresse_msn'];
$pross=$_POST['pross'];
$ram=$_POST['ram'];
$carte_graphique=$_POST['carte_graphique'];
$souris=$_POST['souris'];
$carte_son=$_POST['carte_son'];
$tapis_souris=$_POST['tapis_souris'];

//Test sur les variables
if($pseudo==""){echo "Vous devez choisir un pseudo

Retour";exit;}
if($pass==""){echo "Vous devez choisir un mot de passe

Retour";exit;}

// On vérifie si le pseudo existe ou pas
$sql = "SELECT * FROM user WHERE pseudo='$pseudo'";
$result = mysql_query($sql);
if (mysql_numrows($result) == 0)

{
// Création d'un identifiant
$taille = 20;
$lettres = "abcdefghijklmnopqrstuvwxyz0123456789";
srand(time());
for ($i=0;$i<$taille;$i++)
{
$id=substr($lettres,(rand()%(strlen($lettres))),1);
}

// Recherche de l'id maximum de la table
$requete=mysql_query("select max(id_membre) from user") or die(mysql_error());
$idmax=mysql_result($requete,0,"max(id_membre)");

// Enregistrement dans la table user
$idnew=$idmax+1;
$requete=mysql_query("insert into user values ($idnew,"$pseudo","$pass")") or die( mysql_error());

echo "Merci, vous êtes bien enregistré. Cliquez ici pour entrer dans votre espace privé.";
}

else

{
echo "Ce pseudo existe déjà, veuillez en choisir un autre

Retour";

}

mysql_close(); // Déconnexion de MySQL
?>

Elle est plus "sur de bonnes base" non ?
Enfin maintenant ça parait mieu marcher mais j'ai toujours une erreur bien qu'elle soit différente.
En effet voici mon erreur : Column count doesn't match value count at row 1
Ais-je encore fais une erreur ?

jordan
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
10 avril 2006 à 23:42
Nan c'est encore affreux, mets plutôt un champ autoincrement, ça t'évitera de faire une requête pour trouver l'id max

ensuite pour ton erreur :
Column count doesnt match value at row 1

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
Rejoignez-nous