Creation d'une alerte mail

Creation d'une alerte mail - PHP - Programmation

Marsh Posté le 16-07-2005 à 12:00:12    

Bonjour à tous,
 
Voilà, j'ai besoins de vos éclairages; j'ai créé un site immobilier et je veux faire une alerte mail pour que mes acheteurs potentiels puissent mettre leurs preferences et recevoir automatiquement un mail lorsqu'un nouveau bien correspondant à leurs critères.
 
J'ai créé une table acheteur et un table preferences et biens.  
 
L'inscription fonctionne très bien mais j'ai un souci avec mon alerte car quelque soit les critères, on reçoit tous les biens de la base de donnée.  
Je n'y comprends rien, si quelqu'un pouvait m'aider. Merci encore pour votre aide. Je vous laisse mon script php pour que vous puissiez l'analyser.
 
<?php require_once('connexion.php'); ?>
<?php
$dateA = date("Y-m-d H:i:s" );
 
//recuperer les donnees du formulaire
$identifiant = isset($_REQUEST["identifiant"]) ? $_REQUEST["identifiant"] : '';
$pass = isset($_REQUEST["pass"]) ? $_REQUEST["pass"] : '';
$civ = isset($_REQUEST["civ"]) ? $_REQUEST["civ"] : '';
$nom = isset($_REQUEST["nom"]) ? $_REQUEST["nom"] : '';
$prenom = isset($_REQUEST["prenom"]) ? $_REQUEST["prenom"] : '';
$email = isset($_REQUEST["email"]) ? $_REQUEST["email"] : '';
$tel = isset($_REQUEST["tel"]) ? $_REQUEST["tel"] : '';
$cp = isset($_REQUEST["cp"]) ? $_REQUEST["cp"] : '';
 
$gestion = isset($_REQUEST["gestion"]) ? $_REQUEST["gestion"] : '';
$type1 = isset($_REQUEST["type1"]) ? $_REQUEST["type1"] : '';
$type2 = isset($_REQUEST["type2"]) ? $_REQUEST["type2"] : '';
$type3 = isset($_REQUEST["type3"]) ? $_REQUEST["type3"] : '';
$type4 = isset($_REQUEST["type4"]) ? $_REQUEST["type4"] : '';
$type5 = isset($_REQUEST["type5"]) ? $_REQUEST["type5"] : '';
$type6 = isset($_REQUEST["type6"]) ? $_REQUEST["type6"] : '';
$type7 = isset($_REQUEST["type7"]) ? $_REQUEST["type7"] : '';
$type8 = isset($_REQUEST["type8"]) ? $_REQUEST["type8"] : '';
$type9 = isset($_REQUEST["type9"]) ? $_REQUEST["type9"] : '';
 
$prixMin = isset($_REQUEST["prixMin"]) ? $_REQUEST["prixMin"] : '0';
$prixfMax = isset($_REQUEST["prixMax"]) ? $_REQUEST["prixMax"] : '0';
$surfMin = isset($_REQUEST["SurfMin"]) ? $_REQUEST["SurfMin"] : '0';
$surfMax = isset($_REQUEST["SurfMax"]) ? $_REQUEST["SurfMax"] : '0';
 
// ci-dessous on ins?re les infos dans particulier acheteur  
$sql = "INSERT INTO particulier_a (pa_id, pa_identifiant, pa_nom, pa_prenom, pa_pass, pa_mail, pa_time) VALUES('','$identifiant','$nom', '$prenom', '$pass','$email','$dateA')";  
$res = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$reqSel = "select max(pa_id) as idNewClient from particulier_a";
$resSel = mysql_query($reqSel);
$rowSel = mysql_fetch_assoc($resSel);
$idNewClient = $rowSel['idNewClient'];
 
