Visualizzazione risultati 1 fino 10 di 10

Discussione: Redirect dopo login non funziona [discussione divisa]

  1. #1
    Guest

    Unhappy

    ciao a tutti!
    ho un problema simile a quello di iht...
    priam di tutto vi posto il codice:
    Codice PHP:
    <html>
    <head>
    <title>Gestione alleanza | Login</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    <body>
    <?php
    //tutti gli includes
    require('includes.php');
    switch (
    $_GET['case']) {
    case
    "no1":
    echo
    "Password errata.";
    break;
    case
    "no2":
    echo
    "Nick non esistente.";
    break;
    }
    //se esiste
    if ($_POST['nick'] != "" AND $_POST['psw'] != "") {

    $nick_L = mysql_real_escape_string(off_magic($_POST['nick']));
    $psw_L = sha1($_POST['psw']);
    //seleziono
    $sql="SELECT nick,psw FROM ".PREF_DB."giocatori
    WHERE nick='"
    .$nick_L."'
    AND psw='"
    .$psw_L."'";
    #query...
    $ris_login = mysql_query($sql) or die(mysql_error());
    #conto il numero di righe
    $nr_riga= mysql_num_rows($ris_login) or die(mysql_error());
    #seleziono i risultati nell'array $results
    $results= mysql_fetch_assoc($ris_login) or die(mysql_error());
    if (
    $nr_riga == 1) {
    // inserisco i dati nella sessione
    session_start();
    $_SESSION['nick']= $nick_L;
    $_SESSION['loggato']="yes";
    header("Location: index.php");
    exit;
    } elseif (
    $results['psw'] != $_POST['psw']){ header("location:login.php?case=no1");
    exit;
    } elseif (
    $results['nick']!= $_POST['nick']) { header("location:login.php?case=no2");
    exit;
    }
    }
    else {
    ?>
    <form method="POST" action="login.php">
    <table border="0">
    <tr>
    <td>Nome utente</td>
    <td><input name="nick" type="text"></td>
    </tr>
    <tr>
    <td>Password</td>
    <td><input name="psw" type="password"></td>
    </tr>
    <tr>
    <td colspan="2"><input name="Submit" type="submit" value="Login"></td>
    </tr>
    </table>
    </form>
    <?php } ?>
    </body>
    </html>
    quando non sono inseriti nick e password mi mostra i rispettivi campi per inserirli, poi submitto e a seconda del caso mi dovrebbe reindirizzare alla pagina login.php?reg=no1, reg=no2, o index.php ... ma una volta submittato il form mi esce la pagina login.php bianca... c'è quindi un modo alternativo per reindirizzare un utente ad un'altra pagina senza usae l'header? in caso contrario potreste aiutarmi a correggere questa parte di codice? grazie.. :)


    EDIT:
    altrimenti sarebbe possibile creare una funzione per fare ciò?
    per esempio

    Codice PHP:
    function prosegui($link) {

    }
    asd e qui mi fermo.. :P non so come crearla... :( confido in voi esperti.. :)
    grazie..
    p.s: non ho editato anche per uppare il thread.. :)

    edit: qualcuno mi saprebbe dare il link del regolamento del forum? grazie.. :)

    E' il secondo up che fai nel giro di un'ora... Se continui la discussione verrà chiusa. Quando qualcuno sarà in grado di aiutarti, sicuramente lo farà.
    Il regolamento del forum lo trovi nelle discussioni in rilievo. Ciao!
    Ultima modifica di seneca : 17-06-2007 alle ore 17.31.24

  2. #2
    Guest

    Predefinito

    con un echo stampi il meta tag, a me funziona...

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da FFchronicles
    con un echo stampi il meta tag, a me funziona...
    giusto! :D:D non ci avevo proprio pensato... ma va bene anche se lo stampo così a metà pagina? ora provo comunque.. :D grassie

  4. #4
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    I meta tag devo essere scritti nell'head della pagina, se vuoi mettere un redirect all'interno della pagina puoi utilizzare JavaScript.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  5. #5
    Guest

    Predefinito

    Codice PHP:
    <?php session_start(); ?>
    <html>
    <head>
    <title>Login</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <meta name="author" content="">
    <?php
    require "funzioni.php";
    connetti();
    if (isset(
    $_GET['case'])) {
    switch (
    $_GET['case']) {
    case
    "no1":
    echo
    "Password errata.";
    break;
    case
    "no2":
    echo
    "Nick non esistente.";
    break;
    }
    }
    //se esiste
    if (!empty($_POST['nick']) AND !empty($_POST['psw'])) {
    $nick_L = mysql_real_escape_string(off_magic($_POST['nick']));
    $psw_L = sha1($_POST['psw']);
    //seleziono
    $sql="SELECT nick,psw FROM ".PREF_DB."giocatori
    WHERE nick='"
    .$nick_L."'
    AND psw='"
    .$psw_L."'";
    #query...
    $ris_login = mysql_query($sql) or die(mysql_error());
    #conto il numero di righe
    $nr_riga= mysql_num_rows($ris_login) or die(mysql_error());
    #seleziono i risultati nell'array $results
    $results= mysql_fetch_assoc($ris_login) or die(mysql_error());
    if (
    $nr_riga == 1) {
    // inserisco i dati nella sessione
    $_SESSION['nick']= $nick_L;
    $_SESSION['loggato']="yes";
    echo
    "<meta http-equiv=\"refresh\" content=\"0; URL=index.php\"></head><body>Attendi</body></html>";}
    elseif (
    $results['psw'] != $_POST['psw']){echo "<meta http-equiv=\"refresh\" content=\"0; URL=login.php?case=no1\"></head><body>Attendi</body></html>";}
    elseif (
    $results['nick'] != $_POST['nick']){echo "<meta http-equiv=\"refresh\" content=\"0; URL=login.php?case=no2\"></head><body>Attendi</body></html>";}
    }
    else {
    ?>
    </head>
    <body>
    <form method="POST" action="login.php">
    <table border="0">
    <tr>
    <td>Nome utente</td>
    <td><input name="nick" type="text"></td>
    </tr>
    <tr>
    <td>Password</td>
    <td><input name="psw" type="password"></td>
    </tr>
    <tr>
    <td colspan="2"><input name="Submit" type="submit" value="Login"></td>
    </tr>
    </table>
    </form>
    <?php } ?>
    </body>
    </html>
    ho modificato un po'... e provato ad usare i meta tag... ma il risultato è lo stesso avete idee? ciao grazie
    Ultima modifica di fedo92 : 20-06-2007 alle ore 12.18.09

  6. #6
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Cosa fa la funzione off_magic?
    Anche quando inserisci la password nel database al momento della registrazione utilizzi la funzione sha1?
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  7. #7
    Guest

    Predefinito

    Codice PHP:
    //annullamento del magic_quotes_gpc se attivo
    function off_magic ($value) {
    $value = (get_magic_quotes_gpc()) ? stripslashes($value) : $value;
    return
    $value;
    }
    e sì.. :) anche quando inserisco la password nel database uso la funzione sha1.. :)

  8. #8
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    E naturalmente utilizzi le stesse funzioni, che utilizzi nel login, per inserire l'username nel database?
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  9. #9
    Guest

    Predefinito

    E naturalmente (OT) non stai utilizzando il tuo account come deposito files, visto che non hai una index del tuo sito...


    Ciao!

  10. #10
    Guest

    Predefinito

    Citazione Originalmente inviato da funcool
    E naturalmente utilizzi le stesse funzioni, che utilizzi nel login, per inserire l'username nel database?
    si.. :)
    Codice PHP:
    $nick_admin = mysql_real_escape_string(off_magic($_POST['nick_admin']));
    $psw_admin = sha1($_POST['psw_admin']);


    edit: non ho l'index perché il sito non è pronto... :S però ora vado a mettere un semplice in costruzione.. :)

    EDIT DELLE 1.15 il 21/6/07
    allora... per comodità ho diviso il form dalla parte hp che esegue il login.. :)
    il form invia correttamente le informazioni via post...
    quando effettuo il login ed inserisco dato corretti tutto procede bene e vengo indirizzato alla pagina index.php, se non ho compilato un campo vengo reinderizzato alla pagina login_form.php (contenente il form sopra citato), se invece uno dei campi non è corretto non mi reindirizza alla pagina login_form.php, ma stampa la pagina login.php (contenente il codice qui sotto) vuota.. :)
    Codice PHP:
    <?php
    require "funzioni.php";
    connetti();
    #se esiste
    if (!empty($_POST['nick']) AND !empty($_POST['psw'])) {
    $nick_L = mysql_real_escape_string(off_magic($_POST['nick']));
    $psw_L = sha1($_POST['psw']);
    #seleziono dal db
    $sql="SELECT nick,psw FROM ".PREF_DB."giocatori
    WHERE nick='"
    .$nick_L."'
    AND psw='"
    .$psw_L."'";
    #query
    $ris_login = mysql_query($sql) or die(mysql_error());
    #conto il numero di righe
    $nr_riga= mysql_num_rows($ris_login) or die(mysql_error());
    #seleziono i risultati nell'array $results #
    $results= mysql_fetch_assoc($ris_login) or die(mysql_error());
    if (
    $nr_riga == 1) {
    #inserisco i dati nella sessione
    $_SESSION['nick']= $nick_L;
    $_SESSION['loggato']="si";
    header ("location: index.php");
    } else {
    header("location: login_form.php"); }
    }else {
    header("location: login_form.php");}
    ?>
    ormai ci sto da 1 oretta.. ma non riesco a trovare l'errore.. :) se mi aiutaste ve ne sarei grato.. :)
    ciau
    Ultima modifica di fedo92 : 21-06-2007 alle ore 01.18.34 Motivo: aggiornamento

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •