Espansione serverfarm: siglato accordo per raddoppio banda!


1 utente stanno visualizzando questa discussione: (0 membri, e 1 visitatore).
 
Valutazione discussione:
  • 0 voti - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
Modulo da sito
19-11-2009, 20:56
Messaggio: #18
RE: Modulo da sito
come promesso, ho buttato giù qualche riga di codice.
Non l'ho provato a fondo ed è possibile che qualche bug/svista sia presente. Quindi, a fronte del suo libero utilizzo, lo rilascio con la formula "as it", senza garanzie di sorta. Se avete richieste, dubbi o poposte, postatele pure... nel possibile, vedrò di accontentarvi.
Infine, un link a ToyTomato.net: http://toytomato.net è gradito, ma non obbligatorio.


Codice PHP:
<?php

$mail_to     
=    '';
$thanks_url     =    '';

@
date_default_timezone_set'Europe/Rome' );

//----------------------------------------

error_reporting);

if( ( 
count$_POST ) + count$_GET ) ) == )
    die( 
'This form handler does nothing when visited directly. You must submit form data to this script.' );

if( empty( 
$mail_to ) || !filter_var$mail_toFILTER_VALIDATE_EMAIL ) )
    die( 
'You must edit this script and set the appropriate values for $mail_to.' );

$fields     =    count$_POST ) > array_change_key_case $_POSTCASE_LOWER ) : array_change_key_case $_GETCASE_LOWER ); 
$fields     =    array_map'urldecode'$fields );
$fields     =    array_map'trim'$fields );

if( isset( 
$fields['redirect'] ) && !empty( $fields['redirect'] ) ) {
    if( 
filter_var$fields['redirect'], FILTER_VALIDATE_URLFILTER_FLAG_SCHEME_REQUIRED ) )
        
$redirect     =    filter_var$fields['redirect'], FILTER_SANITIZE_URL );
    else
        die( 
'Redirect value appears to be an invalid URL.' );
} else if( !empty( 
$thanks_url ) && filter_var$thanks_urlFILTER_VALIDATE_URLFILTER_FLAG_SCHEME_REQUIRED ) ) {
    
$redirect     =    $thanks_url;
}

if( isset( 
$fields['subject'] ) && !empty( $fields['subject'] ) && !strpos$fields['subject'], "\n" ) )
    
$subject     =    filter_var$fields['subject'], FILTER_SANITIZE_STRINGFILTER_FLAG_STRIP_LOW FILTER_FLAG_STRIP_HIGH );
else
    
$subject     =    date'r' );

if( isset( 
$fields['email'] ) && !empty( $fields['email'] ) && !strpos$fields['email'], "\n" ) && filter_var$fields['email'], FILTER_VALIDATE_EMAIL ) )
    
$address     =    filter_varurldecode$fields['email'] ), FILTER_SANITIZE_EMAIL );
else
    die( 
'Your email address doesn\'t appear to be valid.' );

if( isset( 
$fields['name'] ) && !empty( $fields['name'] ) && !strpos$fields['name'], "\n" ) )
    
$username     =    filter_var$fields['name'], FILTER_SANITIZE_STRINGFILTER_FLAG_STRIP_LOW FILTER_FLAG_STRIP_HIGH );
else
    
$username     =    $address;

unset( 
$fields['redirect'], $fields['subject'], $fields['email'], $fields['name'] );

$headers     =    array(
    
'From: ' $username ' <' $address '>',
    
'Reply-To: ' $address,
    
'X-Mailer: PHP/' phpversion()
);

$message     =    '';

foreach( 
$fields as $key => $value )
    
$message    .=    ucfirst$key ) . ': ' filter_var$valueFILTER_SANITIZE_STRINGFILTER_FLAG_ENCODE_LOW FILTER_FLAG_ENCODE_HIGH ) . "\r\n";

