Pagina 1 di 1
Mandare una mail prima dell'iscrizione
Inviato: 07/11/2012, 18:18
da digreo
Per evitare la registrazione automatica vorrei che gli utenti mi mandassero prima una mail per richiedermi l'iscrizione!
Quindi, da ucp.php?mode=register e in particolare nel template ucp_agreement.html ho inserito un form per mandarmi la mail.
L'azione del form è verso una pagina creata da me, chiamata send.php e posta nella root del forum; con il seguente codice:
Codice: Seleziona tutto
<?php
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
$user->session_begin();
$auth->acl($user->data);
$user->setup();
$email_to="info@digreo.it"; // Indirizzo del destinatario
$words="Messaggio inviato da DIGREO.it"; // Parole aggiuntive da inserire nell'email
$name=$_POST['name'];
$surname=$_POST['surname'];
$city=$_POST['city'];
$occupatio=$_POST['occupatio'];
$emails=$_POST['emails'];
$request=$_POST['request'];
function res_req(){
if(($name == "")|($surname == "")|($city=="")|($request=="")|($occupatio=="")){
echo "<center>".$user->lang['WRONG_REQ']."</center><br />";
echo "<center><b><a href='javascript:history.back();'>".$user->lang['BACK']."</a></b></center>";
}
elseif(($emails!="")&!(ereg("([[:alnum:]\.\-]+)(\@[[:alnum:]\.\-]+\.+)",$emails))){
echo "<center>".$user->lang['WRONG_EMAIL']."</center><br />";
echo "<center><b><a href='javascript:history.back();'>".$user->lang['BACK']."</a></b></center>";
}
else{
if(!(empty($emails))) $from="From: $emails\r\nReply-to: $emails\r\n";
else{
$emails="empty@emails.empty";
$from="From: $emails\r\nReply-to: $emails\r\n";
}
$message=$words."\n\n";
$message.= "".$user->lang['NAME'].": ".$name."\n";
$message.="".$user->lang['SURNAME'].": ".$surname."\n";
$message.="".$user->lang['CITY'].": ".$city."\n";
$message.="".$user->lang['OCCUPATIO'].": ".$occupatio."\n";
$message.="".$user->lang['USERNAME'].": ".$request;
$message=stripslashes($message);
mail($email_to,$message,$from);
echo "<center>".$user->lang['POST']." ".$user->lang['POSTED']."!<br />".$user->lang['REQ_STAY']."</center>";
}
}
$template->assign_var('REQUEST_RES', res_req());
page_header($user->lang['SEND_REQ']);
$template->set_filenames(array(
'body' => 'sendreq.html')
);
page_footer();
?>
Il file template sendreq.html dovrebbe stampare soltanto la var (function).
Il problema è che non manda alcuna mail e sul template non si vede stampato niente!
Dov'è il problema? Come potrei realizzare meglio questa funzione?
Grazie infinite!
Re: Mandare una mail prima dell'iscrizione
Inviato: 10/11/2012, 15:29
da digreo
Mi dareste una mano per implementare la funzione di inviare una mail prima dell'iscrizione e naturalmente ad una casella di posta che non fa parte del forum (visto che ho disabilitato agli ospiti di inviare le mail agli utenti!)?
Cosa sbaglio nel codice sopra riportato?
Re: Mandare una mail prima dell'iscrizione
Inviato: 17/11/2012, 17:44
da digreo
Per favore ditemi cosa c'è di sbagliato.. non stampa nulla nonostante gli allert funzionano!
Questo è il codice della pagina action php
Codice: Seleziona tutto
<?php
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : '../';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
$user->session_begin();
$auth->acl($user->data);
$user->setup();
$dgr_email_to= "info@digreo.it";
$dgr_words= "Messaggio inviato da DIGREO.it";
$dgr_name= $_POST['d_name'];
$dgr_surname= $_POST['d_surname'];
$dgr_city= $_POST['d_city'];
$dgr_occupatio= $_POST['d_occupatio'];
$dgr_emails= $_POST['d_emails'];
$dgr_request= $_POST['d_request'];
echo "<script type='text/javascript'>alert('$dgr_name');</script>";
function res_req(){
if(($dgr_name == "") | ($dgr_surname == "") | ($dgr_city == "") | ($dgr_occupatio == "") | ($dgr_request == "")){
echo "".$user->lang['WRONG_REQ']."<br />";
echo "<b><a href='javascript:history.back();'>".$user->lang['BACK']."</a></b>";
echo "<script type='text/javascript'>alert('come');</script>";
}
elseif(($dgr_emails != "") &! (ereg("([[:alnum:]\.\-]+)(\@[[:alnum:]\.\-]+\.+)", $dgr_emails))){
echo "".$user->lang['WRONG_EMAIL']."<br />";
echo "<b><a href='javascript:history.back();'>".$user->lang['BACK']."</a></b>";
echo "<script type='text/javascript'>alert('eccome');</script>";
}
else{
if(!(empty($dgr_emails))) $dgr_from="From: $emails\r\nReply-to: $emails\r\n";
else{
$dgr_emails="empty@emails.empty";
$dgr_from="From: $dgr_emails\r\nReply-to: $edgr_mails\r\n";
}
$dgr_message= $dgr_words."\n\n";
$dgr_message.= "".$user->lang['NAME'].": ".$dgr_name."\n";
$dgr_message.= "".$user->lang['SURNAME'].": ".$dgr_surname."\n";
$dgr_message.= "".$user->lang['CITY'].": ".$dgr_city."\n";
$dgr_message.= "".$user->lang['OCCUPATIO'].": ".$dgr_occupatio."\n";
$dgr_message.= "".$user->lang['USERNAME'].": ".$dgr_request;
$dgr_message= stripslashes($message);
mail($dgr_email_to,$dgr_message,$dgr_from);
echo "".$user->lang['POST']." ".$user->lang['POSTED']."!<br />".$user->lang['REQ_STAY']."";
echo "<script type='text/javascript'>alert('eccomemai');</script>";
meta_refresh(3, "www.digreo.it");
}
}
$registrami= res_req();
$template->assign_var('REQUEST_RES', $registrami);
page_header($user->lang['SEND_REQ']);
$template->set_filenames(array(
'body' => 'sendreq.html')
);
page_footer();
?>
Questo è il form e naturalmente nel template c'è il richiamo alla variabile_template {REQUEST_RES}
Codice: Seleziona tutto
<form action="{BOARD_URL}other/send.php" method="post">
<div class="panel">
<div class="inner">
<h2>{SITENAME} - {L_WORDKEY_ASK}</h2>
<fieldset class="fields2">
<!-- IF ERROR --><dl><dd class="error">{ERROR}</dd></dl><!-- ENDIF -->
<!-- IF L_REG_COND -->
<dl><dd><strong>{L_REG_COND}</strong></dd></dl>
<!-- ENDIF -->
<dl>
<dt><label>{L_NAME}:</label></dt>
<dd><input name="d_name" id="d_name" type="text" style="border:1px solid;" size="35" /></dd>
</dl>
<dl>
<dt><label>{L_SURNAME}:</label></dt>
<dd><input name="d_surname" id="d_surname" type="text" style="border:1px solid;" size="35" /></dd>
</dl>
<dl>
<dt><label>{L_CITY}:</label></dt>
<dd><input name="d_city" id="d_city" type="text" style="border:1px solid;" size="45" /></dd>
</dl>
<dl>
<dt><label>{L_OCCUPATION}:</label></dt>
<dd><input name="d_occupatio" id="d_occupatio" type="text" style="border:1px solid;" size="35" /></dd>
</dl>
<dl>
<dt><label>{L_EMAIL_ADDRESS}:</label></dt>
<dd><input name="d_emails" id="d_emails" type="text" style="border:1px solid;" size="35" /></dd>
</dl>
<dl>
<dt><label>{L_USERNAME}:</label></dt>
<dd><textarea name="d_request" id="d_request" style="border:1px solid; width: 400;" onclick="this.value=''">{L_WORDKEY}</textarea></dd>
</dl>
<hr />
</fieldset>
</div>
<div class="panel">
<div class="inner">
<fieldset class="submit-buttons">
<input type="reset" value="{L_RESET}" name="reset" class="button2" />
<input type="submit" name="submit" id="submit" value=" I N V I @ " class="button1" />
</fieldset>
</div>
</form>
Re: Mandare una mail prima dell'iscrizione
Inviato: 23/11/2012, 12:51
da digreo
UP

