• User Attivo

    Convalida Form con PHP

    Ciao a tutti,
    ho un problema. Invio un form tramite link quindi così:

    [HTML]<a class="loginButton" href="#" onClick="document.loginForm.submit()">Accedi</a>[/HTML]

    Poi dentro la stessa pagina, con PHP devo fare il controllo se è stato inviato il modulo e quindi faccio:

    [PHP]if(isset($_POST['login'])){ ....[/PHP]

    Perché non entra nell'IF? Invio un campo di tipo testo che si chiama login
    [HTML]<input id="submitButton" class="button-input" type="text" value="_" name="login">[/HTML]

    Grazie!


  • User Attivo

    Ciao,
    ma il form che metodo utilizza? GET o POST?


  • User Attivo

    @codencode said:

    Ciao,
    ma il form che metodo utilizza? GET o POST?

    Scusa, POST
    [URL=http://www.giorgiotave.it/forum/gt-world/101972-forum-gt-disponibile-alle-versioni-per-telefoni-cellulari.html]Postato via Mobile


  • User Attivo

    Hai provato ad inviare il form con il pulsante submit?


  • User Attivo

    Si, in quel modo funziona...ma devo necessariamente usare il link..
    [URL=http://www.giorgiotave.it/forum/gt-world/101972-forum-gt-disponibile-alle-versioni-per-telefoni-cellulari.html]Postato via Mobile


  • User Attivo

    E allora è un problema di javascript, a limite posta il codice.


  • User Attivo

    Questo basta?

    [PHP]<form id="loginForm" name="loginForm" action="" method="post" style="width: 640px; margin-top: -13px;">
    <div style="width: 266px; height: 59px; left: 1px; top: 33px; z-index: 0;">
    <div id="usernameRing" class="field-ring sprite" style="opacity: 0;"></div>
    </div>
    <div id="usernameContainer" class="field-container sprite">
    <input id="username" name="username" type="text" class="field eye-transparent-mouse-opaque required" spellcheck="false" maxlength="128" value="" placeholder="Username" />
    </div>
    <div style="width: 266px; height: 59px; left: 253px; top: 33px; z-index: 0;">
    <div id="passwordRing" class="field-ring sprite" style="opacity: 0;"></div>
    </div>
    <div id="passwordContainer" class="field-container sprite">
    <input id="password" name="password" type="password" class="field eye-transparent-mouse-opaque required" maxlength="128" value="" placeholder="Password" />
    </div>
    <div style="width: 130px; height: 62px; left: 506px; top: 32px; z-index: 0;">
    <div id="submitRing" class="button-ring" style="opacity:0; filter:alpha(opacity=0);">
    <div id="submitRingLeft" class="left-halffull left sprite"></div>
    <div id="submitRingRight" class="right-halffull right sprite"></div>
    </div>
    </div>
    <div id="submitContainer" class="button-container down" style="width: 130px;">
    <input id="submitButton" class="button-input" type="text" value="_" name="login">
    <div id="submitLabel" class="button-label shadowy" shadowopacity="0.64" shadowcolor="white" shadowblur="1"><a class="loginButton" href="#" onClick="document.loginForm.submit();">Accedi</a></div>
    <div id="submitBG" class="button-bg">
    <div id="submitBGLeft" class="left-halffull left sprite"></div>
    <div id="submitBGRight" class="right-halffull right sprite"></div>
    </div>
    </div>
    </form>[/PHP]


  • User Attivo

    Manca il codice javascript.


  • User Attivo

    E' sull'onClick


  • User Attivo

    Ho provato il tuo codice e funziona, anche se manca l'action al form.


  • User Attivo

    Perché poi nella stessa pagina faccio il controllo con PHP se è stato inviato il modulo come avevo detto nel primo post, ma poi se con
    [PHP]if(isset($_POST['login'])){ ....[/PHP] non mi entra nell'IF, a te si?


  • User Attivo

    Si quando clicco sul link e quindi ricarica la pagina, entra correttamente nell'IF.


  • User Attivo

    A me no, completamente, se metto dentro l'IF un alert per vedere se effettivamente è entrato, l'alert non spunta, quindi non entra nell'IF...


  • User Attivo

    Prova a fare così:
    [PHP]
    if(isset($_POST['login'])){
    echo "OK";
    }
    [/PHP]


  • User Attivo

    Nada, mi ricarica la pagina ma senza darmi alcun esito...


  • User Attivo

    Scusa mi posti tutto il codice che utilizzi?


  • User Attivo

    Eccolo!
    [PHP]<?php
    // Includo la connessione al database
    require('config.php');
    // Se il modulo viene inviato...
    /echo "<script>alert('".$_POST['login']."');</script>";/
    if(isset($_POST['login'])){
    echo "OK";

    // Dati Inviati dal modulo
    $user = (isset($_POST['username'])) ? trim($_POST['username']) : '';    // Metto nella variabile 'user' il dato inviato dal modulo, se non viene inviato dò di default ''
    $pass = (isset($_POST['password'])) ? trim($_POST['password']) : '';    // Metto nella variabile 'pass' il dato inviato dal modulo, se non viene inviato dò di default ''
    
    // Filtro i dati inviati se i magic_quotes del server sono disabilitati per motivi di sicurezza
    if (!get_magic_quotes_gpc()) {
        $user = addslashes($user);
        $pass = addslashes($pass);
    }
    
    // Crypto la password e la confronto con quella nel database
    $pass = md5($pass);
    
    // Controllo l'utente esiste
    $query = mysql_query("SELECT idUtente FROM utenti WHERE visibile='s' AND gesfin='s' AND eliminato='n' AND nomeUtente = '$user' AND PassUtente = '$pass' LIMIT 1");
    
    // Se ha trovato un record
    if(mysql_num_rows($query) == 1){
        // prelevo l'id dal database
        $login = mysql_fetch_array($query);
    		// Creo una variabile di sessione
    		$_SESSION['loginGesfin'] = $login['idUtente'];
    		// reindirizzo l'utente
    		header('Location: index.php');
        exit;
    }
    // se non esiste da l'errore
    else{
        echo "<script>alert('Nome Utente e/o Password errati');</script>";
    	session_start();
    	session_destroy();
    	header('Location: login.php');
    	exit;
    }
    

    }

    ?>
    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <meta http-equiv="Content-Script-Type" content="text/javascript" />
    <noscript>
    </noscript>
    <title><?php echo $nomeSito;?></title>
    <link href="css/login.css" rel="stylesheet" type="text/css" />
    <link href="css/apple.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="/js/jquery-1.4.min.js"></script>
    <script type="text/javascript" src="/js/jquery.validate.min.js"></script>
    <script type="text/javascript">
    $(document).ready(function(){
    $('form[name=loginForm]').validMe({shaker: true});
    });

    function invia(){
    	document.loginForm.submit();
    }
    

    </script>
    </head><body style="overflow: hidden">
    <div class="sfumatura"></div>
    <div class="login" align="center"> <img style="position: relative;" src="http://www.giorgiotave.it/forum/images/logo.png" width="326" height="220" alt="FIN Sicilia" />
    <form id="loginForm" name="loginForm" action="" method="post" style="width: 640px; margin-top: -13px;">
    <div style="width: 266px; height: 59px; left: 1px; top: 33px; z-index: 0;">
    <div id="usernameRing" class="field-ring sprite" style="opacity: 0;"></div>
    </div>
    <div id="usernameContainer" class="field-container sprite">
    <input id="username" name="username" type="text" class="field eye-transparent-mouse-opaque required" spellcheck="false" maxlength="128" value="" placeholder="Username" />
    </div>
    <div style="width: 266px; height: 59px; left: 253px; top: 33px; z-index: 0;">
    <div id="passwordRing" class="field-ring sprite" style="opacity: 0;"></div>
    </div>
    <div id="passwordContainer" class="field-container sprite">
    <input id="password" name="password" type="password" class="field eye-transparent-mouse-opaque required" maxlength="128" value="" placeholder="Password" />
    </div>
    <div style="width: 130px; height: 62px; left: 506px; top: 32px; z-index: 0;">
    <div id="submitRing" class="button-ring" style="opacity:0; filter:alpha(opacity=0);">
    <div id="submitRingLeft" class="left-halffull left sprite"></div>
    <div id="submitRingRight" class="right-halffull right sprite"></div>
    </div>
    </div>
    <div id="submitContainer" class="button-container down" style="width: 130px;">
    <input id="submitButton" class="button-input" type="text" value="_" name="login">
    <div id="submitLabel" class="button-label shadowy" shadowopacity="0.64" shadowcolor="white" shadowblur="1"><a class="loginButton" href="#" onClick="document.loginForm.submit();">Accedi</a></div>
    <div id="submitBG" class="button-bg">
    <div id="submitBGLeft" class="left-halffull left sprite"></div>
    <div id="submitBGRight" class="right-halffull right sprite"></div>
    </div>
    </div>
    </form>
    </div>
    </body>
    </html>
    [/PHP]


  • User Attivo

    Ho provato il tuo codice, rimuovendo ovviamente[php] require ('config.php');[/php] e appena dopo [php]echo "OK";[/php] ho messo [php]exit();[/php] così da evitare il redirect.
    Quindi l'if è corretto, come già ti avevo detto, non è che c'è qualche altro errore?
    Prova a fare come ho fato io, aggiungi l'exit, quindi:
    [php]if (isset($_POST ['login'])) {
    echo "OK";
    exit();[/php]


  • User Attivo

    Ho provando mettendo un exit() quasi in ogni riga per vedere dove si bloccava.
    A quanto pare non gli piace l'header in questa porzione di codice:

    [PHP]if(mysql_num_rows($query) == 1){
    // prelevo l'id dal database
    $login = mysql_fetch_array($query);
    // Creo una variabile di sessione
    $_SESSION['loginGesfin'] = $login['idUtente'];
    // reindirizzo l'utente
    header('Location: index.php');
    exit;
    }
    // se non esiste da l'errore
    else{
    echo "<script>alert('Nome Utente e/o Password errati');</script>";
    session_start();
    session_destroy();
    header('Location: login.php');
    exit;
    }[/PHP]

    Hai suggerimenti? E' la prima volta che mi da questo problema. Sempre usato lo stesso script ovunque!


  • User Attivo

    Quindi entra nell'IF. Il problema degli header è che devono essere usati prima di una qualsiasi istruzione di output, basta una andata a capo e ti da problemi.