|
 Posté le 17/12/2006 @ 14:40 |
Nouvel astucien
| Bonjour tout le monde. Tout d'abord, étant nouveau, je vais faire une courte présentation.
Je m'appelle Ugo Cabrol, j'ai 13 ans, et je suis à fond sur l'informatique. Je suis Webmaster d'un site: FSDownload (gratuit). Je dois un peu le mettre à jour, et je rencontre un problème avec un Formulaire d'inscription. Vous pouvez allé voir ce fameux formulaire ici: http://fsdownload.ifrance.com/pdf_inscription.php (Le site est loiiiiiiin d'être finit, c'est pour ça qu'aucune page n'a de texte). L'inscription marche super bien, jusqu'au moment du mail de confirmation. Après avoir remplit le formulaire, on a le message de bienvenue et tout le tra la la, mais on ne reçoit pas le mail de confirmation. D'où cela peut-il venir ? J'ai ça comme script: Confirm.php: <? require("conf.php3");
$sql = connect_sql();
$search = 'SELECT COUNT(*) as nb FROM pdf_membre WHERE pseudo = "'.addslashes($_GET['login']).'" AND confirm = "'.addslashes($_GET['confirm']).'"'; $req = mysql_query($search) or die(mysql_error()); $data = mysql_fetch_array($req);
if($data['nb'] == 1) { $login = $_GET['login']; mysql_query("UPDATE pdf_membre SET `confirm`='' WHERE `pseudo` ='$login'") or die('erreur : '.mysql_error());
echo '<p>Votre compte à bien été créé.</p>'; echo '<p>Pour retournez à la page d\'accueil cliquez <a href="' .$http://fsdownload.ifrance.com/. '">ici</a>.</p>'; } else { echo '<p>Un problème est survenu, il est possible que vous n\'êtes pas inscrit ou que l\'adresse est fausse ou que vous êtes déjà validé !.</p>'; } mysql_close($sql); ?>
pdf_inscription.php: <html><body><form name="form1" method="post" action="pdf_inscription2.php"> Pseudo:<br> <input type="text" name="pseudo"><br> Mot de Passe:<br> <input name="mdp" type="password" id="mdp"><br> Retapez votre mot de passe:<br> <input name="verif_mdp" type="password" id="verif_mdp"><br> Votre E-Mail:<br> <input name="mail" type="text" id="mail"><br> Nom:<br> <input name="nom" type="text" id="nom"><br> Prenom:<br> <input name="prenom" type="text" id="prenom"><br> Site Web:<br> <input name="website" type="text" id="website"><br> Pays:<br> <input name="pays" type="text" id="pays"><br> Date de Naissance (jj/mm/aa):<br> <input name="born" type="text" id="born"><br> <input type="submit" name="Submit" value="Inscription"> </form> </boby></html>
pdf_inscription2.php: <?php session_start(); require("conf.php3");
$mail = htmlentities($_POST['mail']);
if (preg_match("!^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$!", $mail)) { $chaine = "abcdefghijklmnopqrstuvwxyz0123456789"; $confirm = str_shuffle($chaine); $pseudo = htmlentities($_POST['pseudo']); $mdp = htmlentities($_POST['mdp']); $verif_mdp = htmlentities($_POST['verif_mdp']); $nom = htmlentities($_POST['nom']); $prenom = htmlentities($_POST['prenom']); $website = htmlentities($_POST['website']); $pays = htmlentities($_POST['pays']); $born = htmlentities($_POST['born']); $message1 = '<html><body>Bonjour ' . $pseudo . ' et bienvenue sur ' .$FSDownload. '.</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 .= 'Voici un rappel de vos identifiants, notez les précieusement : <br>'; $message1 .= 'Votre Pseudo :' . $pseudo .'.<br>'; $message1 .= 'Votre Mot de passe:' . $mdp .'.<br><br>'; $message1 .= 'Votre Mail:' . $mail .'.<br><br>'; $message1 .= 'Votre Nom:' . $nom .'.<br><br>'; $message1 .= 'Votre Prenom:' . $prenom .'.<br><br>'; $message1 .= 'Votre Pays:' . $pays .'.<br><br>'; $message1 .= 'Votre Site Web' . $website .'.<br><br>'; $message1 .= 'Votre Date de naissance:' . $born .'.<br><br>'; $message1 .= 'Si vous souhaitez changer vos informations, rendez-vous dans votre compte pour les mettre à jour.<br>'; $message1 .= 'Votre Clé d\'activation:<br>'; $message1 .= '' .$url_script. '/confirm.php?login=' . str_replace(' ','%20',$pseudo) . '&confirm=' . $confirm . '<br><br>'; $message1 .= 'A très bientôt sur le site!<br>L\'équipe de ' .$nom_site. '.<br><a href="' .$http://fsdownload.ifrance.com/. '">' .$FSDownload. '</a>';
$sql = connect_sql(); $verification = mysql_query("SELECT COUNT(*) FROM pdf_membre WHERE pseudo='$pseudo' OR mail='$mail'") or die (mysql_error()); $donnees = mysql_fetch_array($verification)or die (mysql_error());
if($donnees['COUNT(*)'] >= 1) //On verifie que le pseudo n'existe pas déjà { $reponse = 'Le pseudo ou l\'email est déjà utilisé, merci d\'en choisir un(e) autre. <a href="javascript:history.back(1)">Retour au formulaire</a>'; } else { if( empty($pseudo) || empty($mdp) || empty($verif_mdp) || empty($mail) || empty($nom) || empty($prenom) || empty($born)) //On verifie que les variables précédentes ne soient pas vide { $reponse = 'Un ou plusieurs champs ne sont pas remplis, <a href="javascript:history.back(1)">Retour au formulaire</a>'; } elseif( $mdp != $verif_mdp) { $reponse = 'Les mots de passe ne sont pas identiques, <a href="javascript:history.back(1)">Retour au formulaire</a>'; } else //Si tout est bon on entre les données dans la BDD et on envoye le mail { mysql_query("INSERT INTO pdf_membre VALUES ('','$pseudo', '$mdp', '$mail', '$confirm', '$nom', '$prenom', '$pays', '$born', '$website')"); $reponse = 'Bravo, vous êtes maintenant inscrit sur ' .$nom_site. '. <br>Vous allez recevoir un e-mail pour activer votre compte. <br><a href="' .$url_site. '">Retour à l\'Accueil</a>'; $entete = "MIME-Version: 1.0\r\n"; $entete .= "Content-type: text/html; charset=iso-8859-1\r\n"; $entete .= "From: <$email_admin>\r\n"; $entete .= "Reply-To: $email_admin\r\n"; mail($mail,'Bienvenue sur ' .$nom_site. ' ' . $login .'.' , $message1, $entete); } } mysql_close($sql); //On se deconnecte } else { $reponse = 'Votre adresse e-mail "' . $mail . '" n\'est pas correcte. <a href="javascript:history.back(1)">Retour au formulaire</a>'; }
?>
<html> <body> <? echo $reponse; ?> <!-- On affiche la reponse de tout le code du dessus --> </body> </html>
Merci de votre aide
Ugo
|
|
|
|
|
|
Posté le 17/12/2006 à 15:17 |
Astucien | Hello, c'est bien d'être à fond dedans, mais il faut regarder la sécurité aussi ... Tu fais des injections SQL et ça peut être assez dangereux. un peu de lecture : danger de l'injection SQL ensuite, est-ce que la fonction mail( marche bien ? tu ne lui demandes rien en retour s'il y a eu erreur ... remplace : mail($mail,'Bienvenue sur ' .$nom_site. ' ' . $login .'.' , $message1, $entete);
par : if(mail($mail,'Bienvenue sur ' .$nom_site. ' ' . $login .'.' , $message1, $entete)) { echo "mail parti"; } else { echo "erreur mail"; }
ainsi tu verras si la fonction mail s'effectue correctement ou non. |
|
Posté le 17/12/2006 à 18:30 |
Nouvel astucien
| Merci de ta réponse. J'essaye ça, je vais voir Ugo |
|
Posté le 17/12/2006 à 18:40 |
Nouvel astucien
| Bah, non... Ca marche pas Parse error: syntax error, unexpected ':' in /www/sites/1/ifrance.com/f/s/fsdownload/site/pdf_inscription2.php on line 73 Voila le message que ça me met maintenant... Que faire ? Amicalement, Ugo |
|
Posté le 17/12/2006 à 19:46 |
Astucien | t'as du virer qqch en trop ... |
|
Posté le 17/12/2006 à 20:07 |
Nouvel astucien
| Re-Salut ! J'ai réussi à réparer ce problème, mais, le problème du mail persiste. J'ai trouvé un message m'indiquant une erreur à la ligne 53 du confirm.php Je vois pas ce qui y cloche ! Astuce ? Amicalement, Ugo |
|
Posté le 18/12/2006 à 17:27 |
Astucien | je ne serais pas surpris que cette ligne soit en cause : echo '<p>Pour retournez à la page d\'accueil cliquez <a href="' .$http://fsdownload.ifrance.com/. '">ici</a>.</p>';
les // de l'url faisant office de commentaire en php ... à remplacer par : echo '<p>Pour retournez à la page d\'accueil cliquez <a href="http://fsdownload.ifrance.com/">ici</a>.</p>';
(s'il s'agit bien de ça,car dans le fichier que tu indiques, il n'y a pas 53 lignes) |
|
Posté le 18/12/2006 à 17:34 |
Nouvel astucien
| Bonjour. Merci de ta réponse. Je me suis trompé, c'est à la ligne 53 du pdf_inscription2.php Je cherche encore et toujours : Amicalement Ugo |
|
Posté le 18/12/2006 à 18:02 |
Astucien | ma remarque est pareille pour cette ligne : $message1 .= 'A très bientôt sur le site!<br>L\'équipe de ' .$nom_site. '.<br><a href="' .$http://fsdownload.ifrance.com/. '">' .$FSDownload. '</a>';
à remplacer par : $message1 .= 'A très bientôt sur le site!<br>L\'équipe de ' .$nom_site. '.<br><a href="http://fsdownload.ifrance.com/">' .$FSDownload. '</a>';
autrement tes accolades ont l'air justes... |
|