problème utilisateur

Eléphanteau du PHP | 40 Messages

11 janv. 2012, 22:09

Bonsoir, j'ai un souci avec mon script, lorsque je veut m'inscrire rien ne s'enregistre dans la base de donner merci de m'aider ...
<?php
function InscriptionIndex() {
global $_color;

echo''
.'<form method="post" action="index.php?page=Members&page_name=inscription&action=sauvegarder">'
.'<div style="text-align:center;"><big><b>'.INS_CHAMPS.'</b><br />'.INS_CONDITIONS.'</big><br /><br /></div>'
.'<table cellspacing="0" cellpadding="0" style="width:100%" align="center">'
.'<tr>'
.'<td colspan="3" style="text-align:center;'.STYLE_TITRE.'paddin-top:2px;padding-bottom:2px;"><b>'.INS_INFOS_COMPTE.'</b></td>'
.'</tr>'
.'<tr>'
.'<td style="padding-left:2px;background-color:'.$_color[3].';border:1px solid '.$_color[2].';border-top:none;border-right:none;padding:3px;">'.VOTRE.' '.PSEUDO.'</b></td>'
.'<td style="padding-left:2px;background-color:'.$_color[3].';border:1px solid '.$_color[2].';border-top:none;border-left:none;border-right:none;">'
.'<td style="width:20px;padding-left:2px;background-color:'.$_color[3].';border:1px solid '.$_color[2].';border-top:none;border-left:none;">
'
.'</tr>'
.'<tr>'
.'<td style="padding-left:2px;background-color:'.$_color[4].';border:1px solid '.$_color[2].';border-top:none;border-right:none;padding:3px;">'.VOTRE.' '.MAIL.'</b></td>'
.'<td style="padding-left:2px;background-color:'.$_color[4].';border:1px solid '.$_color[2].';border-top:none;border-left:none;border-right:none;">'
.'<td style="padding-left:2px;background-color:'.$_color[4].';border:1px solid '.$_color[2].';border-top:none;border-left:none;">
'
.'</tr>'
.'<tr>'
.'<td style="padding-left:2px;background-color:'.$_color[3].';border:1px solid '.$_color[2].';border-top:none;border-right:none;padding:3px;">'.VOTRE.' '.PASSWORD.'</b></td>'
.'<td style="padding-left:2px;background-color:'.$_color[3].';border:1px solid '.$_color[2].';border-top:none;border-left:none;border-right:none;">'
.'<td style="padding-left:2px;background-color:'.$_color[3].';border:1px solid '.$_color[2].';border-top:none;border-left:none;">'
.'</tr>'
.'<td style="padding-left:2px;background-color:'.$_color[4].';border:1px solid '.$_color[2].';border-top:none;border-right:none;padding:3px;">'.FIABILITY.'</b></td>'
.'<td style="padding-left:2px;background-color:'.$_color[4].';border:1px solid '.$_color[2].';border-top:none;border-left:none;border-right:none;">
'
.FAIBLE.'</li><li id="medium" class="nrm">'.MOYEN.'</li><li id="strong" class="nrm">'.FORT.'</li></ul></div></td>'
.'<td style="padding-left:2px;background-color:'.$_color[4].';border:1px solid '.$_color[2].';border-top:none;border-left:none;">'
.'</tr>'
.'<tr>'
.'<td style="padding-left:2px;background-color:'.$_color[3].';border:1px solid '.$_color[2].';border-top:none;border-right:none;padding:3px;">'.VOTRE.' '.PASSWORD.'</b></td>'
.'<td style="padding-left:2px;background-color:'.$_color[3].';border:1px solid '.$_color[2].';border-top:none;border-left:none;border-right:none;">'
.'<td style="padding-left:2px;background-color:'.$_color[3].';border:1px solid '.$_color[2].';border-top:none;border-left:none;">
'
.'</tr>'
.'<tr>'
.'<td style="padding-left:2px;background-color:'.$_color[4].';border:1px solid '.$_color[2].';border-top:none;border-right:none;padding:3px;">'.VOTRE.' '.SEXE.'</b></td>'
.'<td style="padding-left:2px;background-color:'.$_color[4].';border:1px solid '.$_color[2].';border-top:none;border-left:none;border-right:none;"> '.MASCULIN.' <input type="radio" name="sexe" value="female" /> <img src="images/femme.gif" alt="" /> '.FEMININ.'</td>'
.'<td style="padding-left:2px;background-color:'.$_color[4].';border:1px solid '.$_color[2].';border-top:none;border-left:none;">'
.'</tr>'
.'<tr>'
.'<td colspan="3" style="padding-left:4px;background-color:'.$_color[3].';border:1px solid '.$_color[2].';border-top:none;border-right:none;text-align:center;padding:2px;">.VALIDER.'" /></td>'
.'</tr>'
.'</table>'
.'</form>'
;
}

