CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Probléme espace membre :les inscriptions

Staracademy
Staracademy
Niveau 6
28 avril 2004 à 17:18:21

Bonjour à tous

Je solicite votre aide pour me dépatouiller de cette galére . En effet j´ai installer un espace membre sur mon site , tous c´est bien passer , j´ai laissez la page d´inscription original du script pour inscrire un 1er membre et cela a fonctionner. Je ne sais aps comemnt j´ai fais mais pour inscrire un 2en membe , j´obtiens l´erreur suivante :

Column count doesn´t match value count at row 1

Voici le script d´inscription :

< ?
require("conf.php3");

switch($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) {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.php3"; 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=%22javascript:window.history.back()/%22>Retou
r</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=%22javascript:window.history.back()/%22>Retou
r</a>";exit;}
/ /if($ville==""){echo " Vous n´avez pas saisi la ville<br><br>
< a
href=%22javascript:window.history.back()/%22>Retou
r</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=%22javascript:window.history.back()/%22>Retou
r</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
\")",$db_link) or die(mysql_error());

// REDIRECTION VERS LA PAGE D´ENTREE DE L´ESPACE MEMBRE
echo " Merci, vous êtes bien enregistré. Cliquez
< a href=%22$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=%22adduser.php3/%22 method=\"post\">
<input type=\"hidden\" name=\"action\" value=\"add\" size="20">
Chosissez un pseudo<br>
< input type=\"text\" name=\"pseudo_membre\" size="20"><br>
Chosissez un mot de passe<br>
< input type=\"password\" name=\"passe_membre\" size="20"><br>
<input type=\"submit\" value=\"Envoyer\" size="20">
</form>
<font face=\"Verdana\" size=\"2\"><a href=%22index.php/%22>Se connecter</a></font>";
break;
}
? >

Je tiens a précisez que le fichier conf.php3 conteint tous el nécessaire a la connection à la base de donnée .

Voila merci d´avance

Staracademy
Staracademy
Niveau 6
28 avril 2004 à 19:47:02

j´ai remis la page d´inscription initial et j´ai toujour le meme probléme

Staracademy
Staracademy
Niveau 6
29 avril 2004 à 18:22:55

:up:

Immortel_Tueur
Immortel_Tueur
Niveau 10
30 avril 2004 à 07:41:34

regarde si il n´y a pas un probleme dans ta table

freedix
freedix
Niveau 10
30 avril 2004 à 10:59:43

T´as oublié de sélectionner ta base de donnée :)

Staracademy
Staracademy
Niveau 6
30 avril 2004 à 11:14:29

Immortel_tueur => Qu´appelle tu un probléme dans la table

freedix => La bas ed edonné est selectionner :
/ / CONNEXION A LA BASE DE DONNEE
$db_link =

@mysql_connect($sql_serveur,$sql_user,$sql_passwd)

freedix
freedix
Niveau 10
30 avril 2004 à 11:23:12

Non la fonction mysql_connect sert à ouvrir une connection à un serveur MySQL.
Par contre, il faut ensuite que tu sélectionnes une base de donnée, avec la fonction mysql_select_db.
Regardes la doc PHP pour plus d´infos sur ces deux fonctions :)

Staracademy
Staracademy
Niveau 6
30 avril 2004 à 11:34:13

en faite il selectionne la base de donnée à cette endroit :

$requete=mysql_db_query($sql_bdd,"insert into membre values

($idnew,\"$id\",\"$pseudo_membre\",\"$passe_membre

\")",$db_link) or die(mysql_error());

Sinon peut tu me dire ou placé la sélection de la base de donnée stp

freedix
freedix
Niveau 10
30 avril 2004 à 11:39:24

:question:
Tu peux placer la fonction mysql_query entre ta connexion à ta base de donnée et ta première requête SQL.

freedix
freedix
Niveau 10
30 avril 2004 à 11:39:55

C´est pas la fonction mysql_query mais mysql_select_db.

Staracademy
Staracademy
Niveau 6
30 avril 2004 à 12:18:02

En faite la selction d ela base de donné ce fais juste aprés qu´il ets vérifier si els champs étais vide ou pas . Donc la sélection est bien présente au bonne endroit ou alors peut tu me placer le mysql_select_db. au bonne endroit

freedix
freedix
Niveau 10
30 avril 2004 à 13:27:36

C´est lors de l´insertion dans la base de donnée que tu as cette erreur ?
Si oui, essaies de remplacer ta requête par celle-ci :

$requete = mysql_db_query($sql_bdd, "
INSERT INTO membre(idnew, id, pseudo_membre, passe_membre) VALUES(´$idnew´, ´$id´, ´$pseudo_membre´, ´$passe_membre´)") or die(mysql_error());

:)

Staracademy
Staracademy
Niveau 6
30 avril 2004 à 14:20:29

j´ai fais ce que tu m´a dit cependant j´obtiens une erreur avec l´affichage du formulaire ::

L´erreur:

Parse error: parse error in
/var/www/free.fr/d/7/adslman205/monkey-land/adduse
r.php3 on line 72

La partie du script :

echo " <h2>Nouveau membre</h2>
<form action=%22adduser.php3/%22 method=\"post\">
<input type=\"hidden\" name=\"action\" value=\"add\" size="20"> < == Line 72
Chosissez un pseudo<br>
< input type=\"text\" name=\"pseudo_membre\" size="20"><br>
Chosissez un mot de passe<br>
< input type=\"password\" name=\"passe_membre\" size="20"><br>
<input type=\"submit\" value=\"Envoyer\" size="20">
</form>
<font face=\"Verdana\" size=\"2\"><a href=%22index.htm/%22>Se connecter</a></font>";
break;

freedix
freedix
Niveau 10
30 avril 2004 à 14:55:30

< input type=\"hidden\" name=\"action\" value=\"add\" size="20">

Mets deux \ devant les guillemets qui entourent le nombre 20. PHP crois que tu fermes la fonction echo, et donc après ça n´a plus de sens et il t´affiche une erreur :)

