Page 1 sur 1

Besoin d'Aide

Posté : 09 mai 2012, 00:01
par SkinParty
Bonjour a tous voila je suis en creation d'un espace membres pour mon site web je commence tout juste le php avec Basse de donner .
Pour cela je vais afficher mon code si quelqu'un a une solution le probleme est que lors que je valide l'inscription il me disent qu'il ya une erreur lors de l'inscription .
Donc aucune donner arrive a la base de donner.
Le code est :

Code : Tout sélectionner

<?php include('config.php') ?> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link href="<?php echo $design; ?>/style.css" rel="stylesheet" title="Style" /> <title>Espace membre</title> </head> <body> <div class="site"> <div class="moteur_recherche"> <form action="http://www.google.fr/search"> <div> <input type="hidden" name="hl" value="fr" /> <input type="text" name="q" size="34" /> <input type="submit" value="OK" /> </div> </form> </div> <div class="header"> LoCaSkiN </div> </div> <?php //On verifie que le formulaire a ete envoye if(isset($_POST['username'], $_POST['password'], $_POST['passverif'], $_POST['email'], $_POST['avatar'], $_POST['age']) and $_POST['username']!='') { //On enleve lechappement si get_magic_quotes_gpc est active if(get_magic_quotes_gpc()) { $_POST['username'] = stripslashes($_POST['username']); $_POST['password'] = stripslashes($_POST['password']); $_POST['passverif'] = stripslashes($_POST['passverif']); $_POST['email'] = stripslashes($_POST['email']); $_POST['avatar'] = stripslashes($_POST['avatar']); $_POST['age'] = stripslashes($_POST['age']); } //On verifie si le mot de passe et celui de la verification sont identiques if($_POST['password']==$_POST['passverif']) { //On verifie si le mot de passe a 6 caracteres ou plus if(strlen($_POST['password'])>=6) { //On verifie si lemail est valide if(preg_match('#^(([a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+\.?)*[a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+)@(([a-z0-9-_]+\.?)*[a-z0-9-_]+)\.[a-z]{2,}$#i',$_POST['email'])) { //On echape les variables pour pouvoir les mettre dans une requette SQL $username = mysql_real_escape_string($_POST['username']); $password = mysql_real_escape_string($_POST['password']); $email = mysql_real_escape_string($_POST['email']); $avatar = mysql_real_escape_string($_POST['avatar']); $age = mysql_real_escape_string($_POST['age']); //On verifie sil ny a pas deja un utilisateur inscrit avec le pseudo choisis $dn = mysql_num_rows(mysql_query('select id from users where username="'.$username.'"')); if($dn==0) { //On recupere le nombre dutilisateurs pour donner un identifiant a lutilisateur actuel $dn2 = mysql_num_rows(mysql_query('select id from users')); $id = $dn2+1; //On enregistre les informations dans la base de donnee if(mysql_query('insert into users(id, username, password, email, avatar, signup_date) values ('.$id.', "'.$username.'", "'.$password.'", "'.$email.'", "'.$avatar.'", "'.$age.'", "'.time().'")')) { //Si ca a fonctionne, on naffiche pas le formulaire $form = false; ?> <div class="message">Vous avez bien &eacute;t&eacute; inscrit. Vous pouvez dor&eacute;navant vous connecter.<br /> <a href="connexion.php">Se connecter</a></div> <?php } else { //Sinon on dit quil y a eu une erreur $form = true; $message = 'Une erreur est survenue lors de l\'inscription.'; } } else { //Sinon, on dit que le pseudo voulu est deja pris $form = true; $message = 'Un autre utilisateur utilise d&eacute;j&agrave; le nom d\'utilisateur que vous d&eacute;sirez utiliser.'; } } else { //Sinon, on dit que lemail nest pas valide $form = true; $message = 'L\'email que vous avez entr&eacute; n\'est pas valide.'; } } else { //Sinon, on dit que le mot de passe nest pas assez long $form = true; $message = 'Le mot de passe que vous avez entr&eacute; contien moins de 6 caract&egrave;res.'; } } else { //Sinon, on dit que les mots de passes ne sont pas identiques $form = true; $message = 'Les mots de passe que vous avez entr&eacute; ne sont pas identiques.'; } } else { $form = true; } if($form) { //On affiche un message sil y a lieu if(isset($message)) { echo '<div class="message">'.$message.'</div>'; } //On affiche le formulaire ?> <div class="content"> <form action="sign_up.php" method="post"> Veuillez remplir ce formulaire pour vous inscrire:<br /> <div class="center"> <label for="username">Nom d'utilisateur</label><input type="text" name="username" value="<?php if(isset($_POST['username'])){echo htmlentities($_POST['username'], ENT_QUOTES, 'UTF-8');} ?>" /><br /> <label for="password">Mot de passe<span class="small">(6 caract&egrave;res min.)</span></label><input type="password" name="password" /><br /> <label for="passverif">Mot de passe<span class="small">(v&eacute;rification)</span></label><input type="password" name="passverif" /><br /> <label for="email">Email</label><input type="text" name="email" value="<?php if(isset($_POST['email'])){echo htmlentities($_POST['email'], ENT_QUOTES, 'UTF-8');} ?>" /><br /> <label for="age">Age</label><input type="text" name="age" value="<?php if(isset($_POST['age'])){echo htmlentities($_POST['age'], ENT_QUOTES, 'UTF-8');} ?>" /><br /> <label for="avatar">Image perso<span class="small">(facultatif)</span></label><input type="text" name="avatar" value="<?php if(isset($_POST['avatar'])){echo htmlentities($_POST['avatar'], ENT_QUOTES, 'UTF-8');} ?>" /><br /> <input type="submit" value="Envoyer" /> </div> </form> </div> <?php } ?> <div class="foot">LocaSkin</a></div> </body> </html>