if( [email protected]
mail$mail_to$subject$messageimplode"\r\n"$headers ) ) )
    die( 
'Message send failed.' );
else if( isset( 
$redirect ) )
    
header'Location: ' $redirect );
else
    echo 
'Your message has been sent.';

?>

Il funzionamento è analogo a quello postato da Elisabetta, ma con maggiori misure di sicurezza, atte a prevenire spam in uscita.
Gli unici parametri da settare sono in testa allo script e sono le variabili $email_to e $thanks_url, di cui solo la prima obbligatoria.
In $email_to, mettete il vostro indirizzo email, quello a cui volete vengano inviati tutti i messaggi.
$thanks_url serve se volete che l'utente venga indirizzato ad una certa pagina, dopo l'invio (con successo) della mail. In alternativa potete passare il valore "redirect" in query. Entrambi devono essere URL complete tipo http://tuosito.tld
I dati da passare sono:
email: indirizzo email dell'utente (obbligatorio)
name: nome utente (facoltativo)
subject: oggetto del messaggio (facoltativo, se non presente verrà usata la data)
redirect: pagina dove re-indirizzare l'utente una volta inviato il messaggio (facoltativo)
Tutti gli altri valori verranno inseriti nel corpo del messaggio
Ultima nota: funziona sia che passiate i dati in GET che in POST

Credo sia tutto, buon divertimento Big Grin

[email protected] ha i poteri della super mucca
________
: http://it.linkedin.com/in/pirosauro - Website (offline)
Visita il sito web di questo utente Trova tutti i messaggi di questo utente


Messaggi in questa discussione
Modulo da sito - Elisabetta - 18-11-2009, 16:25
RE: Modulo da sito - 1Dan - 18-11-2009, 16:43
RE: Modulo da sito - Elisabetta - 18-11-2009, 16:55
RE: Modulo da sito - 1Dan - 18-11-2009, 17:06
RE: Modulo da sito - Elisabetta - 18-11-2009, 17:18
RE: Modulo da sito - Gandalf - 18-11-2009, 17:19
RE: Modulo da sito - Elisabetta - 18-11-2009, 17:21
RE: Modulo da sito - Elisabetta - 18-11-2009, 17:30
RE: Modulo da sito - Might - 18-11-2009, 17:37
RE: Modulo da sito - Elisabetta - 18-11-2009, 19:09
RE: Modulo da sito - SbiellONE - 18-11-2009, 20:35
RE: Modulo da sito - Elisabetta - 18-11-2009, 20:51
RE: Modulo da sito - Gandalf - 18-11-2009, 23:46
RE: Modulo da sito - Pirosauro - 19-11-2009, 00:00
RE: Modulo da sito - Gandalf - 19-11-2009, 00:05
RE: Modulo da sito - Pirosauro - 19-11-2009, 00:20
RE: Modulo da sito - Gandalf - 19-11-2009, 00:24
RE: Modulo da sito - Pirosauro - 19-11-2009 20:56
RE: Modulo da sito - Gandalf - 19-11-2009, 21:31
RE: Modulo da sito - Pirosauro - 19-11-2009, 21:32
RE: Modulo da sito - Gandalf - 19-11-2009, 23:22
RE: Modulo da sito - Pirosauro - 19-11-2009, 23:45
RE: Modulo da sito - Gandalf - 19-11-2009, 23:45

Altri utenti che stanno visualizzando questa discussione

1 utente stanno visualizzando questa discussione: (0 membri, e 1 visitatore).
 
Discussioni correlate...
Discussione: Autore Risposte: Letto: Ultimo messaggio
  Nuovo sito PHP peppe20x 1 11.249 18-12-2009 02:03
Ultimo messaggio: Gandalf
 
Vai al forum:


Permessi di scrittura
Non puoi inserire nuove discussioni.
Non puoi inserire risposte.
Non puoi inserire allegati.
L' HTML è disattivato.
Il MyCode è attivato.
Le faccine sono attivato.
Il codice [img] è attivato.