JeuWeb - Crée ton jeu par navigateur
Script d'inscription, envoi mail - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Script d'inscription, envoi mail (/showthread.php?tid=1454)

Pages : 1 2


Script d'inscription, envoi mail - Dexyne - 09-10-2010

Voilà voilà,

J'ai repris un script sur l'inscription et l'envoi du mail mais bizarrement le mail ne s'envoi pas, tout le reste fonctionne bien sinon.
Dans la vidéo du gars ça fonctionne (il utilise Gmail) mais pas avec moi xD (j'utilise Gmail aussi).

Voilà le script en question :


<?php

session_start();
if(!empty($_SESSION['membre']))
{
header('Location: index.php');
}

if(!empty($_POST))
{
extract($_POST);
$valid = true;

if(empty($nom))
{
$valid = false;
$erreurnom = 'Indiquez votre nom';
}

if(!empty($nom) && strlen($nom)<3)
{
$valid = false;
$erreurnom = '3 caractères minimum';
}

if(empty($email))
{
$valid = false;
$erreuremail = 'Indiquez votre e-mail';
}

if(!empty($email) && filter_var($email,FILTER_VALIDATE_EMAIL)===FALSE)
{
$valid = false;
$erreuremail = 'Adresse e-mail invalide';
}

try{
$bdd = new PDO('mysql:host=localhost;dbname=tuto', 'root', '') or die(print_r($bdd->errorInfo()));
$bdd->exec('SET NAMES utf8');
}

catch(Exeption $e){
die('Erreur:'.$e->getMessage());
}

$req = $bdd->prepare('SELECT id FROM membre WHERE login=:nom');
$req->execute(array('nom'=>$nom));
if($req->rowCount()>0)
{
$valid = false;
$erreurid = 'Ce pseudo est déjà pris';
}

$req = $bdd->prepare('SELECT id FROM membre WHERE email=:email');
$req->execute(array('email'=>$email));
if($req->rowCount()>0)
{
$valid = false;
$erreurid = 'Cette adresse e-mail est déjà utilisée par un membre';
}
$req->closeCursor();

if($valid)
{
$hash = md5(rand(0,1000));
$pass = rand(1000,5000);

$to = $email;
$subject = 'Inscription|Validation';
$message = 'Merci pour votre inscription sur monsite.com!<br />
Vous pourrez vous connecter sur le site après avoir cliqué sur le lien d\'activation ci-dessous.<br />
Voici vos identifiants, nous vous recommandons de changer le mot de passe.<br />
Login : '.$nom.'<br />
Mot de passe : '.$pass.'<br />
Cliquez sur le lien suivant pour activer votre compte<br />
<a href="http://localhost/tutos/signup/verif.php?email='.$email.'&hash='.$hash.'">http://localhost/tutos/signup/verif.php?email='.$email.'&hash='.$hash.'</a>';

$headers = 'From:noreply@monsite.com'."\r\n";
$headers.='MIME-version: 1.0'."\r\n";
$headers.='Content-type: text/html; charset=utf-8'."\r\n";
mail($to,$subject,$message,$headers);

$req = $bdd->prepare('INSERT INTO membre (login,pass,email,hash) VALUES (:nom,:pass,:email,:hash)');
$req->execute(array(
'nom'=>$nom,
'pass'=>sha1($pass),
'email'=>$email,
'hash'=>$hash
));

$req->closeCursor();
$ok = 'Inscription réussie, vous allez recevoir un e-mail';
unset($nom);
unset($email);
}
}

?>
<!DOCTYPE html>
<html lang="en">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="style.css" media="screen" />
<head>
<title></title>
</head>
<body>
<div id="header">
</div>

<div id="wrap">
<?php if(isset($erreurid)) echo '<div class="erreurid">'.$erreurid.'</div>';?>
<?php if(isset($ok)) echo '<div class="ok">'.$ok.'</div>';?>
<h3>Inscrivez-vous</h3>
<p>Entrez votre nom et votre e-mail svp</p>
<form action="inscription.php" method="post">

<label for="nom">Nom :</label>
<input type="text" name="nom" value="<?php if(isset($nom)) echo $nom;?>" />
<div class="error"><?php if(isset($erreurnom)) echo $erreurnom;?></div>

<label for="email">Votre E-mail :</label>
<input type="text" name="email" value="<?php if(isset($email)) echo $email;?>" />
<div class="error"><?php if(isset($erreuremail)) echo $erreuremail;?></div>

<input type="submit" class="submit_button" value="Envoyer" />

</form>
<p><a href="index.php">Revenir à l'accueil</a></p>
</div>
</body>
</html>

Voilà donc si vous trouvez le "soucis" ou si vous avez une autre solution d'envoi du mail parce que c'est le seul truc qui me bloque là XD.

PS: Je ne compte pas utiliser ce script dans cette état, je prévois pas mal de modifications.

Cordialement,

Dex'


RE: Script d'inscription, envoi mail - gameprog2 - 09-10-2010

Salut, c'est normal que cette partie là apparaisse en grisé ? :

Citation ://localhost/tutos/signup/verif.php?email='.$email.'&hash='.$hash.'</a>';

Oui je sais il y a le // mais la balise <a> n'est pas fermée dans ces conditions, ça va quand même ?


Là aussi la couleur donnée par la balise code n'est pas normale, il doit y avoir un truc dans ton code qui va pas dans la syntaxe :

Citation :$message = 'Merci pour votre inscription sur monsite.com!
Vous pourrez vous connecter sur le site après avoir cliqué sur le lien d\'activation ci-dessous.



RE: Script d'inscription, envoi mail - Kassak - 09-10-2010

Tu es en local ?

Si oui il faut configurer le smtp dans le php.ini Wink


RE: Script d'inscription, envoi mail - djidi - 09-10-2010

Ce n'est qu'une erreur de la coloration syntaxique du forum qui n'aime pas que la variable soit écrite sur plusieurs lignes.
Du coup, il crois que le // est un commentaire alors qu'il se trouve dans la variable $message.
Pour PHP ca ne changera rien, il considèrera ca comme une seule instruction et ca fonctionnera.


RE: Script d'inscription, envoi mail - gameprog2 - 09-10-2010

OK merci de la précision Wink
Merci à Dexyne, j'avais besoin de ce genre de script aussi Wink


RE: Script d'inscription, envoi mail - Dexyne - 09-10-2010

Han ok configurer le smtp, il l'explique pas le gars dans la vidéo je crois.

Mais vu qu'il utilise wamp et moi je suis sous linux donc j'ai pas de programme particulier bah ça doit pas se faire XD
Si ça se trouve sous windows ça marche très bien via wamp, j'aurais dû tester tiens.

'Fin merci de vos réponses je vais voir pour le smtp dans ce cas. Smile

Sinon oui moi aussi j'ai vu quelques trucs pas comme dans mon code mais la coloration du forum n'est pas exacte, si tu regardes il s'arrête au apostrophe malgré que ce soit " \' " donc bon :p.


RE: Script d'inscription, envoi mail - niahoo - 10-10-2010

il te faut configurer ton serveur SMTP local (postfix je crois) ou dire à PHP d'utiliser /usr/bin/sendmail pour l'envoi de mail. bon je me souviens plus trop, j'avais réussi après quelques recherches sur google c'est pas trop compliqué si je me souviens bien.


RE: Script d'inscription, envoi mail - Anthor - 10-10-2010

(10-10-2010, 12:46 AM)niahoo a écrit : il te faut configurer ton serveur SMTP local (postfix je crois) ou dire à PHP d'utiliser /usr/bin/sendmail pour l'envoi de mail. bon je me souviens plus trop, j'avais réussi après quelques recherches sur google c'est pas trop compliqué si je me souviens bien.

Effectivement postfix ou alors juste un "mailx", c'est pas du lourd mais suffisant pour l'envoi classique de mails.

Code :
apt-get install mailx



RE: Script d'inscription, envoi mail - Dexyne - 10-10-2010

Merci encore mais pour postfix il me met une erreur comme quoi il est mal installer, et si je veux le ré-instalelr il me met l'erreur, et pareil pour installer quoi que ce soit en rapport avec lui (même la doc !).
Donc la je suis bloquer pour postfix XD

Je vais regarder mailx un peu pour voir si ça peut me dépanner. J'aimerais bien que ça fonctionne que je puisse faire mes test et autres XD.

EDIT: En faite tout ce que j'installe en rapport au mail bug avec E: erreur 75 je crois ('fin c'est un peu plus long la ligne d'erreur mais bon), dois-je désinstaller postfix pour installer mailx ou autre ?


RE: Script d'inscription, envoi mail - Anthor - 10-10-2010

On ne peux pas t'aider avec une erreur du genre "E: erreur 75 je crois" ^^