Ou ci vous préférer le code découper par balise par langages :
<?php
include('config.php')
?>

<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <link href="<?php echo $design; ?>/style.css" rel="stylesheet" title="Style" />
        <title>Espace membre</title>
    </head>
    <body>
    	<div class="site">
        <div class="moteur_recherche">
            <form action="http://www.google.fr/search">
                <div>
                    <input type="hidden" name="hl" value="fr" />
                    <input type="text" name="q" size="34" />
                    <input type="submit" value="OK" />
                </div>
            </form>
		</div>
        <div class="header">
	        LoCaSkiN
        </div>
		</div>
<?php
//On verifie que le formulaire a ete envoye
if(isset($_POST['username'], $_POST['password'], $_POST['passverif'], $_POST['email'], $_POST['avatar'], $_POST['age']) and $_POST['username']!='')
{
	//On enleve lechappement si get_magic_quotes_gpc est active
	if(get_magic_quotes_gpc())
	{
		$_POST['username'] = stripslashes($_POST['username']);
		$_POST['password'] = stripslashes($_POST['password']);
		$_POST['passverif'] = stripslashes($_POST['passverif']);
		$_POST['email'] = stripslashes($_POST['email']);
		$_POST['avatar'] = stripslashes($_POST['avatar']);
		$_POST['age'] = stripslashes($_POST['age']);
	}
	//On verifie si le mot de passe et celui de la verification sont identiques
	if($_POST['password']==$_POST['passverif'])
	{
		//On verifie si le mot de passe a 6 caracteres ou plus
		if(strlen($_POST['password'])>=6)
		{
			//On verifie si lemail est valide
			if(preg_match('#^(([a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+\.?)*[a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+)@(([a-z0-9-_]+\.?)*[a-z0-9-_]+)\.[a-z]{2,}$#i',$_POST['email']))
			{
				//On echape les variables pour pouvoir les mettre dans une requette SQL
				$username = mysql_real_escape_string($_POST['username']);
				$password = mysql_real_escape_string($_POST['password']);
				$email = mysql_real_escape_string($_POST['email']);
				$avatar = mysql_real_escape_string($_POST['avatar']);
				$age = mysql_real_escape_string($_POST['age']);
				//On verifie sil ny a pas deja un utilisateur inscrit avec le pseudo choisis
				$dn = mysql_num_rows(mysql_query('select id from users where username="'.$username.'"'));
				if($dn==0)
				{
					//On recupere le nombre dutilisateurs pour donner un identifiant a lutilisateur actuel
					$dn2 = mysql_num_rows(mysql_query('select id from users'));
					$id = $dn2+1;
					//On enregistre les informations dans la base de donnee
					if(mysql_query('insert into users(id, username, password, email, avatar, signup_date) values ('.$id.', "'.$username.'", "'.$password.'", "'.$email.'", "'.$avatar.'", "'.$age.'", "'.time().'")'))
					{
						//Si ca a fonctionne, on naffiche pas le formulaire
						$form = false;
?>
<div class="message">Vous avez bien &eacute;t&eacute; inscrit. Vous pouvez dor&eacute;navant vous connecter.<br />
<a href="connexion.php">Se connecter</a></div>
<?php
					}
					else
					{
						//Sinon on dit quil y a eu une erreur
						$form = true;
						$message = 'Une erreur est survenue lors de l\'inscription.';
					}
					
				}
				else
				{
					//Sinon, on dit que le pseudo voulu est deja pris
					$form = true;
					$message = 'Un autre utilisateur utilise d&eacute;j&agrave; le nom d\'utilisateur que vous d&eacute;sirez utiliser.';
				}
			}
			else
			{
				//Sinon, on dit que lemail nest pas valide
				$form = true;
				$message = 'L\'email que vous avez entr&eacute; n\'est pas valide.';
			}
		}
		else
		{
			//Sinon, on dit que le mot de passe nest pas assez long
			$form = true;
			$message = 'Le mot de passe que vous avez entr&eacute; contien moins de 6 caract&egrave;res.';
		}
	}
	else
	{
		//Sinon, on dit que les mots de passes ne sont pas identiques
		$form = true;
		$message = 'Les mots de passe que vous avez entr&eacute; ne sont pas identiques.';
	}
}
else
{
	$form = true;
}
if($form)
{
	//On affiche un message sil y a lieu
	if(isset($message))
	{
		echo '<div class="message">'.$message.'</div>';
	}
	//On affiche le formulaire
?>
<div class="content">
    <form action="sign_up.php" method="post">
        Veuillez remplir ce formulaire pour vous inscrire:<br />
        <div class="center">
            <label for="username">Nom d'utilisateur</label><input type="text" name="username" value="<?php if(isset($_POST['username'])){echo htmlentities($_POST['username'], ENT_QUOTES, 'UTF-8');} ?>" /><br />
            <label for="password">Mot de passe<span class="small">(6 caract&egrave;res min.)</span></label><input type="password" name="password" /><br />
            <label for="passverif">Mot de passe<span class="small">(v&eacute;rification)</span></label><input type="password" name="passverif" /><br />
            <label for="email">Email</label><input type="text" name="email" value="<?php if(isset($_POST['email'])){echo htmlentities($_POST['email'], ENT_QUOTES, 'UTF-8');} ?>" /><br />
            <label for="age">Age</label><input type="text" name="age" value="<?php if(isset($_POST['age'])){echo htmlentities($_POST['age'], ENT_QUOTES, 'UTF-8');} ?>" /><br />
			<label for="avatar">Image perso<span class="small">(facultatif)</span></label><input type="text" name="avatar" value="<?php if(isset($_POST['avatar'])){echo htmlentities($_POST['avatar'], ENT_QUOTES, 'UTF-8');} ?>" /><br />
            <input type="submit" value="Envoyer" />
		</div>
    </form>
</div>
<?php
}
?>
<div class="foot">LocaSkin</a></div>
	</body>
</html>

Re: Besoin d'Aide

Posté : 09 mai 2012, 06:51
par xTG
Tu peux utiliser la fonction mysql_error() pour afficher la dernière erreur en provenance du driver de base de données.
Cela te donnera plus d'informations sur l'erreur.

Re: Besoin d'Aide

Posté : 15 mai 2012, 23:27
par maximetest
Moi aussi j'ai le même problème

Re: Besoin d'Aide

Posté : 16 mai 2012, 08:40
par Mazarini
Le plus simple pour gérer les erreurs, c'est de faire quelque chose comme :
<?PHP
$sql = '...',
$result = mysql_query($sql);
if (mysql_errno() <> 0)
{
   echo 'erreur mysql : ',mysql_error(),'<br>';
   echo 'sql : ',$sql,'<br>';
   die(); 
}
?>