Erreur sur script pour espace membre

cs_matheo54 Messages postés 65 Date d'inscription lundi 20 décembre 2004 Statut Membre Dernière intervention 28 novembre 2007 - 8 janv. 2006 à 15:36
cs_Arnauti Messages postés 392 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 26 septembre 2009 - 13 janv. 2006 à 18:20
Bonjour,

Je cherche a réaliser un Espace Membre pour mon site internet , je m'y connais pas trop en php du coup j'ai cherché un script sur internet et quand je le test j'ai une erreur telle que :

Notice: Undefined variable: send in d:\weblocal\sites\sitematheosphere\forminscription.php on line 7

Je vous met le script en question ci dessous. C'est pour l'inscription d'un membre, ils remplissent un formulaire et ca envoi les champs saisis sur cette page php

j'espére que vous pourrez me venir en aide, Merci.

Mathieu

<?php
// On include le fichier config.php ( pour accéder a la bd )
include("config.php");


// On vérifie si tout les champs du formulaire on bien été rempli !
if($send =="ADD") ( La ligne 7 est celle ci !! )
{
if(empty($Pseudo) or (empty($Passe)))
{
// Si un champ est vide, on envoi un message d'erreur
echo('Un champ est vide');
}
else // Sinon on passe
{
// Maintenant, on vas vérifier si un membre a déjà ce pseudo
$requete = mysql_query("select pseudo from membres where Pseudo="$Pseudo"");


// Nombre d'enregistrements
$nb = mysql_numrows($requete);

// si il y a plus de 0 enregistrement avec le meme pseudo, on affiche un message d'erreur
if($nb>0)
{
echo("Désolé ce pseudo est déja utilisé par un autre membre");
}
else // sinon on passe
{
// maintenant on vas inserer les informations dans la table "membres"
mysql_query("insert into membres values("","$Pseudo","$Passe","$Nom","$Prenom")");


// Puis, on affiche le message de confirmation
echo("Inscription ok");
}
}
}
// On ferme la connection à la base de donnée
mysql_close();
?>

---------------------------------------------------------------------------------------------
ONG Cambodgienne: http://komaregree.free.fr

32 réponses

cs_Arnauti Messages postés 392 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 26 septembre 2009
8 janv. 2006 à 15:59
Salut, sans doute que tu n'a jamais utilisé ta variable send, elle représente quoi ?
A++
<hr size="2" width="100%">Si un des membres à poster une reponse qui convient, accepter là !
0
cs_matheo54 Messages postés 65 Date d'inscription lundi 20 décembre 2004 Statut Membre Dernière intervention 28 novembre 2007
8 janv. 2006 à 16:47
je te remercie arnauti pour ta reponse

Bah en fait oui c vrai que je m'en sert nul part mais je pensais que c'etait une fonction predefinie...

Du coup j'ai supprimé la ligne ( sans oublier les {} )

Mais ce qui se passe maintenant , alors que je remplis bien tout les champs par des valeurs de test, quand je valide le formulaire j'ai le message d'erreur : " un champ est vide"

Je remet le code au cas ou :

<!-- DEBUT DU SCRIPT mail.php3-->
<?php
// On include le fichier config.php
include("config.php");


// On vérifie si tout les champs du formulaire on bien été rempli !
//if($send =="ADD")
//{
if(empty($Pseudo) or (empty($Passe)))
{
// Si un champ est vide, on envoi un message d'erreur
echo('Un champ est vide');
}
else // Sinon on passe
{
// Maintenant, on va vérifier si un membre a déjà ce pseudo
$requete = mysql_query("select pseudo from membres where Pseudo="$Pseudo"");


// Nombre d'enregistrements
$nb = mysql_numrows($requete);

// si il y a plus de 0 enregistrement avec le meme pseudo, on affiche un message d'erreur
if($nb>0)
{
echo("Désolé ce pseudo est déja utilisé par un autre membre");
}
else // sinon on passe
{
// maintenant on vas inserer les informations dans la table "membres"
mysql_query("insert into membres values("","$Pseudo","$Passe","$Nom","$Prenom")");


// Puis, on affiche le message de confirmation
echo("Inscription ok");
}
}
//}
// On ferme la connection à la base de donnée
mysql_close();
?>
0
sidf Messages postés 1216 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 18 octobre 2012 5
8 janv. 2006 à 16:57
apparemment tu utilises register_globals 'on'

si off

tu dois recuperer les variables par $_POST (tout le monde le conseille)



si register globals on, tu as peut être un problème dans

if(empty($Pseudo) or (empty($Passe)))

essaie

if(!$Pseudo || !$Passe)
0
cs_matheo54 Messages postés 65 Date d'inscription lundi 20 décembre 2004 Statut Membre Dernière intervention 28 novembre 2007
8 janv. 2006 à 17:38
En effet je passe bien mes variables par la methode post. J'ai donc essayé avec if(!$Pseudo || !$Passe)
mais ca m'a mis cette erreur :

