Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Errore controllo dati in input

    Salve,

    Ho un form gestito da questo file:

    Codice PHP:
    <?php
    ob_start
    ();

    /* Gestione Richieste. Codice di D'Alberti Luca */
    /*     Copyright © D'Alberti Luca 2013          */

    require("inc/config.php");
    require(
    "inc/functions.php");

    /* Raccolgo i dati in POST */
    $email mysqli_real_escape_string($db$_POST['email']);    // la mail inserita
    $codice mysqli_real_escape_string($db$_POST['codice']);    // il codice inserito

    /* Se i moduli non sono stati compilati */
    if (! $email  || ! $codice)
    {
        
    header("Location: req_management.php?error=no_fill");    // redirect all'errore MODULI NON COMPILATI
    }
    /* Se i moduli sono stati compilati */
    else
    {
        
    /* Controllo se la mail inserita è in un formato valido */
        
    if (! chkEmail($email))
        {
            
    header("Location: req_management.php?error=invalid_mail");    // redirect all'errore MAIL NON VALIDA
        
    }
        else
        {
            
    /* Se la mail è valida, controllo che il codice inserito corrisponda a quello attribuito dal sistema */
            
    $queryCodice mysqli_real_query($db"SELECT email FROM request WHERE codice = '".$codice."'") or die(mysqli_error());
            
    /* Controllo che la query abbia prodotto risultati validi */
            
    if (mysqli_num_rows($db$queryCodice) != 1)
            {
                
    header("Location: req_management.php?error=not_exist");
            }
            else
            {
                
    setcookie("email"$emailtime()+3600);
                
    setcookie("codice"$codicetime()+3600);
                
    header("Location: req_management.php?action=view&code=".$codice."");
            }
        }
    }
    ?>
    Il fatto è che si ferma sempre al primo if (il redirect ai campi non compilati).
    Ho provato a fare una stampa dai dati in ingresso, ed effettivamente ci sono, quindi non è un errore nella lettura dei dati.
    Sapete dirmi a cosa è dovuto?

  2. #2
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    che vuol dire questo?
    if (! $email || ! $codice)

    il fatto che entri nell'if secondo te che vuol dire?

  3. #3
    ho provato anche con
    Codice PHP:
    if (! isset($codice$email)) 
    Ma entra lo stesso nell'if...

  4. #4
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    dovresti fare una cosa del genere
    Codice PHP:
    <?php 
    ob_start
    (); 

    /* Gestione Richieste. Codice di D'Alberti Luca */ 
    /*     Copyright © D'Alberti Luca 2013          */ 

    require("inc/config.php"); 
    require(
    "inc/functions.php"); 

    if (!isset(
    $_POST['email'])  || !isset($_POST['codice'])) 


    /* Se i moduli non sono stati compilati */ 

     
        
    header("Location: req_management.php?error=no_fill");    // redirect all'errore MODULI NON COMPILATI 

    /* Se i moduli sono stati compilati */ 
    else 

        
    /* Raccolgo i dati in POST */ 
        
    $email mysqli_real_escape_string($db$_POST['email']);    // la mail inserita 
       
    $codice mysqli_real_escape_string($db$_POST['codice']);    // il codice inserito 

        /* Controllo se la mail inserita è in un formato valido */ 
        
    if (! chkEmail($email)) 
        { 
            
    header("Location: req_management.php?error=invalid_mail");    // redirect all'errore MAIL NON VALIDA 
        

        else 
        { 
            
    /* Se la mail è valida, controllo che il codice inserito corrisponda a quello attribuito dal sistema */ 
            
    $queryCodice mysqli_real_query($db"SELECT email FROM request WHERE codice = '".$codice."'") or die(mysqli_error()); 
            
    /* Controllo che la query abbia prodotto risultati validi */ 
            
    if (mysqli_num_rows($db$queryCodice) != 1
            { 
                
    header("Location: req_management.php?error=not_exist"); 
            } 
            else 
            { 
                
    setcookie("email"$emailtime()+3600); 
                
    setcookie("codice"$codicetime()+3600); 
                
    header("Location: req_management.php?action=view&code=".$codice.""); 
            } 
        } 

    ?>

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.