Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    89

    Semplice controllo pre-invio e-mail

    nel mio documento php che invia le mail da un form volevo inserire un banale controllo che evitasse che uno che apre direttamente il file php dall'url potese inviare una mail.

    Avevo pensato di vedere se uno dei campi del form non era compilato (cioè se una delle variabili non era definita) e a quel punto inviare o no.
    Il codice che avevo pensato è una cosa del genere

    if(isset($_Post['Nome_Società']))
    {mail();
    echo "...";}
    else
    {echo"...";}

    secondo voi ci sono errori a livello teorico (ora non mi interessa sapere se ci sono metodi migliori, mi interessa capire perchè non va).
    Se l'idea è giusta poi posto il codice intero così analizziamo se per caso da teoria a pratica ho fatto qualche cavolata

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    570
    in linea di massima va bene, volendo puoi mettere anche un controllo sull'http_referer, ma non è attendibile.

    ricordati di fare controllo sui contenuti delle variabili prima di utilizzarle.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    89
    infatti ora credo di aver capito dov'è il problema, su altervista il visualizzatore non mostrava le righe con lo stesso contatore di un editor e quindi andavo a guardare su righe che non presentavano errori...

    il problema è un apice che mi blocca il testo...
    allora se io inserisco il testo da scrivere all'interno di '...' se nel messaggio voglio far comparire un'apostrofo devo scrivere /' giusto? analogo se delimito con "..." per inserire le virgolette devo mettere /"?

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    89

    correzione codice

    In realtà mi sono accorto che il codice

    Codice PHP:
    if(isset($_Post['Nome_Società'])) 
    {
    mail(); echo "...";} 
    else 
    {echo
    "...";} 
    presenta un errore, isset funziona solo con le variabili, non con le costanti e $_POST è una costante. Si può quindi utilizzare la funzione define() oppure, come ho fato io, definire una variabile di controllo uguale a $_POST e fare il controllo con quella.

    Inoltre il codice così scritto serve solo per evitare che uno invii la mail bypassando il form, se uno invece non compila il campo e però ha definito un value sull'input di controllo la variabile sarà ugualmente definita e la mail sarà inviata ugualmente senza il nome.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    570
    post è un array superglobale veramente, non una costante.
    comunque puoi fare un semplice array_key_exist per controllare che il dato sia presente.

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    89
    si hai ragione, intendevo dire che utilizzando isset non funziona, da sempre FALSO

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.