Une mailing liste et une base de données

Manhemann
Invité n'ayant pas de compte PHPfrance

04 mars 2007, 20:15

Bonjour,
j'ai trouvé un script qui me permet de récupérer une adresse mail d'une personne qui souhaite recevoir des informations sur mon site :
L'interface d'inscription de fait à partir de flash :
voici le script php :
<?

// Récuperation des variables qui ont été envoyé en méthode post.
$varemail = $_POST['email']; 
//$message=$HTTP_POST_VARS['texte'];

// Fonction pour parser les variables vers FLASH

function Parse($variable,$valeur) {
   echo "&" . $variable . "=" . utf8_encode(urlencode($valeur));
}

// Envoi du message

        $mail_OK= mail("mon adresse mail", "Newsletter", $varemail) ;

// Retour vers flash pour dire que le mail est envoyé ou non.

        if ($mail_OK == 1) {
           Parse ("ok","1") ; // Tout c'est bien passé, le message a été envoyé.
        } else {
           Parse ("ok","0") ; // problème dans l'envois du mail
        }
//This function reads any file and spits out its contents in the return
function readTextFile($file){
    if(!($fp=@fopen($file,"r"))) return false;

    //Read the file
    $fileContent="";
    while (!feof($fp)) {
        $fileContent.= fgets($fp, 1024);
    }//End while loop

    //Close the file
    if(!fclose($fp)) return false;

    return($fileContent);
}//End function

//Plain text email sending function
function sendMsg($to, $toEmail, $sub, $msg, $from, $fromEmail) {
    //Compose headers for plain text email
    $headers = "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";
    $headers .= "X-Mailer: PHP/".phpversion()."\r\n"; //The mailer name
    $headers .= "From: ".$from."<".$fromEmail.">\r\n";
    $headers .= "Reply-to: ".$from."<".$fromEmail.">\r\n";
    
    //Compose recipient
    $recipient = empty($to) ? $toEmail : $to."<".$toEmail.">";
    return mail($recipient, $sub, $msg, $headers);
}//End function

//Cleans up a string by trimming it
//if magic_quotes are on.. then stripslashes as well
function cleanUpData($data){
    $data=trim($data);
    if(get_magic_quotes_gpc()){
        $data=stripslashes($data);
    }//End if
    return($data);
}//End function
//The subject line
    $subject = "Inscription au module interactif de sciences physiques";
    
    //Change this to your information
     $ourName = "Visiteur du site";
	$ourName = "mon nom";
    $ourEmail = "mon adresse mail";


    //Open the template files
    $toSenderMsg = readTextFile("senderThanks.txt");
    //Replace in-built variables in the senderThanks.txt file
    $toSenderMsg = str_replace("{greetings}", empty($name) ? "Bonjour!" : "Cher ".$name.",", $toSenderMsg);
    $toSenderMsg = str_replace("{date}", date("m/d/Y"), $toSenderMsg);
    $toSenderMsg = str_replace("{message}", $message, $toSenderMsg);

    
       
      //Send a copy the website user
    sendMsg($name, $email, $subject, $toSenderMsg, $ourName, $ourEmail);

   
   

?>
J'aimerai que lorsqua la personne s'incrivent que son adresse mail soit enregistrée dans une base de donnée.
Et j'aimerai que l'on puisse vérifier si cette adresse est dejà dans la base de donnée.
Quelqu'un peut-il me donner quelques pistes ?
Merci.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

05 mars 2007, 10:30

Modération : Manhemman, il faut cliquer sur [Répondre], pas [Nouveau] ;)

Ci-dessous, le contenu de ta reponse :
voilà j'ai trouvé :
<?php
$dbhost =".........";
$dbusername = "...................."; 
$dbuserpassword = ".................";
$dbname = "......................"; 


$link = mysql_connect ($dbhost, $dbusername, $dbuserpassword);
if (!$link) {
	echo "&result=noconnection";
} else {
	mysql_select_db($dbname);
}
function Parse($variable,$valeur) {
   echo "&" . $variable . "=" . utf8_encode(urlencode($valeur));
}

$email = $_POST['email']; 

$sql = "SELECT mail FROM newsletter WHERE mail='$email'";
$res = mysql_query($sql);
if(mysql_num_rows($res)!=0)
 Parse ("save","exist") ;
else
{

$sql = "INSERT INTO newsletter (mail) VALUES ('$email')";
if(mysql_query($sql)) 
Parse ("save","ok") ;

else  Parse ("save","error") ;
}
 
?>
J'aimerai maintenant envoyer un mail de confirmation en combinant avec la première page php postée.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 37 Messages

05 mars 2007, 14:45

Désolé pour mon erreur.
Est-ce qu'il y a des erreurs dans ma page en php ?