Problème d'authentification

Eléphant du PHP | 451 Messages

12 mai 2007, 15:25

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.

ViPHP
ViPHP | 3607 Messages

12 mai 2007, 17:20

et les or die(mysql_error()); après les mysql_query(...) y sont où ?

Eléphant du PHP | 451 Messages

12 mai 2007, 19:11

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

ViPHP
ViPHP | 2291 Messages

12 mai 2007, 19:16

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:
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Eléphant du PHP | 451 Messages

12 mai 2007, 19:36

Il ne doit pas le trouver mais l'insérer dans la base et la il n'arrive pas à l'insérer

ViPHP
ViPHP | 2291 Messages

12 mai 2007, 19:38

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
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Eléphant du PHP | 451 Messages

12 mai 2007, 19:53

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

Eléphant du PHP | 451 Messages

12 mai 2007, 19:57

Désolé mais c'est bon j'ai trouvé.

C'était une erreur dans ma bdd.


Merci

ViPHP
ViPHP | 2291 Messages

12 mai 2007, 19:58

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:
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

ViPHP
ViPHP | 2291 Messages

12 mai 2007, 20:00

Désolé mais c'est bon j'ai trouvé.

C'était une erreur dans ma bdd.


Merci
:gla:
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Eléphant du PHP | 451 Messages

12 mai 2007, 20:35

Par contre maintenant j'ai un autre problème il n'envoie plus l'e-mail avec la clef de confirmation

ViPHP
ViPHP | 2291 Messages

12 mai 2007, 20:45

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 :?:
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Eléphant du PHP | 451 Messages

12 mai 2007, 20:50

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

ViPHP
ViPHP | 2291 Messages

12 mai 2007, 20:52

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 ?
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Eléphant du PHP | 451 Messages

12 mai 2007, 20:57

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