Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: pagina sbagliata

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    115

    pagina sbagliata

    Salve
    Come mai, secondo voi, questo script di login carica la pagina index.php invece che la pagina loggedin.php?
    Grazie!

    <?php

    if (isset($_POST['submitted'])) {

    function absolute_url ($page = 'index.php') {

    $url = 'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']);

    $url = rtrim($url, '/\\');

    $url .= '/' . $page;

    return $url;
    }

    function check_login($dbc, $email = '', $pass = '') {

    $errors = array();

    if (empty($email)) {
    $errors[] = 'Hai dimenticato di scriver la tua email.';
    } else {
    $e = mysqli_real_escape_string($dbc, trim($email));
    }

    if (empty($pass)) {
    $errors[] = 'Hai dimenticato di scrivere la tua password.';
    } else {
    $p = mysqli_real_escape_string($dbc, trim($pass));
    }

    if (empty($errors)) {

    $q = "SELECT user_id, first_name FROM users WHERE email='$e' AND pass=SHA1('$p')";
    $r = @mysqli_query ($dbc, $q);

    if (mysqli_num_rows($r) == 1) {

    $row = mysqli_fetch_array ($r, MYSQLI_ASSOC);

    return array(true, $row);

    } else {
    $errors[] = 'La tua email o la tua password non sono giuste.';
    }

    }

    return array(false, $errors);

    }
    require_once ('../mysqli_connect.php');

    list ($check, $data) = check_login($dbc, $_POST['email'], $_POST['pass']);

    if ($check) {

    setcookie ('user_id', $data['user_id'],
    time()+3600, '/', '', 0, 0);
    setcookie ('first_name', $data['first_name'],
    time()+3600, '/', '', 0, 0);

    $url = absolute_url ('loggedin.php');
    header("Location: $url");
    exit();

    } else {

    $errors = $data;

    }

    mysqli_close($dbc);

    }

    if (!empty($errors)) {
    echo '<h1>Error!</h1>
    <p class="error">Sono avvenuti i seguenti errori:
    ';
    foreach ($errors as $msg) {
    echo " - $msg
    \n";
    }
    echo '</p>

    Prego riprova.</p>';
    }

    ?>
    <h1>Login</h1>
    <form action="login1.php" method="post">


    Email Address: <input type="text" name="email" size="20" maxlength="80" /> </p>


    Password: <input type="password" name="pass" size="20" maxlength="20" /></p>


    <input type="submit" name="submit" value="Login" /></p>
    <input type="hidden" name="submitted" value="TRUE" />
    </form>

  2. #2
    Cambia:

    $url = rtrim($url, '/\');

    con:

    $url = rtrim($url, '\/');
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    115
    No, non cambia niente.

  4. #4
    Ho provato in locale la funzione absolute_url() con la modifica che ti ho suggerito e funziona perfettamente.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    115
    Anch'io sono in locale, ci provo ancora e ti faccio sapere.
    Grazie.

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    115
    Non sò come mai a te funziona, a me non funziona. Il login funziona perfettamente, il problema rimane che mi manda alla pagina sbagliata.

  7. #7
    Utente di HTML.it L'avatar di jeppox
    Registrato dal
    Mar 2007
    Messaggi
    436
    probabilmente la funzione check_login() non da esito positivo, dovresti stampare a video il contenuto di $check per vedere se eiste:

    Codice PHP:
    print_r($check);exit; 
    se $check non esiste ti rimanda sempre al form e quindi ho hai dei problemi di connessione al DB oppure invii dei valori errati di password o email...

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    115
    Lo script, per quel che riguarda il login funziona perfettamente.
    Il database, funziona.
    Se sbaglio i dati di accesso mi indica lo sbaglio.
    Se i dati sono giusti non mi rimanda al form ma alla pagina index.php, mentre dovrebbe mandarmi alla pagina loggedin.php.

  9. #9
    Utente di HTML.it L'avatar di jeppox
    Registrato dal
    Mar 2007
    Messaggi
    436
    posta quello che c'è dentro a $check...

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    115
    Scusa la mia ignoranza ma non capisco che cosa dovrei farti avere oltre a quello che c'è nello script, spiegami meglio.

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.