Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it L'avatar di Tr|k`Tr4k
    Registrato dal
    Jul 2002
    Messaggi
    2,766

    If else che controlla se il campo e' scritto bene

    Nella pagina inserisci.php ho una variabile chiamata $codice che mi crea un numero random da inserire in un campo di testo chiamato campo_codice

    Quando invio il form, se l'utente ha scritto il numero giusto nel campo codice allora puo' scrivere sul guestbook, altrimenti deve tornare indietro, correggere e potra' scrivere sul guestbook, solo che ho notato che anche sbagliando ad inserire il codice nel campo, il modulo viene inviato...
    come mai?
    questo e' il codice che inserisce i dati nel db e "controlla" se il campo codice e' esatto:
    Codice PHP:
    <?
    include("config.php");
    $messaggio nl2br($messaggio);
    $connessione =  @mysql_connect("$host","$db_user","$db_pass")
    or die(
    "Impossibile stabilire una connessione.");
    $db = @mysql_select_db($db_nome$connessione)
    or die(
    "Impossibile selezionare il database.");
    if (
    $codice=$campo_codice){
    $sql "insert into $tabella 
    (id, nome, email, sito, messaggio, data) 
    values 
    (NULL,\"
    $nome\",\"$email\",\"$sito\",\"$messaggio\",NOW())";
    $risultato = @mysql_query($sql$connessione)
    or die (
    mysql_errno() . ": " mysql_error());
    }
    else
    {
    echo(
    "Devi copiare il codice segreto nel campo di testo altrimenti non puoi lasciare il messaggio");
    }
    ?>
    Dove sbaglio?

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Un confronto si fa con due uguali.

  3. #3
    Utente di HTML.it L'avatar di Tr|k`Tr4k
    Registrato dal
    Jul 2002
    Messaggi
    2,766
    Originariamente inviato da nicola75ss
    Un confronto si fa con due uguali.
    sto facendo anche quello, ma lo stesso non va!!

  4. #4
    Utente di HTML.it L'avatar di Tr|k`Tr4k
    Registrato dal
    Jul 2002
    Messaggi
    2,766
    in pratica se metto 2 uguali mi dice:

    Devi copiare il codice segreto nel campo di testo altrimenti non puoi lasciare il messaggio


    ma io lo copio bene...

  5. #5
    Utente di HTML.it L'avatar di Tr|k`Tr4k
    Registrato dal
    Jul 2002
    Messaggi
    2,766
    ora mettendo i 2 uguali, se non copio il codice segreto nel campo di testo mi fa firmare, mentre se lo copio non mi fa firmare...

  6. #6
    Utente di HTML.it L'avatar di Tr|k`Tr4k
    Registrato dal
    Jul 2002
    Messaggi
    2,766
    NIENTE, ancora non va...
    Come faccio a dire che il campo deve essere riempito per forza?
    Perche' se non riempio il campo quello mi dice che ho indovinato il codice...
    ECCO LE PAGINE DI PROVA:
    index.php
    Codice PHP:
    <?
    $codice
    rand (0100000000);
    ?>
    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>

    <body bgcolor="#FFFFFF" text="#000000">
    <form name="form1" method="post" action="prova2.php">
      <table width="500" border="0" cellspacing="1" cellpadding="5" bgcolor="#000000" align="center">
        <tr bgcolor="#E5EFF5"> 
          <td style="padding-left:8px" width="201"><font face="Verdana" size="2">Codice 
            di approvazione:

            [b] 
            <? echo "$codice"?>
            [/b]</font></td>
          <td valign=top width="399"> 
            <div align="center"><font face="Verdana" size="1">Inserisci il codice 
              segreto in maiuscolo:

              

              <input type="text" name="campo_codice" size="35" class="guestbook" onMouseOver="this.className='guestbook2'" onMouseOut="this.className='guestbook'" value="">
              </font></div>
          </td>
        </tr>
        <tr bgcolor="#E5EFF5">
          <td style="padding-left:8px" width="201"></td>
          <td valign=top width="399">
            <input type="submit" name="Submit" value="Invia">
          </td>
        </tr>
      </table>
    </form>


    </p>
    </body>
    </html>
    prova2.php
    Codice PHP:
    <?
    if ($campo_codice==$codice){
    echo(
    "BRAVISSIMO, HAI INDOVINATO IL CODICE");
    }
    else
    {
    echo(
    "CODICE ERRATO");
    }
    ?>
    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>

    <body bgcolor="#FFFFFF" text="#000000">
    </body>
    </html>
    Come faccio a far combaciare i campi?

  7. #7
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Come fai a fare un confronto se non passi nessun valore alla pagina?
    Devi recuperare dall'array $_POST il valore che inserisce l'utente e quello generato casualmente lo devi mettere o in un campo hidden del form o meglio in una variabile di sessione.

    Sarebbe meglio se usassi <?php onde evitare problemi in futuro.

  8. #8
    Utente di HTML.it L'avatar di Tr|k`Tr4k
    Registrato dal
    Jul 2002
    Messaggi
    2,766
    Originariamente inviato da nicola75ss
    Come fai a fare un confronto se non passi nessun valore alla pagina?
    Devi recuperare dall'array $_POST il valore che inserisce l'utente e quello generato casualmente lo devi mettere o in un campo hidden del form o meglio in una variabile di sessione.

    Sarebbe meglio se usassi <?php onde evitare problemi in futuro.
    si infatti ho risolto portandomi $codice nel post del form, ma voglio provare come dici tu usando un campo invisibile.

    Dici che usare solo <? puo' portare a dei problemi?
    Ok,
    AfferratO!!
    Come sempre, grazie

  9. #9
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da Tr|k`Tr4k
    si infatti ho risolto portandomi $codice nel post del form, ma voglio provare come dici tu usando un campo invisibile.

    Dici che usare solo <? puo' portare a dei problemi?
    Ok,
    AfferratO!!
    Come sempre, grazie
    Basta che lo short open tag sia settato ad off nel php.ini che i tuoi script andranno a farsi benedire. scrivere tre lettere non è una grande fatica.
    Io ti consiglierei di usare una variabile di sessione.

  10. #10
    Utente di HTML.it L'avatar di Tr|k`Tr4k
    Registrato dal
    Jul 2002
    Messaggi
    2,766
    Originariamente inviato da nicola75ss
    Basta che lo short open tag sia settato ad off nel php.ini che i tuoi script andranno a farsi benedire. scrivere tre lettere non è una grande fatica.
    Io ti consiglierei di usare una variabile di sessione.
    ok ho messo anche <?php e poi ho messo nel campo hidden perche' la variabile di sessione non la conosco ancora
    Mica hai un'esempio veloce?

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.