Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 21
  1. #11
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    96
    in che senso scusa? nel primo caso ti controlla che ci sia nell'uno o nell'altro, il secondo se in entrambi. Ma ti uscirà sempre il primo perché almeno in uno dei due lo troaverà...

  2. #12
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    96
    piuttosto fai

    if(preg_match("/[§ç!°£$%&\|\/\(\)\=\?\^\[\]\+\*#-\.,;]/i",$mittente) and
    preg_match("/[§ç!°£$%&\|\/\(\)\=\?\^\[\]\+\*#-:\.,;]/i",$messaggio)){
    echo "Se uno E l'altro";
    }
    elseif(preg_match("/[§ç!°£$%&\|\/\(\)\=\?\^\[\]\+\*#-:\.,;]/i",$mittente) or
    preg_match("/[§ç!°£$%&\|\/\(\)\=\?\^\[\]\+\*#-:\.,;]/i",$messaggio)){
    echo "Se uno O l'altro";
    }
    else{
    echo "nessuno dei due";
    }

    se cambi l'ordine di controllo dovrebbe funzionare...

  3. #13
    vi ringrazio, si cambiando l'ordine funziona, però perdonatemi.. ma se ho solo questo controllo funziona benissimo,se integrato con quello postato all'inizio non funziona.
    Se controllo con preg_match il mittente e basta.. funziona tutto ma,
    se voglio controllare sia il mittente che l'email,per es, ed
    inserisco i dati giusti mi restituisce sempre l'errore del controllo con preg_match... sto diventando scemo...
    questo è il controllo con implementato preg_match:

    <html>
    <head>
    <title>Documento senza titolo</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>

    <body>
    <form action="trovaCarattere.php" method="post" target="_self">
    <table border=0 width="465" height="200">
    <tr>
    <td width="100%" height="10%" align="center">
    <font face="Verdana, Arial, Helvetica, sans-serif" size="+1" color=black>
    Imprimi la tua orma sul nostro GUESTBOOK
    </font>
    </td>
    </tr>
    <tr>
    <td width="100%" height="60%" align="center">
    <font face="Arial, Helvetica, sans-serif" size="-2" color=black>[b]


    * Mittente: <input type="text" name="mittente" maxlength="16" size="15">

    * Email: <input type="text" name="email" maxlength="40" size="39">

    * Messaggio: <input type="text" name="messaggio" maxlength="16" size="15">

    <input type="reset" name="pulisci" value="Reimposta">
    <input type="Submit" name="invia" value="Invia">

    </td>
    </tr>
    </table>
    <?php
    $mittente = trim($_POST["mittente"]);
    $email = trim($_POST["email"]);
    $messaggio = trim($_POST["messaggio"]);

    echo "Mittente: " . $mittente . "
    Email: " . $email . "
    " .
    "
    Messaggio: " . $messaggio . "
    ";

    $trovaCarattere = '@';
    $cercaIn = $email;
    $posizioneCarattere = strpos($cercaIn, $trovaCarattere);

    if($mittente=="" and $email=="" and $messaggio==""){
    echo("<center>

    <font face=verdana color=red size=3>Devi Riempire tutti i campi con l'asterisco!

    </font></center>");
    }
    elseif($mittente=="" || $email=="" || $messaggio==""){
    echo("<center>


    <font face=verdana color=red size=3>Hai dimenticato di riempire uno o più campi con l'asterisco!

    </font></center>");
    }
    //gestione @ per Email
    elseif ($posizioneCarattere === false) {
    echo("<center>


    <font face=verdana color=red size=3>Errore inserimento E-mail!Hai dimenticato la @ ATTENZIONE!

    </font></center>");
    }
    //gestione mittente
    elseif(preg_match("/[§ç!°£$%&\|\/\(\)\=\?\^\[\]\+\*#-:\.,;]/i",$mittente)
    || preg_match("/[§ç!°£$%&\|\/\(\)\=\?\^\[\]\+\*#-:\.,;]/i",$email)){
    echo("<center>

    <font face=verdana color=red size=2>
    Errore inserimento Mittente oppure Email!

    Non è consentito inserire caratteri speciali $mittente - $email

    Devi correggere l'errore se vuoi continuare!GRAZIE!!!
    </font></center>");
    }
    else{

    echo("

    <center><hr>
    " .
    "<font face=verdana color=blue size=2>La tua IMPRONTA è stata inserita!</font>");
    }
    ?>
    </form>
    </body>
    </html>

    questa è il controllo completo... fatemi capire perchè non funziona..
    per favore...
    Grazie mille... per la pazienza

  4. #14
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    96
    non mi chiedere perché ma nel preg_match il ":" mettilo in fondo...
    ovvero:

    ("/[§ç!°£$%&\|\/\(\)\=\?\^\[\]\+\*#-,;: ]/i",$mittente)

    prova un po' ora...
    ah, dimenticavo, oltre il cambiamento di sopra ricordati di eliminare il controllo sul punto, altrimenti ti becca quello del dominio... (come già fatto nel preg_match di sopra).
    Se vuoi controllare il punto, dovresti controllare se ce n'è più d'uno, prima del preg_match, come hai fatto per "@".

  5. #15
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    96
    riguardo il punto usa:

    $mittente = //l'indirizzo;
    if (substr_count($mittente, ".")>1){
    echo "solo un punto...";
    }
    else{
    if(preg_match("/[§ç!°£$%&\|\/\(\)\=\?\^\[\]\+\*#- ,:;]/i",$mittente)) {
    echo "sì";
    }
    else {
    echo "no";
    }
    }

  6. #16
    ti ringrazio davvero molto... ho individuato il motivo perchè con il preg_match i controlli su $mittente ed $email non funzionano..
    E' colpa del contenuto della mail cioè della @.
    Ho cambiato controllo togliendo $email e mettendo $messaggio, in pratica controllavo $mittente e/o $messaggio, bene,non ho riscontrato errori e funziona tutto alla perfezione...

    Però, mi farebbe comodo il controllo su $email, ma il problema non lo riesco a capire.. perchè con questo preg_match,
    preg_match("/[§ç!°£$%&\|\/\(\)\=\?\^\[\]\+\*#- ,:;]/i",$email), non controllo se c'è la @, allora come mai non funziona?

    E' incredibile...

  7. #17
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    96
    scusami, non o capito cos'è che non va questa volta...
    Facciamo il punto della situazione: postami l'ultima "release" del tuo script che gli diamo un'ultima occhiata.

  8. #18
    ecco l'ultima:
    $mittente = trim($_POST["mittente"]);
    $email = trim($_POST["email"]);
    $messaggio = trim(addslashes($_POST["messaggio"]));

    $trovaCarattere = '@';
    $cercaIn = $email;
    $posizioneCarattere = strpos($cercaIn, $trovaCarattere);

    if($mittente=="" and $email=="" and $messaggio==""){
    echo("<center>

    <font face=verdana color=red size=3>Devi Riempire tutti i campi con l'asterisco!

    </font></center>");
    }
    elseif($mittente=="" || $email=="" || $messaggio==""){
    echo("<center>


    <font face=verdana color=red size=3>Hai dimenticato di riempire uno o più campi con l'asterisco!

    </font></center>");
    }
    //gestione @ per Email
    elseif ($posizioneCarattere === false) {
    echo("<center>


    <font face=verdana color=red size=3>Errore inserimento E-mail!Hai dimenticato la @ ATTENZIONE!

    </font></center>");
    }
    //gestione mittente
    elseif(preg_match("/[§ç!°£$%&\|\/\(\)\=\?\^\[\]\+\*#-\.,;:]/i",$mittente)
    && preg_match("/[§ç!°£$%&\|\/\(\)\=\?\^\[\]\+\*#-\.,;:]/i",$email)){
    echo("<center>

    <font face=verdana color=red size=2>
    Errore inserimento Mittente ed Email!

    Non è consentito inserire caratteri speciali $mittente - $email

    Devi correggere l'errore se vuoi continuare!GRAZIE!!!
    </font></center>");
    }
    elseif(preg_match("/[§ç!°£$%&\|\/\(\)\=\?\^\[\]\+\*#-\.,;:]/i",$mittente)
    || preg_match("/[§ç!°£$%&\|\/\(\)\=\?\^\[\]\+\*#-\.,;:]/i",$email)){
    echo("<center>

    <font face=verdana color=red size=2>
    Errore inserimento Mittente o Email!

    Non è consentito inserire caratteri speciali $mittente - $email

    Devi correggere l'errore se vuoi continuare!GRAZIE!!!
    </font></center>");
    }
    elseif(strtolower($mittente) && strtolower($email) && strtolower($messaggio)){
    echo("<center>

    <font face=verdana color=red size=3>
    Hai digitato tutti i dati in MAIUSCOLO!

    $mittente - $email - $messaggio

    Correggi scrivendo in minuscolo!GRAZIE!!!
    </font></center>");
    }
    elseif(strtolower($mittente) || strtolower($email) || strtolower($messaggio)){
    echo("<center>

    <font face=verdana color=red size=3>
    Hai digitato uno dei dati in MAIUSCOLO!

    $mittente - $email - $messaggio

    Correggi scrivendo in minuscolo!GRAZIE!!!
    </font></center>");
    }
    else{
    echo("

    <center><hr>
    " .
    "<font face=verdana color=blue size=2>La tua IMPRONTA è stata inserita!</font>");
    }

    In pratica, dove c'è il controllo con il preg_match su $mittente e $email, accade che, anche se inserisco i dati giusti, mi restituisce sempre un'errore.
    Non dovrebbe essere cosi, perchè se ho inserito i valori senza caratteri speciali, non dovrei avere problemi, giusto?
    Se invece tolgo il controllo su $email, ma lo faccio su $messaggio, non mi da problemi.

    La mia ipotesi è che, l'indirizzo email avendo al suo interno la @, può interpretarlo come (giustamente) carattere speciale, però all'interno del preg_match io non controllo la @.
    Allora come mai mi restituisce sempre errore?E' questo quello che vorrei capire e che non riesco a fare..

    Ari-grazie...

  9. #19
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    96
    come ti ho già detto, hai inserito il controllo sul punto nel preg_match. ovvio che te lo becca : "mail@tin.it", c'è un punto...
    Copia e incolla lo script corretto, vedrai che funziona.
    Non dovrebbero esserci più errori. Ovviamente metti a posto l'output nel caso trovi due punti nel'email (elseif indicato in rosso), e togli il punto dal preg_match della $email.

    mittente = trim($_POST["mittente"]);
    $email = trim($_POST["email"]);
    $messaggio = trim(addslashes($_POST["messaggio"]));

    $trovaCarattere = '@';
    $cercaIn = $email;
    $posizioneCarattere = strpos($cercaIn, $trovaCarattere);

    if($mittente=="" and $email=="" and $messaggio==""){
    echo("<center>

    <font face=verdana color=red size=3>Devi Riempire tutti i campi con l'asterisco!

    </font></center>");
    }
    elseif($mittente=="" || $email=="" || $messaggio==""){
    echo("<center>


    <font face=verdana color=red size=3>Hai dimenticato di riempire uno o più campi con l'asterisco!

    </font></center>");
    }
    //gestione @ per Email
    elseif ($posizioneCarattere === false) {
    echo("<center>


    <font face=verdana color=red size=3>Errore inserimento E-mail!Hai dimenticato la @ ATTENZIONE!

    </font></center>");
    }
    //gestione mittente
    elseif (substr_count($email, ".")>1){
    echo "solo un punto...";
    }

    elseif(preg_match("/[§ç!°£$%&\|\/\(\)\=\?\^\[\]\+\*#-\.,;:]/i",$mittente)
    && preg_match("/[§ç!°£$%&\|\/\(\)\=\?\^\[\]\+\*#-,;:]/i",$email)){
    echo("<center>

    <font face=verdana color=red size=2>
    Errore inserimento Mittente ed Email!

    Non è consentito inserire caratteri speciali $mittente - $email

    Devi correggere l'errore se vuoi continuare!GRAZIE!!!
    </font></center>");
    }
    elseif(preg_match("/[§ç!°£$%&\|\/\(\)\=\?\^\[\]\+\*#-\.,;:]/i",$mittente)
    || preg_match("/[§ç!°£$%&\|\/\(\)\=\?\^\[\]\+\*#-,;:]/i",$email)){
    echo("<center>

    <font face=verdana color=red size=2>
    Errore inserimento Mittente o Email!

    Non è consentito inserire caratteri speciali $mittente - $email

    Devi correggere l'errore se vuoi continuare!GRAZIE!!!
    </font></center>");
    }
    elseif(strtolower($mittente) && strtolower($email) && strtolower($messaggio)){
    echo("<center>

    <font face=verdana color=red size=3>
    Hai digitato tutti i dati in MAIUSCOLO!

    $mittente - $email - $messaggio

    Correggi scrivendo in minuscolo!GRAZIE!!!
    </font></center>");
    }
    elseif(strtolower($mittente) || strtolower($email) || strtolower($messaggio)){
    echo("<center>

    <font face=verdana color=red size=3>
    Hai digitato uno dei dati in MAIUSCOLO!

    $mittente - $email - $messaggio

    Correggi scrivendo in minuscolo!GRAZIE!!!
    </font></center>");
    }
    else{
    echo("

    <center><hr>
    " .
    "<font face=verdana color=blue size=2>La tua IMPRONTA è stata inserita!</font>");
    }

  10. #20
    c'hai ragione.. scusami se ti ho fatto perder tempo dietro questa cavolata... che stupido che sono stato... a forza de capocciate

    Ok grazie mille per questo grandissimo aiuto...

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 © 2026 vBulletin Solutions, Inc. All rights reserved.