Staracademy
Staracademy
Niveau 6
30 avril 2004 à 15:06:28

Exacte maintenant ca s´affiche bien ( jai du enlever les %22 sinon il me trouver pas le script )

Maintenant quand je veux ajouter un membe il me marque ca :
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ´´, ´, ´, ´)´ at line 1
Pourtant j´ai free ces du php4 donc php3 pase decu je pense

freedix
freedix
Niveau 10
30 avril 2004 à 15:21:01

Je vois pas vraiment d´erreur de syntaxe dans la requête :(

Sinon, dans la doc PHP, c´est écrit :
" Note : Cette fonction est obsolète, et abandonnée depuis PHP 4.0.6. Ne l´utilisez plus ( ou pas!). Alternative recommandée : mysql_select_db() et mysql_query(). "

:)

Staracademy
Staracademy
Niveau 6
30 avril 2004 à 15:26:10

Donc je doit remplacer quoi exactement stp ?

freedix
freedix
Niveau 10
30 avril 2004 à 15:30:25

Après la connexion à ta base de donnée ( mysql_connect ) , tu rajoutes :
mysql_select_db($sql_bdd, $db_link);

Et tu remplaces ta requete utilisant la fonction mysql_db_query par :
mysql_query($sql_bdd, "
INSERT INTO membre(idnew, id, pseudo_membre, passe_membre) VALUES(´$idnew´, ´$id´, ´$pseudo_membre´, ´$passe_membre´)") or die(mysql_error());

Et puis tu n´avais pas besoin d´assigner ta requête à une variable :)

Je sais pas si ça va marcher, mais essaies quand même :-d

Staracademy
Staracademy
Niveau 6
30 avril 2004 à 18:23:38

j´ai fais ce que tu m´a dit ce qui donne ce script :
< ?
require("conf.php3");

switch($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) {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.php3"; exit;}
mysql_select_db($sql_bdd, $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=%22javascript:window.history.back()/%22>Retou
r</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 gorille existe déjà, veuillez en choisir un autre<br><br>
< a
href=%22javascript:window.history.back()/%22>Retou
r</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_query($sql_bdd,"select max(id_membre) from membre",$db_link) or die(mysql_error()); ==>Ligne 48

$idmax=mysql_result($requete,0,"max(id_membre)");

// INSERTION DANS LA TABLE
$idnew=$idmax+1;
mysql_query($sql_bdd, " INSERT INTO membre(id_membre, id, pseudo_membre, passe_membre) VALUES(´$idnew´, ´$id´, ´$pseudo_membre´, ´$passe_membre´)") or die(mysql_error());
// REDIRECTION VERS LA PAGE D´ENTREE DE L´ESPACE MEMBRE
echo " Merci, vous êtes bien enregistré. Cliquez
< a href=%22$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.php3 method=\"post\">
<input type=\"hidden\" name=\"action\" value=\"add\" size=\"20\">
Chosissez un pseudo<br>
< input type=\"text\" name=\"pseudo_membre\" size=\"20\"><br>
Chosissez un mot de passe<br>
< input type=\"password\" name=\"passe_membre\" size=\"20\"><br>
<input type=\"submit\" value=\"Envoyer\" size=\"20\">
</form>
<font face=\"Verdana\" size=\"2\"><a href=%22index.htm/%22>Se connecter</a></font>";
break;
}
? >
Mais ca me met cette erreur :

Warning: Wrong parameter count for mysql_query() in
/var/www/free.fr/d/7/adslman205/monkey-land/adduse
r.php3 on line 48

Voila , encore merci

freedix
freedix
Niveau 10
30 avril 2004 à 18:48:10

$requete=mysql_query($sql_bdd,"select max(id_membre) from membre",$db_link) or die(mysql_error());

Enlèvre $sql_dbb et $db_link, ce qui donne :
$requete = mysql_query("SELECT MAX(id_membre) FROM membre") or die(mysql_error());

Quand tu as un problème avec une fonction, regardes la doc php ( php.net), tu verras les paramètres nécessaires à fournir à chaque fonction etc...
:)

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment