Page 1 sur 2

Problème d'authentification

Posté : 12 mai 2007, 15:25
par djtec
Bonjour je fais actuellement un espace pour mon site mais j'ai un probleme au niveau de l'ajout de membre

voici mon code
<? 
session_start();

include('includes/config.inc.php'); 
require('includes/function.php') ;
$c = @mysql_connect($host,$login_host,$pass_host) or die('connection impossible');
@mysql_select_db($hostname,$c) or die('selection impossible'); 


$chaine = "abcdefghijklmnopqrstuvwxyz0123456789"; 
$confirm = str_shuffle($chaine);

$pseudo = mysql_real_escape_string($_POST['pseudo']);
$mdp = mysql_real_escape_string($_POST['mdp']);
$verif_mdp = mysql_real_escape_string($_POST['verif_mdp']);
$mail = mysql_real_escape_string($_POST['mail']);

$nom = mysql_real_escape_string($_POST['nom']);
$prenom = mysql_real_escape_string($_POST['prenom']); 
$born = mysql_real_escape_string($_POST['born']);
$pays = mysql_real_escape_string($_POST['pays']); 
$website = mysql_real_escape_string($_POST['website']);

$point = strpos($mail,".");
$aroba = strpos($mail,"@");

if ($point=='')
{
$reponse = '<p><font color="red"><b>Votre email doit comporter un point</b></font></p>'; 
}
else if ($aroba=='')
{
$reponse = '<p><font color="red"><b>Votre email doit comporter un "@"</b></font></p>';
}	
	
$verification = mysql_query("SELECT COUNT(*) FROM pdf_membre WHERE pseudo='$pseudo' OR mail='$mail'"); 
$donnees = mysql_fetch_array($verification); 
if($donnees['COUNT(*)'] >= 1)
{ 
$reponse = '<p><font color="red"><b>Ce pseudo ou cet email sont déjà utilisé, veuillez en choisir d\'autres !</b></font></p>';  	
}
else if( $mdp != $verif_mdp)
			{
$reponse = '<p><font color="red"><b>Les mots de passe ne sont pas identiques !</b></font></p>';
} 

else 
{
$message1 = '<html><body>Bonjour ' . $pseudo . ' et bienvenue<br>'; 
$message1 .= '<br>';
$message1 .= 'Vous venez de vous inscrire et nous sommes heureux<br>de pouvoir vous compter aujourd\'hui parmi nos membres.<br>'; 
$message1 .= '<br>';
$message1 .= 'Voici un rappel de vos identifiants, notez les précieusement: <br>';
$message1 .= '----------------------------<br>';
$message1 .= 'Votre Pseudo :' . $pseudo .'.<br>';
$message1 .= 'Votre Mot de passe :' . $mdp .'.<br>';
$message1 .= 'Votre Mail :' . $mail .'.<br>';							
$message1 .= '----------------------------';
$message1 .= '<br>';
$message1 .= 'Si vous souhaitez changer vos informations, rendez-vous dans votre compte pour les mettre à jour.<br>';
$message1 .= '<br>';
$message1 .= 'Votre Clé d\'activation:<br>';
$message1 .= 'http://www.monsite.com/confirm.php?login=' . str_replace(' ','%20',$pseudo) . '&confirm=' . $confirm . '<br>';
$message1 .= '<br>';
$message1 .= 'A très bientôt sur le site!';

$entete = "MIME-Version: 1.0\r\n";
$entete .= "Content-type: text/html; charset=iso-8859-1\r\n";
$entete .= "From: <$adresse_webmaster>\r\n";
$entete .= "Reply-To: $adresse_webmaster\r\n";	
   
$date = date("Y-m-d");

$sql = "INSERT INTO pdf_membre(id, pseudo, mdp, mail, confirm, nom, prenom, pays, born, website, date) VALUES ('', '".$pseudo."', '".$mdp."', '".$mail."', '0', '".$nom."', '".$prenom."', '".$pays."', '".$born."', '".$website."', '".$date."')";
mysql_query($sql);

mail($email,'Confirmation d\'inscription' , $message1, $entete);	

$reponse = '<p><font color="green"><b>Enregistrement réussi.</b></font></p><br>
Toutefois, ce site requière l\'activation du compte,<br>
une clef d\'activation a été envoyée vers l\'adresse email que vous avez fournie.<br>
Veuillez vérifier votre boîte email pour de plus amples informations.';
}
?>

<? viewheader(); ?>

<table cellpadding="0" cellspacing="0" border="0" width="900" align="center" background="images/fdtab.png">
	<tr>
		<td colspan="4">&nbsp;</td>
	</tr>
	<tr>
		<td width="22">&nbsp;</td>
		<td valign="top" width="700">
<table border="0" class="tableBorder" align="center">
	<tr>
		<td class="titre" height="21">S'enregistrer</td>
	</tr>
</table>
<br />
<table border="0" class="tableBorder" height="100" align="center">
	<tr>
		<td class="titre" height="21">Enregistrement</td>
	</tr>
	<tr>
		<td align="center"><? echo "$reponse"; ?></td>
	</tr>
</table>
<br />											
		</td>
		<td width="2">&nbsp;</td>
		<td valign="top"><? include('includes/menu.php') ?></td>
		<td width="22">&nbsp;</td>
	</tr>
</table>

<? viewfooter(); ?>
Le problème c'est qu'il n'enregistre pas l'inscription dans la base part contre l'e-mail s'envoi bien avec la clef d'activation.

Et je ne trouve pas l'erreur pour qu'il insére l'enregistrement dans la base.

Merci d'avance.

Posté : 12 mai 2007, 17:20
par jojolapine
et les or die(mysql_error()); après les mysql_query(...) y sont où ?

Posté : 12 mai 2007, 19:11
par djtec
Ah oui j'avais oublié ca

Bon j'ai mis
$sql = "INSERT INTO pdf_membre(id, pseudo, mdp, mail, confirm, nom, prenom, pays, born, website, date) VALUES ('', '".$pseudo."', '".$mdp."', '".$mail."', '".$confirm."', '".$nom."', '".$prenom."', '".$pays."', '".$born."', '".$website."', '".$date."')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
Et voici l'erreur que j'ai

Code : Tout sélectionner

Unknown column 'mdp' in 'field list'
Pourtant je mdp est dans la liste si on regarde la requête

Posté : 12 mai 2007, 19:16
par dunbar
Ah oui j'avais oublié ca

Bon j'ai mis
$sql = "INSERT INTO pdf_membre(id, pseudo, mdp, mail, confirm, nom, prenom, pays, born, website, date) VALUES ('', '".$pseudo."', '".$mdp."', '".$mail."', '".$confirm."', '".$nom."', '".$prenom."', '".$pays."', '".$born."', '".$website."', '".$date."')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
Et voici l'erreur que j'ai

Code : Tout sélectionner

Unknown column 'mdp' in 'field list'
Pourtant je mdp est dans la liste si on regarde la requête
Si je ne me trompe pas :oops: il dit que mdp il ne le trouve pas dans ta TABLE :idea:

Posté : 12 mai 2007, 19:36
par djtec
Il ne doit pas le trouver mais l'insérer dans la base et la il n'arrive pas à l'insérer

Posté : 12 mai 2007, 19:38
par dunbar
Il ne doit pas le trouver mais l'insérer dans la base et la il n'arrive pas à l'insérer
Et comment il fait pour l'insérer si le champ n'existe pas :-k

Posté : 12 mai 2007, 19:53
par djtec
Si tu regarde la requête il existe bien
$sql = "INSERT INTO pdf_membre(id, pseudo, mdp, mail, confirm, nom, prenom, pays, born, website, date) VALUES ('', '".$pseudo."', '".$mdp."', '".$mail."', '".$confirm."', '".$nom."', '".$prenom."', '".$pays."', '".$born."', '".$website."', '".$date."')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

Posté : 12 mai 2007, 19:57
par djtec
Désolé mais c'est bon j'ai trouvé.

C'était une erreur dans ma bdd.


Merci

Posté : 12 mai 2007, 19:58
par dunbar
Si tu regarde la requête il existe bien
$sql = "INSERT INTO pdf_membre(id, pseudo, 
mdp, mail, confirm, nom, prenom, pays, born, website, date) 
VALUES ('', '".$pseudo."', '".$mdp."', '".$mail."', '".$confirm."', '".$nom."',
 '".$prenom."', '".$pays."', '".$born."', '".$website."', '".$date."')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
Oui et alors :?:
Il te dit qu'il doit introduire une donnée dans le champs "mdp" mais qu'il ne le trouve pas
En clair cela veut probablement dire que le champ mdp n'existe pas dans ta TABLE (base Mysql). :boire4:

Posté : 12 mai 2007, 20:00
par dunbar
Désolé mais c'est bon j'ai trouvé.

C'était une erreur dans ma bdd.


Merci
:gla:

Posté : 12 mai 2007, 20:35
par djtec
Par contre maintenant j'ai un autre problème il n'envoie plus l'e-mail avec la clef de confirmation

Posté : 12 mai 2007, 20:45
par dunbar
Par contre maintenant j'ai un autre problème il n'envoie plus l'e-mail avec la clef de confirmation
Je voie pas le rapport avec l'autre erreur :-k
Si cela fonctionnais avant c'est que tu a probablement modifier autre chose :?:

Posté : 12 mai 2007, 20:50
par djtec
Non pas du tout dans ma base le champs mdp était nommé pass donc j'ai juste renommé se champ en mdp mais je n'ai rien fait d'autre pourtant j'ai délété le compte et recréer le même avec la même adresse e-mail et je l'avais reçu mais la je le reçoit plus

Et moi non plus je comprend pas pourquoi d'un coup sa ne fonctionne plus

Posté : 12 mai 2007, 20:52
par dunbar
Non pas du tout dans ma base le champs mdp était nommé pass donc j'ai juste renommé se champ en mdp mais je n'ai rien fait d'autre pourtant j'ai délété le compte et recréer le même avec la même adresse e-mail et je l'avais reçu mais la je le reçoit plus

Et moi non plus je comprend pas pourquoi d'un coup sa ne fonctionne plus
Le reste du mail est correct ?
Comme par exemple le Login est bien dans le mail ?

Posté : 12 mai 2007, 20:57
par djtec
En faites j'ai trouvé mais je comprend pas pourquoi

La ligne d'envoie était celle-ci
mail($email,'Confirmation d\'inscription' , $message1, $entete);
Et j'ai changé email pour mail

Comme ceci
mail($mail,'Confirmation d\'inscription' , $message1, $entete);
Mais ce qui est bizar c'est qu'il fonctionnait avant avec la première ligne qui était fausse car se n'était pas la bonne déclaration


Je te remercie de ton aide dunbar