Notice: Undefined variable: Pseudo in d:\weblocal\sites\sitematheosphere\forminscription.php on line 16

J'ai regardé dans mon formulaire c'est bien le nom que je lui ai donné pourtant.
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
8 janv. 2006 à 18:18
Salut,

Undefined Variable

Ensuite sinon si tu veux un espace membres t'as celui-ci : [http://www.codes-php.net/source-10--zone-membres--espace-membre-avec-mysql--tres-simple.php Espace membres [PHP]]

a +
<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
sidf Messages postés 1216 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 18 octobre 2012 5
8 janv. 2006 à 18:20
voyonsla page de code html !! Pseudo avec P, sûr ??
0
cs_matheo54 Messages postés 65 Date d'inscription lundi 20 décembre 2004 Statut Membre Dernière intervention 28 novembre 2007
8 janv. 2006 à 19:52
Ok j'avais pas mis $_POST[] avant les variable !!

Bon maintenant ca me marque plus d'erreur, MErci a Vous Mais par contre ca ne m'ecrit rien dans ma Base de Données !! crotte de bique roulé dans la farine ! j'y croyais moi !!

au vu du script y'a quelque chose qui saute au yeux ou c'est a voir autre part?

Merci bien de votre attention en tout cas

Mathieu
0
cs_Arnauti Messages postés 392 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 26 septembre 2009
9 janv. 2006 à 17:42
Sans doute que ta requete est mal effectuée.
A++
<hr size="2" width="100%">Si un des membres à poster une reponse qui convient, accepter là !
0
cs_matheo54 Messages postés 65 Date d'inscription lundi 20 décembre 2004 Statut Membre Dernière intervention 28 novembre 2007
10 janv. 2006 à 08:53
Ma requete pour insérer les enregistrement dans la base est la suivante :

$requette=mysql_query("insert into membre values(Id,'$Pseudo','$Passe');");

Je fait un echo juste aprés pour vérifier mais aucune valeur ne s'inscrit,echo "Les valeurs : $requette On bien été ajoutés a la Bd ";

Alors que juste avant j'ai vérifié les variables "P$seudo" et "$Passe" et elles etaient bien remplit.

Est ce que ca pourrait provenir du ID que j'ai mis en auto implementation? je vais peut être tester sans, au cas ou...

Si vous avez d'autre idées... :)

Merci
0
cs_matheo54 Messages postés 65 Date d'inscription lundi 20 décembre 2004 Statut Membre Dernière intervention 28 novembre 2007
10 janv. 2006 à 11:17
Bon alors j'ai enlevé l'auto implementation mais va ne change pas grand chose ; je vous met le script complet avec mes requetes, je comprend vraiment pas pourquoi ca n'enregistre pas.

...
// on calcul l'id la plus haute et on rajoute 1
$requete2=mysql_query("SELECT max( 'Id' )FROM `membre`");

$i=1;
$Id=$i+$requete2;


// maintenant on vas inserer les informations dans la table "membre"

$requete3=mysql_query("insert into membre values('$Id','$Pseudo','$Passe','$Nom','$Prenom','$Age','$Adresse','$Adresse2','$Cp','$Ville','$Pays','$Adresse_mail');");

echo "Les valeurs : $requete3 On bien été ajoutés a la Bd ";

}
}


// On ferme la connection à la base de donnée
mysql_close();
?>
0
cs_Arnauti Messages postés 392 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 26 septembre 2009
10 janv. 2006 à 22:00
Salut, ba moi pour inserrer je ferais :