//requete pour inserer dans la table preferences
$req = "INSERT INTO preferences (pref_id,pref_type1, pref_type2, pref_type3, pref_type4, pref_type5, pref_type6, pref_type7, pref_type8, pref_type9, pref_mode, pref_min, pref_max, pref_surfMin, pref_surfMax, pref_time) VALUES ('$idNewClient','$type1','$type2','$type3','$type4','$type5','$type6','$type7','$type8', '$type9','$gestion', '$prixMin', '$prixMax','$surfMin', '$surfMax', '$dateA')";
mysql_query($req) or die('Erreur SQL !'.$req.'<br>'.mysql_error());  
 
 
//requete qui compare les donn?es saisies avec celles dans la table biens
$comp = "SELECT * FROM biens WHERE bpa_mode = '$gestion' AND bpa_type='$type1'";
// et ensuite, je vais rajouter ou non des crit?res de s?lection ? ma requ?te suivant les param?tres  
if($type2 != ''){$comp .= " OR bpa_type='$type2' ";}
if($type3 != ''){$comp .= " OR bpa_type='$type3' ";}
if($type4 != ''){$comp .= " OR bpa_type='$type4' ";}
if($type5 != ''){$comp .= " OR bpa_type='$type5' ";}
if($type6 != ''){$comp .= " OR bpa_type='$type6' ";}
if($type7 != ''){$comp .= " OR bpa_type='$type7' ";}
if($type8 != ''){$comp .= " OR bpa_type='$type8' ";}
if($type9 != ''){$comp .= " OR bpa_type='$type9' ";}
 
if($prixMin != '' && $prixMax != ''){$comp .= " OR bpa_tarif>=$prixMin AND"; $comp .= " bpa_tarif<=$prixMax";}
if($prixMin != '' && $prixMax == ''){$comp .= " OR bpa_tarif>=$prixMin";}
if($prixMax != '' && $prixMin == ''){$comp .= " OR bpa_tarif<=$prixMax";}
if($surfMin != '' && $surfMax != ''){$comp .= " OR bpa_superficie>=$surfMin AND"; $comp .= " bpa_superficie<=$surfMax";}
if($surfMin != '' && $surfMax == ''){$comp .= " OR bpa_superficie>=$surfMin";}
if($surfMax != '' && $surfMin == ''){$comp .= " OR bpa_superficie<=$surfMax";}
 
$resp = mysql_query($comp) or die('Flop'.$comp.'<br>'.mysql_error());  
//$pouet = mysql_fetch_assoc($resp);  
//echo "reference des biens qui correspondent : ".$pouet['bpa_ref'];
//if (!$row = mysql_fetch_assoc($resp)){
//}
//else {
while($row = mysql_fetch_assoc($resp)){
    $ref = $row['bpa_ref'];
    $typ = $row['bpa_type'];
    $user = $row['bpa_user'];
    $utilisateur = $row['bpa_pa'];
 //fonction qui envoie le mail avec en corps de texte le lien qui correspond au bien
 // on d?clare les param?tres du mail
 $destinataire = $email;
 $expediteur = "contact@immo-360.com";
 $objet = "ajout de preference sur le site Immo 360";
 $contenu = "<html><body>".
      "<h3><i>Bonjour $civ $nom $prenom</i></h3>".
               "Vous vous ?tes inscrit &agrave; l'alerte mail pour recevoir les biens qui vous correspondent par email<br/>".
               "Vous trouverez ci-dessous des informations qui vont vous int&eacute;resser<br/>".
               "<a href=\"http://immo-360.com/details.php?reference=$ref&idClient=$utilisateur&user=$user\">cliquez ici</a><br/>".
               "reference : $ref c'est un bien de type : $typ<br/>".
               "</body></html>";
 //on envoie le mail
 mail($destinataire, $objet, $contenu, "From: $expediteur\r\nReply-To: $expediteur\r\nContent-Type: text/html; charset=\"iso-8859-1\"\r\n" );
// }
 }?>

Reply

Marsh Posté le 16-07-2005 à 12:00:12   

Reply

Marsh Posté le 16-07-2005 à 12:44:02    

Euh, un mail() dans une boucle, sur le même destinataire ? T'envoies un mail par "bien" là si j'ai bien compris ? C'est pas possible d'en envoyer qu'un seul ?
 
Pour ton soucis, déjà fait un echo $comp avant ton mysql_query, vérifie que la requête est bonne. Si elle semble bonne, alors après faudra voir par rapport au contenu de ta table.
 
Sinon, plus rien à voir mais tu peux remplacer :

Code :
  1. $reqSel = "select max(pa_id) as idNewClient from particulier_a";
  2. $resSel = mysql_query($reqSel);
  3. $rowSel = mysql_fetch_assoc($resSel);
  4. $idNewClient = $rowSel['idNewClient'];

par

Code :
  1. $idNewClient = mysql_insert_id();


 
edit: et puis pas grand chose à voir non plus mais spa très sécurisé tout ça, va faire un tour du côté de :
http://fr2.php.net/mysql_real_escape_string


Message édité par sielfried le 16-07-2005 à 12:46:30

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed