Besoin d'Aide

SkinParty
Invité n'ayant pas de compte PHPfrance

09 mai 2012, 00:01

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>

ViPHP
xTG
ViPHP | 7331 Messages

09 mai 2012, 06:51

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.

maximetest
Invité n'ayant pas de compte PHPfrance

15 mai 2012, 23:27

Moi aussi j'ai le même problème

ViPHP
ViPHP | 2577 Messages

16 mai 2012, 08:40

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(); 
}
?>