$requete3=mysql_query("INSERT INTO membre ('champ1', 'champ2')
values('$Id','$Pseudo','$Passe','$Nom','$Prenom','$Age','$Adresse','$Adresse2','$Cp','$Ville','$Pays','$Adresse_mail');");


Tu vois ce que je veux dire. Sinon, met, MYSQL ne te sors aucune erreur ?
A++
<hr size="2" width="100%">Si un des membres à poster une reponse qui convient, accepter là !
0
cs_matheo54 Messages postés 65 Date d'inscription lundi 20 décembre 2004 Statut Membre Dernière intervention 28 novembre 2007
10 janv. 2006 à 22:35
Pouaaa... bah ecoute j'ai fait comme tu disais ca fonctionne en local... mais pas sur le web !! Snif !! j'en peux plus elle m'en auras fait voir de tte les couleurs cette Bd !

C'est fou ca, et non ca me met aucune erreur, juste l'echo qui me dit que l'inscription c'est bien passé.. .reuhm reuhm enfin "aurait du bien ce passer !!
0
cs_Arnauti Messages postés 392 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 26 septembre 2009
10 janv. 2006 à 22:41
Salut, fait ca pour voir si il n'y a pas une erreur :

$sql = 'Ta requete' ; // On crée la requete
$exe = mysql_query($sql) or die('Erreur Mysql. '.mysql_error()) ;

Voilà, décompose la et peux être que la il te sortiras une erreur.
A++
<hr size="2" width="100%">Si un des membres à poster une reponse qui convient, accepter là !
0
cs_matheo54 Messages postés 65 Date d'inscription lundi 20 décembre 2004 Statut Membre Dernière intervention 28 novembre 2007
11 janv. 2006 à 09:01
Merci,

J'ai en effet des erreurs,

En local alors que ca enregistre tout de même dans la Bd il me met l'erreur :

Erreur Mysql. Erreur de syntaxe près de '1' à la ligne 1

Et sur le web il n'enregistre dans la Bd et me met l'erreur :

Erreur Mysql. Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

pour la 1ere erreur je vois pas bien ou je pourrais avoir une erreur de syntaxe puisque la 1ere ligne c'est l'entete :
<!-- DEBUT DU SCRIPT mail.php3--> ( ==> 1ere Ligne)
<?php
// On include le fichier config.php
include("config.php");

Pour la seconde erreur... Je suis hebérgé chez 1et1, ils on bien une Bd qui accépte le php et j'ai reussi a faire un formulaire contact donc l'accés a la Bd est possible mais je compend pas c'est quoi un socket?
0
cs_Arnauti Messages postés 392 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 26 septembre 2009
11 janv. 2006 à 09:40
Un socket, je sais pas.
Pour l'erreur sur le web, question bête et tu sur que ton fichier config est bon ? Car la, je ne vois pas vraiment...
Pourrais tu me donner ta requete entière stp ?
A++
<hr size="2" width="100%">Si un des membres à poster une reponse qui convient, accepter là !
0
cs_matheo54 Messages postés 65 Date d'inscription lundi 20 décembre 2004 Statut Membre Dernière intervention 28 novembre 2007
11 janv. 2006 à 11:44
Pour info : Socket = Interface de programmation permettant les communications entre Unix et un réseau basé sur les protocoles définis par TCP-IP. Placées sur les protocoles de réseau SNA, les sockets permettent à des applications concues initialement pour TCP-IP d'utiliser les protocoles d'IBM.

Voila, :) Merci commentcamarche

Sinon ma requete est la suivante :

$requete3=mysql_query("insert into membre values("","$Pseudo","$Passe","$Nom","$Prenom","$Age","$Adresse","$Adresse2","$Cp","$Ville","$Pays","$Adresse_mail")");


$exe = mysql_query($requete3) or die('Erreur Mysql. '.mysql_error()) ;

J'ai bien vérifié le fichier config, il a l'air bon, les paramétres rentrés en tt cas sont ceux écrit sur le site. Je le met au cas où...

<?php
// Url base de donnée.

$Serveur_db ="db205.unetun.com";


// login/identification pour base de donnée
$User_db ="***";


// mot de passe pour base de donnée
$Passe_db ="***";


// Nom base de donnée
$Base_name="db14268";


// Connection à MySQL
$Connect_db = mysql_connect($Serveur_db,$User_db,$Passe_db)
or die("Connection impossible");


// Sélection de la base de donnée
mysql_select_db($Base_name,$Connect_db)
or die("Connection impossible a la base de données");
?>

Merci a +
0
cs_Arnauti Messages postés 392 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 26 septembre 2009
11 janv. 2006 à 13:56
Salut, change : $Serveur_db ="db205.unetun.com"; en $Serveur_db ="localhost";
Mais bon, je sais pas si ca va changer quelque chose.
A++

<hr size="2" width="100%">Si un des membres à poster une reponse qui convient, accepter là !
0
cs_matheo54 Messages postés 65 Date d'inscription lundi 20 décembre 2004 Statut Membre Dernière intervention 28 novembre 2007
11 janv. 2006 à 15:39
Non je viens de tester ca me marque la même erreur.

J'ai envoyé un mail au service technique pour voir ce qu'ils me disent mais je vais attendre 15 jours la reponse !!

Merci quand même, si tu a une autre idée je suis ouvert a tout essai ;)
0
cs_Arnauti Messages postés 392 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 26 septembre 2009
11 janv. 2006 à 16:14
Salut, je pense que (je suis vraiment pas sur et je pense pas qu'il y ai beaucoup de chance) :

$requete3 = 'insert into membre values(" ","$Pseudo","$Passe","$Nom","$Prenom","$Age","$Adresse","$Adresse2","$Cp","$Ville","$Pays","$Adresse_mail")');
$exe = mysql_query($requete3) or die('Erreur Mysql. '.mysql_error()) ;

A++
<hr size="2" width="100%">Si un des membres à poster une reponse qui convient, accepter là !
0
cs_matheo54 Messages postés 65 Date d'inscription lundi 20 décembre 2004 Statut Membre Dernière intervention 28 novembre 2007
11 janv. 2006 à 17:20
non comme ca ca me met une erreur, ... Parse error: parse error in d:\weblocal\sites\sitematheosphere\forminscription.php on line 65 ( ligne de la requete )
0
Rejoignez-nous