Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/06/2011, 06h08   #1
Futur Membre du Club
 
Homme olivier lebaron
Webmaster
Inscription : octobre 2007
Messages : 125
Détails du profil
Informations personnelles :
Nom : Homme olivier lebaron
Localisation : France, Drôme (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster

Informations forums :
Inscription : octobre 2007
Messages : 125
Points : 18
Points : 18
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 :
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 :
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.
asus02 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 10h20   #2
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 174
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 174
Points : 6 460
Points : 6 460
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 :
1
2
 
switch($_POST['action'])
Mais tu risque de rencontrer d'autres erreurs du même type.
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 11h44   #3
Futur Membre du Club
 
Homme olivier lebaron
Webmaster
Inscription : octobre 2007
Messages : 125
Détails du profil
Informations personnelles :
Nom : Homme olivier lebaron
Localisation : France, Drôme (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster

Informations forums :
Inscription : octobre 2007
Messages : 125
Points : 18
Points : 18
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
asus02 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 11h52   #4
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 174
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 174
Points : 6 460
Points : 6 460
Oui, j'ai aussi la solution

Fais des correspondances avec ce que je t'ai écrit, c'est le même problème !!!!
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 11h59   #5
Membre confirmé
 
Avatar de Retrokiller069
 
Homme Bertrand
Étudiant
Inscription : octobre 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Bertrand
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2010
Messages : 216
Points : 268
Points : 268
Citation:
Envoyé par asus02 Voir le message
Code :
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 :
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 :
1
2
 
if(isset($_POST ['pseudo_membre']) && $_POST ['pseudo_membre']==""){...}
__________________
Ce n'est pas ce que nous voulons faire qui est impossible mais ce sont les moyens à sa mise en oeuvre qui peuvent le paraître

Ps: N'oubliez pas SVP
Retrokiller069 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 12h10   #6
Futur Membre du Club
 
Homme olivier lebaron
Webmaster
Inscription : octobre 2007
Messages : 125
Détails du profil
Informations personnelles :
Nom : Homme olivier lebaron
Localisation : France, Drôme (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster

Informations forums :
Inscription : octobre 2007
Messages : 125
Points : 18
Points : 18
j'ai fait comme ca mais il ne voit toujours pas que j'ai rentré le pseudo ...

Code :
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
asus02 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 12h38   #7
Membre confirmé
 
Avatar de Retrokiller069
 
Homme Bertrand
Étudiant
Inscription : octobre 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Bertrand
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2010
Messages : 216
Points : 268
Points : 268
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 ^^
__________________
Ce n'est pas ce que nous voulons faire qui est impossible mais ce sont les moyens à sa mise en oeuvre qui peuvent le paraître

Ps: N'oubliez pas SVP
Retrokiller069 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 13h13   #8
Futur Membre du Club
 
Homme olivier lebaron
Webmaster
Inscription : octobre 2007
Messages : 125
Détails du profil
Informations personnelles :
Nom : Homme olivier lebaron
Localisation : France, Drôme (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster

Informations forums :
Inscription : octobre 2007
Messages : 125
Points : 18
Points : 18
ce qui devrais donner ca :

Code :
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
asus02 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 14h03   #9
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 174
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 174
Points : 6 460
Points : 6 460
Il y a longtemps peut-être, mais un peu de cohérence svp.

Code :
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.
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 15h36   #10
Futur Membre du Club
 
Homme olivier lebaron
Webmaster
Inscription : octobre 2007
Messages : 125
Détails du profil
Informations personnelles :
Nom : Homme olivier lebaron
Localisation : France, Drôme (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster

Informations forums :
Inscription : octobre 2007
Messages : 125
Points : 18
Points : 18
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 :
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;
}
?>
asus02 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 15h40   #11
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 174
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 174
Points : 6 460
Points : 6 460
Autant pour moi, il faut aussi enlever le '$' dans la clé

Code :
1
2
 
if ($_POST['$pseudo_membre']=="")
devient

Code :
1
2
 
if ($_POST['pseudo_membre']=="")
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 16h25   #12
Futur Membre du Club
 
Homme olivier lebaron
Webmaster
Inscription : octobre 2007
Messages : 125
Détails du profil
Informations personnelles :
Nom : Homme olivier lebaron
Localisation : France, Drôme (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster

Informations forums :
Inscription : octobre 2007
Messages : 125
Points : 18
Points : 18
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 :
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;
}
?>


asus02 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 16h39   #13
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 174
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 174
Points : 6 460
Points : 6 460
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.................
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 17h32   #14
Nouveau Membre du Club
 
Inscription : octobre 2007
Messages : 34
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 34
Points : 31
Points : 31
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 :
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 :
$requete=mysql_db_query($sql_bdd,"select * from membre where pseudo=\"$pseudo_membre\"",$db_link) or die(mysql_error());
par
Code :
$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 :
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 :
$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 :
$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 :
// TEST SUR LES VALEURS SAISIES
Code :
1
2
3
4
5
 
$aValInput = array();
foreach ($_POST as $sKey => $sVal){
	$aValInput[$sKey] = mysql_real_escape_string($sVal);
}
et tu remplaces :
par
Code :
$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.
cycyand1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h07.


 
 
 
 
Partenaires

Hébergement Web