Re: Mandare una mail prima dell'iscrizione
Inviato: 08/12/2012, 19:21
da digreo
UP!
Re: Mandare una mail prima dell'iscrizione
Inviato: 24/12/2012, 0:31
da digreo
HEEELP! Non riesco a risolvere questo problema.
Re: Mandare una mail prima dell'iscrizione
Inviato: 26/12/2012, 13:06
da Shanks
Ciao, non è più semplice se attivi l'attivazione degli utenti tramite admin?
Re: Mandare una mail prima dell'iscrizione
Inviato: 26/12/2012, 19:11
da digreo
No perché mi arrivano una infinità di richieste automatiche, nonostante attuo diversi modi per evitarle.
Un'aiutino sul codice?

Grazie infinite!
Re: Mandare una mail prima dell'iscrizione
Inviato: 07/01/2013, 17:22
da digreo
Risolto, c'era un errori plurimi di nome della variabile:
if(!(empty($dgr_emails))) $dgr_from="From: $
emails\r\nReply-to: $
emails\r\n";
else{
$dgr_emails="
empty@emails.empty";
$dgr_from="From: $dgr_emails\r\nReply-to: $
edgr_mails\r\n";
}
...Sto esaurito!
Ho risolto e cambiato tutto, eliminando anche l'assegnazione della variabile (in quanto ho utilizzato il trigger error!) in questa maniera:
Codice: Seleziona tutto
$redirect_url=$_SERVER['HTTP_REFERER'];
$dgr_email_to= "info@dominio.it"; // Indirizzo del destinatario
$dgr_words= "Messaggio inviato da"; // Parole aggiuntive da inserire nell'email
$dgr_name= $_POST['d_name'];
$dgr_surname= $_POST['d_surname'];
$dgr_city= $_POST['d_city'];
$dgr_occupatio= $_POST['d_occupatio'];
$dgr_request= $_POST['d_request'];
$dgr_emails= $_POST['d_emails'];
if(($dgr_name == "") || ($dgr_surname == "") || ($dgr_city == "") || ($dgr_occupatio == "") || ($dgr_request == "")){
meta_refresh(4, $redirect_url);
trigger_error($user->lang['WRONG_REQ'].'<br /><b><a href="'.$redirect_url.'">'.$user->lang['BACK_TO_PREV'].'</a></b>');
}
elseif(($dgr_emails == "") && (ereg("([[:alnum:]\.\-]+)(\@[[:alnum:]\.\-]+\.+)", $dgr_emails))){
meta_refresh(4, $redirect_url);
trigger_error($user->lang['WRONG_EMAIL'].'<br /><b><a href="'.$redirect_url.'">'.$user->lang['BACK_TO_PREV'].'</a></b>');
}
else{
if(!(empty($dgr_emails))) $dgr_from="From: $dgr_emails\r\nReply-to: $dgr_emails\r\n";
else{
$dgr_emails="empty@emails.empty";
$dgr_from="From: $dgr_emails\r\nReply-to: $dgr_emails\r\n";
}
$dgr_subject= $dgr_words." ".$dgr_surname." ".$dgr_name;
$dgr_message= "".$user->lang['NAME'].": ".$dgr_name."\n";
$dgr_message.= "".$user->lang['SURNAME'].": ".$dgr_surname."\n";
$dgr_message.= "".$user->lang['CITY'].": ".$dgr_city."\n";
$dgr_message.= "".$user->lang['OCCUPATION'].": ".$dgr_occupatio."\n";
$dgr_message.= "".$user->lang['USERNAME'].": ".$dgr_request;
$dgr_message= stripslashes($dgr_message);
mail($dgr_email_to, $dgr_subject, $dgr_message, $dgr_from);
meta_refresh(8, append_sid("http://www.digreo.it"));
trigger_error($user->lang['POST']." ".$user->lang['POSTED']."!<br />".$user->lang['REQ_STAY']);
}