Erreur sur script pour espace membre

Signaler
Messages postés
65
Date d'inscription
lundi 20 décembre 2004
Statut
Membre
Dernière intervention
28 novembre 2007
-
Messages postés
392
Date d'inscription
mercredi 24 novembre 2004
Statut
Membre
Dernière intervention
26 septembre 2009
-
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

Messages postés
392
Date d'inscription
mercredi 24 novembre 2004
Statut
Membre
Dernière intervention
26 septembre 2009

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à !
Messages postés
65
Date d'inscription
lundi 20 décembre 2004
Statut
Membre
Dernière intervention
28 novembre 2007

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();
?>
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
5
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)
Messages postés
65
Date d'inscription
lundi 20 décembre 2004
Statut
Membre
Dernière intervention
28 novembre 2007

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.
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
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>
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
5
voyonsla page de code html !! Pseudo avec P, sûr ??
Messages postés
65
Date d'inscription
lundi 20 décembre 2004
Statut
Membre
Dernière intervention
28 novembre 2007

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
Messages postés
392
Date d'inscription
mercredi 24 novembre 2004
Statut
Membre
Dernière intervention
26 septembre 2009

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à !
Messages postés
65
Date d'inscription
lundi 20 décembre 2004
Statut
Membre
Dernière intervention
28 novembre 2007

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
Messages postés
65
Date d'inscription
lundi 20 décembre 2004
Statut
Membre
Dernière intervention
28 novembre 2007

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();
?>
Messages postés
392
Date d'inscription
mercredi 24 novembre 2004
Statut
Membre
Dernière intervention
26 septembre 2009

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à !
Messages postés
65
Date d'inscription
lundi 20 décembre 2004
Statut
Membre
Dernière intervention
28 novembre 2007

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 !!
Messages postés
392
Date d'inscription
mercredi 24 novembre 2004
Statut
Membre
Dernière intervention
26 septembre 2009

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à !
Messages postés
65
Date d'inscription
lundi 20 décembre 2004
Statut
Membre
Dernière intervention
28 novembre 2007

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?
Messages postés
392
Date d'inscription
mercredi 24 novembre 2004
Statut
Membre
Dernière intervention
26 septembre 2009

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à !
Messages postés
65
Date d'inscription
lundi 20 décembre 2004
Statut
Membre
Dernière intervention
28 novembre 2007

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 +
Messages postés
392
Date d'inscription
mercredi 24 novembre 2004
Statut
Membre
Dernière intervention
26 septembre 2009

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à !
Messages postés
65
Date d'inscription
lundi 20 décembre 2004
Statut
Membre
Dernière intervention
28 novembre 2007

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 ;)
Messages postés
392
Date d'inscription
mercredi 24 novembre 2004
Statut
Membre
Dernière intervention
26 septembre 2009

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à !
Messages postés
65
Date d'inscription
lundi 20 décembre 2004
Statut
Membre
Dernière intervention
28 novembre 2007

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 )