function InscriptionSauvegarder() {

$date = time();
$pseudo = htmlentities(addslashes($_POST['pseudo']));
$email = htmlentities(addslashes($_POST['email']));
$password = htmlentities(addslashes($_POST['password']));
$password_bis = htmlentities(addslashes($_POST['password_bis']));
$password_tiers = md5($password);
$sexe = htmlentities(addslashes($_POST['sexe']));

$requete = mysql_query('SELECT * FROM membres WHERE pseudo="'.$pseudo.'"');
$nb_pseudo = mysql_num_rows($requete);

$requete = mysql_query('SELECT * FROM membres WHERE email="'.$email.'"');
$nb_email = mysql_num_rows($requete);

if($nb_pseudo >= 1)
echo '<div style="text-align:center;"><b>'.INS_PSEUDO_PRIS.'</b></div>';
elseif($nb_email['COUNT(*)'] >= 1)
echo '<div style="text-align:center;"><b>'.INS_MAIL_PRIS.'</b></div>';
elseif( empty($pseudo) || empty($password) || empty($password_bis) || empty($email))
echo '<div style="text-align:center;"><b>'.ERREUR_200.'</b></div>';
elseif( $password != $password_bis)
echo'<div style="text-align:center;"><b>'.INS_MDP_PAS_SAME.'</b></div>';
else
{
mysql_query('INSERT INTO membres
(date, pseudo, password, email, activer, sex) VALUES
("'.$date.'", "'.$pseudo.'", "'.$password_tiers.'", "'.$email.'", "1", "'.$sexe.'")');

echo'<div style="text-align:center;"><b>'.INS_FINI.'</b></div>';
}

Redirection(3000, 'index.php');
}

if(isset($_GET['action']))
{
switch($_GET['action'])
{
case 'sauvegarder':
InscriptionSauvegarder();
break;
default:
InscriptionIndex();
break;
}
}
else
InscriptionIndex();
?>

ViPHP
xTG
ViPHP | 7331 Messages

11 janv. 2012, 22:38

Regardes ce que retourne mysql_error().

Eléphanteau du PHP | 40 Messages

12 janv. 2012, 09:23

je sais pas si je mes mal mysql_error car je vois pas d'erreur

Eléphant du PHP | 209 Messages

12 janv. 2012, 10:20

Salut,

Tu as une erreur de syntaxe au niveau de ton formulaire :

Remplace ce bout de code :
padding:2px;">.VALIDER.'" /></td>'
Par celui-ci :
padding:2px;">'.VALIDER.' /></td>'

Tu peux ajouter la ligne suivante au début de ton script également :
error_reporting(E_ALL);

Eléphanteau du PHP | 40 Messages

12 janv. 2012, 10:52

c'est toujours pareille il me dit Mauvais pseudo ou mot de passe et dans ma base de donner rien ne s'inscrit :/

Par contre j'ai du mal copier coller mais le " et bon et le error n'affiche rien :/ revoilà le script

<?php
error_reporting(E_ALL);
function InscriptionIndex() {
global $_color;

echo''
.'<form method="post" action="index.php?page=Members&page_name=inscription&action=sauvegarder">'
.'<div style="text-align:center;"><big><b>'.INS_CHAMPS.'</b><br />'.INS_CONDITIONS.'</big><br /><br /></div>'
.'<table cellspacing="0" cellpadding="0" style="width:100%" align="center">'
.'<tr>'
.'<td colspan="3" style="text-align:center;'.STYLE_TITRE.'paddin-top:2px;padding-bottom:2px;"><b>'.INS_INFOS_COMPTE.'</b></td>'
.'</tr>'
.'<tr>'
.'<td style="padding-left:2px;background-color:'.$_color[3].';border:1px solid '.$_color[2].';border-top:none;border-right:none;padding:3px;"><b>'.VOTRE.' '.PSEUDO.'</b></td>'
.'<td style="padding-left:2px;background-color:'.$_color[3].';border:1px solid '.$_color[2].';border-top:none;border-left:none;border-right:none;"><input type="text" name="pseudo" onkeyup="verifierPseudo(this.value)"/></td>'
.'<td style="width:20px;padding-left:2px;background-color:'.$_color[3].';border:1px solid '.$_color[2].';border-top:none;border-left:none;"><div id="statue_pseudo"></div></td>'
.'</tr>'
.'<tr>'
.'<td style="padding-left:2px;background-color:'.$_color[4].';border:1px solid '.$_color[2].';border-top:none;border-right:none;padding:3px;"><b>'.VOTRE.' '.MAIL.'</b></td>'
.'<td style="padding-left:2px;background-color:'.$_color[4].';border:1px solid '.$_color[2].';border-top:none;border-left:none;border-right:none;"><input type="text" name="email" onkeyup="verifierMail(this.value)"/></td>'
.'<td style="padding-left:2px;background-color:'.$_color[4].';border:1px solid '.$_color[2].';border-top:none;border-left:none;"><div id="statue_mail"></div></td>'
.'</tr>'
.'<tr>'
.'<td style="padding-left:2px;background-color:'.$_color[3].';border:1px solid '.$_color[2].';border-top:none;border-right:none;padding:3px;"><b>'.VOTRE.' '.PASSWORD.'</b></td>'
.'<td style="padding-left:2px;background-color:'.$_color[3].';border:1px solid '.$_color[2].';border-top:none;border-left:none;border-right:none;"><input type="password" name="password" onkeyup="verificationSecuriteeMotDePasse(this.value)"/></td>'
.'<td style="padding-left:2px;background-color:'.$_color[3].';border:1px solid '.$_color[2].';border-top:none;border-left:none;"></td>'
.'</tr>'
.'<td style="padding-left:2px;background-color:'.$_color[4].';border:1px solid '.$_color[2].';border-top:none;border-right:none;padding:3px;"><b>'.FIABILITY.'</b></td>'
.'<td style="padding-left:2px;background-color:'.$_color[4].';border:1px solid '.$_color[2].';border-top:none;border-left:none;border-right:none;"><div id="sm"><ul><li id="weak" class="nrm">'.FAIBLE.'</li><li id="medium" class="nrm">'.MOYEN.'</li><li id="strong" class="nrm">'.FORT.'</li></ul></div></td>'
.'<td style="padding-left:2px;background-color:'.$_color[4].';border:1px solid '.$_color[2].';border-top:none;border-left:none;"></td>'
.'</tr>'
.'<tr>'
.'<td style="padding-left:2px;background-color:'.$_color[3].';border:1px solid '.$_color[2].';border-top:none;border-right:none;padding:3px;"><b>'.VOTRE.' '.PASSWORD.'</b></td>'
.'<td style="padding-left:2px;background-color:'.$_color[3].';border:1px solid '.$_color[2].';border-top:none;border-left:none;border-right:none;"><input type="password" name="password_bis" onkeyup="verifierMotDePasse(this.value)"/></td>'
.'<td style="padding-left:2px;background-color:'.$_color[3].';border:1px solid '.$_color[2].';border-top:none;border-left:none;"><div id="statue_mot_de_passe"></div></td>'
.'</tr>'
.'<tr>'
.'<td style="padding-left:2px;background-color:'.$_color[4].';border:1px solid '.$_color[2].';border-top:none;border-right:none;padding:3px;"><b>'.VOTRE.' '.SEXE.'</b></td>'
.'<td style="padding-left:2px;background-color:'.$_color[4].';border:1px solid '.$_color[2].';border-top:none;border-left:none;border-right:none;"><input type="radio" name="sexe" value="male" checked="checked" /> <img src="images/homme.gif" alt="" /> '.MASCULIN.' <input type="radio" name="sexe" value="female" /> <img src="images/femme.gif" alt="" /> '.FEMININ.'</td>'
.'<td style="padding-left:2px;background-color:'.$_color[4].';border:1px solid '.$_color[2].';border-top:none;border-left:none;"></td>'
.'</tr>'
.'<tr>'
.'<td colspan="3" style="padding-left:4px;background-color:'.$_color[3].';border:1px solid '.$_color[2].';border-top:none;border-right:none;text-align:center;padding:2px;"><input type="submit" value="'.VALIDER.'"/></td>'
.'</tr>'
.'</table>'
.'</form>'
;
}

function InscriptionSauvegarder() {

$date = time();
$pseudo = htmlentities(addslashes($_POST['pseudo']));
$email = htmlentities(addslashes($_POST['email']));
$password = htmlentities(addslashes($_POST['password']));
$password_bis = htmlentities(addslashes($_POST['password_bis']));
$password_tiers = md5($password);
$sexe = htmlentities(addslashes($_POST['sexe']));

$requete = mysql_query('SELECT * FROM membres WHERE pseudo="'.$pseudo.'"');
$nb_pseudo = mysql_num_rows($requete);

$requete = mysql_query('SELECT * FROM membres WHERE email="'.$email.'"');
$nb_email = mysql_num_rows($requete);

$requete = mysql_query('SELECT * FROM membres WHERE password="'.$password.'"');
$nb_password = mysql_num_rows($requete);

if($nb_pseudo >= 1)
echo '<div style="text-align:center;"><b>'.INS_PSEUDO_PRIS.'</b></div>';
elseif($nb_email['COUNT(*)'] >= 1)
echo '<div style="text-align:center;"><b>'.INS_MAIL_PRIS.'</b></div>';
elseif( empty($pseudo) || empty($password) || empty($password_bis) || empty($email))
echo '<div style="text-align:center;"><b>'.ERREUR_200.'</b></div>';
elseif( $password != $password_bis)
echo'<div style="text-align:center;"><b>'.INS_MDP_PAS_SAME.'</b></div>';
else
{
mysql_query('INSERT INTO membres
(date, pseudo, password, email, activer, sex) VALUES
("'.$date.'", "'.$pseudo.'", "'.$password_tiers.'", "'.$email.'", "1", "'.$sexe.'")');

echo'<div style="text-align:center;"><b>'.INS_FINI.'</b></div>';
}

Redirection(3000, 'index.php');
}

if(isset($_GET['action']))
{
switch($_GET['action'])
{
case 'sauvegarder':
InscriptionSauvegarder();
break;
default:
InscriptionIndex();
break;
}
}
else
InscriptionIndex();
?>

Eléphant du PHP | 209 Messages

12 janv. 2012, 11:41

C'est quelle variable qui te renvoie ce message ?

Pour le mysql_error(), il faut que tu le fasses de cette manière :
mysql_query('...') or die(mysql_error());

Eléphanteau du PHP | 40 Messages

12 janv. 2012, 13:01

voilà ce que j'ai
" 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 "

Eléphant du PHP | 209 Messages

12 janv. 2012, 13:11

\o/

En fait les 3 petits points que j'ai mis dans le mysql_query doivent être remplacés par ta requête SQL.
C'était pour te signaler que tu pouvais le faire lors de chaque appel à mysql_query afin que l'on sache quelle requête peut poser problème.

En gros :
$requete = mysql_query('SELECT * FROM membres WHERE pseudo="'.$pseudo.'"') or die(mysql_error());

$requete = mysql_query('SELECT * FROM membres WHERE email="'.$email.'"') or die(mysql_error());

$requete = mysql_query('SELECT * FROM membres WHERE password="'.$password.'"') or die(mysql_error());

mysql_query('INSERT INTO membres
(date, pseudo, password, email, activer, sex) VALUES
("'.$date.'", "'.$pseudo.'", "'.$password_tiers.'", "'.$email.'", "1", "'.$sexe.'")') or die(mysql_error());

Eléphanteau du PHP | 40 Messages

12 janv. 2012, 13:30

xD oki ça me donner
" Field 'avatard' doesn't have a default value "

Eléphant du PHP | 209 Messages

12 janv. 2012, 13:33

Donc dans ta table "membres", tu dois avoir un champ avatard qui ne possède pas de valeur par défaut.
Du coup, quand tu veux insérer une ligne et que tu ne donnes aucune valeur à ce champ, une erreur se produit.

Pour régler ce problème, tu peux aller dans phpmyadmin pour définir une valeur par défaut à ton champ.

Eléphanteau du PHP | 40 Messages

12 janv. 2012, 14:10

Bein en faite là je comprend plus car a chaque fois y'à un souci sur une ligne, voici ma table:
CREATE TABLE IF NOT EXISTS `membres` (
`id` int(11) NOT NULL auto_increment,
`date` int(11) NOT NULL default '0',
`pseudo` varchar(25) NOT NULL default '',
`password` varchar(40) NOT NULL,
`email` varchar(50) NOT NULL,
`lvl` int(1) NOT NULL default '1',
`activer` int(1) NOT NULL default '0',
`avatard` text NOT NULL,
`nom` varchar(60) NOT NULL,
`prenom` varchar(60) NOT NULL,
`sex` varchar(60) NOT NULL,
`age` varchar(60) NOT NULL,
`country` varchar(60) NOT NULL,
`town` varchar(60) NOT NULL,
`web_site` varchar(100) NOT NULL,
`win_version` varchar(60) NOT NULL,
`win_sensitivity` varchar(60) NOT NULL,
`win_resolution` varchar(60) NOT NULL,
`connexion` varchar(60) NOT NULL,
`provider_connection` varchar(60) NOT NULL,
`direct_x` varchar(60) NOT NULL,
`CPU` varchar(60) NOT NULL,
`carte_graphique` varchar(60) NOT NULL,
`carte_son` varchar(60) NOT NULL,
`carte_mere` varchar(60) NOT NULL,
`disque_dur` varchar(60) NOT NULL,
`memoire` varchar(60) NOT NULL,
`moniteur` varchar(60) NOT NULL,
`sourie` varchar(60) NOT NULL,
`mouse_pad` varchar(60) NOT NULL,
`clavier` varchar(60) NOT NULL,
`team` varchar(60) NOT NULL,
`team_site` varchar(100) NOT NULL,
`team_canal` varchar(100) NOT NULL,
`game_resolution` varchar(60) NOT NULL,
`game_sensitivity` varchar(60) NOT NULL,
`map_prefere` varchar(60) NOT NULL,
`arme_prefere` varchar(60) NOT NULL,
`jeu_prefere` varchar(60) NOT NULL,
`msn` varchar(50) NOT NULL,
`aim` varchar(50) NOT NULL,
`icq` varchar(50) NOT NULL,
`irc` varchar(50) NOT NULL,
`pays` varchar(25) NOT NULL default 'France',
`description` text NOT NULL,
UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=34 ;

Eléphant du PHP | 209 Messages

12 janv. 2012, 14:14

En fait, tous tes champs qui n'ont pas de valeurs par défaut et que tu n'insères pas dans ta requête vont de renvoyer cette erreur.
Pour corriger cela, tu dois définir des valeurs par défaut pour tous les champs comme à cette ligne :
`pseudo` varchar(25) NOT NULL default '',

Eléphanteau du PHP | 40 Messages

12 janv. 2012, 14:24

voilà le résultat

#1101 - BLOB/TEXT column 'avatard' can't have a default value

Eléphant du PHP | 209 Messages

12 janv. 2012, 14:43

Tu peux mettre ça pour la colonne avatard
`avatard` text NULL default NULL,
Par défaut le champ sera null et non vide ;)

Eléphanteau du PHP | 40 Messages

12 janv. 2012, 14:53

t'es un dieu toi merci beaucoup