suggerimento su invio mail dopo click

  • Creatore Discussione Creatore Discussione rinek
  • Data di inizio Data di inizio

rinek

Nuovo Utente
31 Ago 2009
3
0
0
Ciao a tutti, ho approntato una soluzione (sicuramente errata) e dunque il mio problema è questo:
vorrei che l'utente dopo il click su uno specifico link ricevesse una mail; così ho creato un file php che elabora ed invia la mail, e tutto funziona... il problema è che la mail viene inviata 2 volte, sia al click sul link, ma sia anche al caricamento della pagina dove è presente il link.

il file di invio mail che ho creato (invitemail.php) e che viene richiamato dal link è questo:

if(!isset($_GET[('<a href="invite.php?ref_uid=').("$member_id").('">Aggiungi '.("$members_username").' agli amici</a>')])) {
//Step 1 - Get Owner of Video's User ID
$sql = "SELECT * FROM member_profile WHERE user_id = $member_id";
$query = mysql_query($sql);
$result = mysql_fetch_array($query);
$mem_id = $result['user_id'];

//Step 2 - Get video owners email address
$sql = "SELECT * FROM member_profile WHERE user_id = $mem_id";
$query = mysql_query($sql);
$result = mysql_fetch_array($query);
$mem_email = $result['email_address'];
$mem_name = $result['user_name'];

if (notification_preferences($mem_id, "friendsinvite") == true) {//check users preferences

//send email --------resuable------------------------------------->>
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
$email_template = 'email_templates/invitemessage_internal2.htm';
$subject = $config["email_invite"];
$to = $mem_email;
$from = $config['notifications_from_email'];

//send email template to TBS for rendering of variable inside
$template = $email_template;
$inner_template1 = "templates/inner_email_compose.htm";//middle of page
$inner_template2 = "";// bottom of page
$TBS = new clsTinyButStrong;
$TBS->NoErr = true;// no more error message displayed.
$TBS->LoadTemplate("$template");
$TBS->tbs_show(TBS_NOTHING);
$message = $TBS->Source;

//load postage.php
include ('postage.php');
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
}
}

Nel file php dove invece viene specificata la variabile del link ho inserito:
$frnd = ('<a href="invite.php?ref_uid=').("$member_id").('">Aggiungi '.("$members_username").' agli amici</a>');
include_once ('invitemail.php');
}

Come si può evitare che la mail parta anche al caricamento della pagina, invece che venga spedita solo al click del link?

Grazie 1000 in anticipo!
 
Una volta ho avuto un problema simile...Ho risolto tutto modificando il file php in modo che contenesse una funzione che effettuava il compito specifico (nel tuo caso inviare l'email) e all'inizio un if che effettuato un test di validità richiamava tale funzione.

Il file invitemail.php è completo o lo script che hai postato viene richiamato in una funzione?

Ciro
 
Grazie lotus per la risposta!
Ora ho risolto includendo il codice presente nell' invitemail.php nel file invite.php che viene richiamato dal link ( <a href="invite.php?ref_uid=.....).

Tutto ok :fonzie:
 

Discussioni simili