Page 1 sur 1

Problème de syntaxe

Posté : 09 avr. 2007, 23:01
par dunbar
Bonjour,

Je travail sur un mail pour confirmer une inscription mais je me retrouve avec unproblème de syntaxe je n'ais pas d'erreur mais je ne reçois pas les valeurs des $variable.
$message = '
                                Bonjour '.$pseudo.'<br/>
                                Vous venez de vous inscrire sur '.$namewebsite.' et pour valider votre inscription, vous devez cliquer : '.$web.
''.$code_confirmation.'&pseudo='.$pseudo.'>sur le lien suivant</a>';

                                    //Si le mail a été envoyé on peut enregistrer le membre
                                    if (mail($email, 'Confirmation de l\'inscription sur ','".$namewebsite."'.'".$message."'))
                                    {
D'avance merci

Posté : 09 avr. 2007, 23:40
par Ryle
d'où viennent tes variables $pseudo, $namewebsite, etc. ? ca manquerait pas de $_GET ou $_POST des fois ?

Par ailleurs, c'est un peu du n'importe quoi tes chaines et tes paramètres passés dans la fonction mail() ;) Pour rappel :
- Une variable passée entre guillemets est interprétée
- Une variable passée entre apostrophes n'est pas interprétée
- Une variable n'a pas besoin d'être passée entre guillemets pour avoir une valeur

Prépare ton objet avant comme ton message, ca sera beaucoup plus simple pour les lire et les utiliser :
$objet = 'Confirmation de l\'inscription sur ' . $namewebsite;
$message = 'Bonjour ... ';

if (mail($email, $objet, $message)) ... 

Posté : 10 avr. 2007, 17:11
par dunbar
Salut
$pseudo est = $_POST['pseudo'];
$namewebsite = 'dunbar.be'
$web = '<a href="http://localhost/testzero/confirmation.php?code=">Merci de cliquez ici</a>';

Le but de mes $variable est de pouvoir modifier le mail à partir du fichier config pour ne pas devoir aller f-dans les fichiers et modifier le code.
J'ai aussi un problème à vouloir faire en sorte que sur le mail s'affiche la $variableAsuivi de la $variableB
exemple url+plus le code deconfirmation.
Mon fichier complet ci-dessous merci de ne pas me démolire je test je ferais une mise en forme après :wink:
<?php
?>
<html>
        <head>
                <title>Inscription</title>
        </head>
        <body>
                <form method="post" action="inscription.php">
                        <label for="pseudo">Pseudo : <input type="text" name="pseudo" id="pseudo" /> (Entre 3 et 35 caractères)</label><br />
                        <label for="mot_passe">Mot de passe : <input type="text" name="mot_passe" id="mot_passe" /> (Au moins 4 caractères)</label><br />
                        <label for="email">Email : <input type="text" name="email" id="email" size="30" /></label><br />
                        <input type="submit" name="inscription" value="S'inscrire" />
                </form>
        </body>
</html>
<?php
//Identifiants de connexion à la base de données.
require("config.inc.php");

//Connexion à la base de données.
mysql_connect($host,$username,$password);
mysql_select_db($bdd_name);

//On vérifie que la variable $_POST['inscription'] existe
if (isset($_POST['inscription']))
{
        //Si les variables contenant le pseudo, le mot de passe et l'email existent et contiennent quelque chose.
        if (!empty($_POST['pseudo']) && !empty($_POST['mot_passe']) && !empty($_POST['email']))
        {
                //Si le pseudo est supérieur à 3 caractères et inférieur à 35 caractères.
                if (strlen(trim($_POST['pseudo'])) > 3 && strlen(trim($_POST['pseudo'])) < 35)
                {
                        //Si le mot de passe est supérieur à 4 caractères.
                        if (strlen(trim($_POST['mot_passe'])) > 4)
                        {
                                //Mesure de sécurité.

                                $pseudo    = htmlspecialchars($_POST['pseudo']);
                                $mot_passe = htmlspecialchars($_POST['mot_passe']);
                                $email     = htmlspecialchars($_POST['email']);

                                //On vérifie que le pseudo n'existe pas.
                                $sql = mysql_query("SELECT COUNT(*) AS nb_pseudo FROM membres WHERE pseudo='".$pseudo."'");
                                if (mysql_result($sql, 0, 'nb_pseudo') == 0)
                                {
                                     //Hashage du mot de passe avec md5().
                                     $mot_passe = md5($mot_passe);

                                     //Génération du code de confirmation.
                                     $lettres_chiffres = 'abcdefghijklmnopqrstuvwxyz0123456789';
                                     $lettres_chiffres_melanges = str_shuffle($lettres_chiffres);
                                     $code_confirmation = substr($lettres_chiffres_melanges, 1, 10);

                                     //Envoi du mail de confirmation.

                                     $objet = 'Confirmation de l\'inscription sur ' . $namewebsite;
                                     $message = 'Bonjour '.$pseudo.'<p>
                                     Vous venez de vous inscrire sur '.$namewebsite.' et pour valider votre inscription,
                                     vous devez cliquer : '($web, $code_confirmation)'&pseudo='.$pseudo.'>sur le lien suivant</a></p>';
                                     if (mail($email, $objet, $message))



                                    //Si le mail a été envoyé on peut enregistrer le membre

                                    {
                                         //On éxécute la requête qui enregistre un nouveau membre.
                                         mysql_query("INSERT INTO membres (pseudo, mot_passe, confirmation, email, confirmation_code) 
VALUES ('".$pseudo."', '".$mot_passe."', '0', '".$email."', 
'".$code_confirmation."')");
                                         echo 'Message : votre compte a bien été créé ! Un e-mail vient de vous être envoyé contenant un lien de confirmation de votre inscription.';
                                   }
                                   else
                                   {
                                         echo 'Erreur : echec lors de l\'envoi du mail ! veuillez vous ré-inscrire';
                                   }
                               }
                               else
                                   echo 'Erreur : le pseudo existe déjà !';
                        }
                        else
                                echo 'Erreur : le mot de passe est trop court !';
                }
                else
                        echo 'Erreur : le pseudo est soit trop court, soit trop long !';
        }
        else
                echo 'Erreur : vous avez oublié d\'entrer votre pseudo ou votre mot de passe ou votre adresse email !';
}

//Déconnection de la base de données.
mysql_close();


?>
D'avance merci