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

    togliere il die ma farlo finire ugualmente...

    Salve ragazzi...
    il titolo non è di certo molto chiaro. Ma è difficile sintetizzarlo in poche parole.

    Io ho questo script :
    Codice PHP:
    <?php
    if (isset($_POST['username']) && isset($_POST['password']) && isset($_POST['Login']) && $_POST['Login'] == 'true') {
        if (
    $login_success)
            echo 
    "<center>" lget('success') . "</center>";
        else
            echo 
    "<center>" eget('wrongcredentials') . "</center>";
        die(
    "</body></html>");
    } elseif (isset(
    $_POST['Login'])) {
        echo 
    "<center>" eget('cheat') . "</center>";
        die(
    "</body></html>");
    }

    echo 
    "<form name='login' action='login1.php?room=Login' method='POST'>";
    if (
    $User) {
        echo 
    "<center>" eget('logged') . "</center>";
        die(
    "</body></html>");
    }
    ?>

    <table>
    <tr height=30>
    <td width=90>Nome :</td>
    <td width=150><input type=text name='username' maxlength=20 size=10 /></td>
    </tr>

    <tr height=30>
    <td width=90>Password :</td>
    <td width=150><input type=password name='password' maxlength=20 size=10 /></td>
    </tr>

    <tr height=30>
    <td width=90><input class=newbutton type=hidden name="Login" value='true' /></td>
    <td width=150><input class=newbutton type=submit name='submit' value='Login' /></td>
    </tr>
    </table>
    Come notato nel caso in cui viene effettuato l'accesso oppure già è stato effettuato la cosa si conclude con :
    Codice PHP:
        die("</body></html>");

    Questo evita che compaia il form sotto per effettuare il login (cosa corretta) però provoca il mancato caricamento di altre parti del sito (cosa che non deve succedere!)...
    mi potreste dire precisamente come sostituire ?

    grazie in anticipo
    Free Indie Games ->> FreankExpo.net <<- Create your games

  2. #2
    Utente di HTML.it L'avatar di Enjix
    Registrato dal
    Apr 2012
    Messaggi
    57
    Il die() è una funzione che, una volta chiamata, può restituire un messaggio d'errore, ma nello stesso tempo termina lo script. Quindi, tutto ciò che viene messo dopo il die() viene ignorato.
    Potresti risolvere il problema utilizzando una normale echo (o funzioni equivalenti, come print()). Oppure, inserisci il codice del form in una variabile e gestisci quest'ultima.

  3. #3
    Potresti dirmi come riscriverlo ?
    Io sto facendo vari tentativi, ma dato che non conosco molto bene il php faccio errori in continuazione e mi sto incartando in una maniera pazzesca !
    Free Indie Games ->> FreankExpo.net <<- Create your games

  4. #4
    Utente di HTML.it L'avatar di Enjix
    Registrato dal
    Apr 2012
    Messaggi
    57
    A parte che ho poche informazioni sul codice (ad esempio so solo che $login_success e $User assumono valori booleani e la funzione lget() e eget() abbiamo come parametro una stringa, ma non so nulla come vengono impostati). Potresti riscrivere il codice in questa maniera, verifica se funziona:

    Codice PHP:
    <?php

    $form 
    "
    <form name='login' action='login1.php?room=Login' method='POST'>
    <table>
    <tr height=30>
    <td width=90>Nome :</td>
    <td width=150><input type=text name='username' maxlength=20 size=10 /></td>
    </tr>

    <tr height=30>
    <td width=90>Password :</td>
    <td width=150><input type=password name='password' maxlength=20 size=10 /></td>
    </tr>

    <tr height=30>
    <td width=90><input class=newbutton type=hidden name=\"Login\" value='true' /></td>
    <td width=150><input class=newbutton type=submit name='submit' value='Login' /></td>
    </tr>
    </table> 
    </form>
    "
    ;
    if (isset(
    $_POST['username']) && isset($_POST['password']) && isset($_POST['Login']) && $_POST['Login'] == 'true') {
        if (
    $login_success)
    {
            echo 
    "<center>" lget('success') . "</center>";
    }
        else
    {
            echo 
    "<center>" eget('wrongcredentials') . "</center>";
            echo 
    $form;
    }
    } elseif (isset(
    $_POST['Login'])) {
        echo 
    "<center>" eget('cheat') . "</center>";
        echo 
    $form;
    }

    if (
    $User) {
        echo 
    "<center>" eget('logged') . "</center>";
        echo 
    $form;
    }
    ?>

  5. #5
    Grazie ! Ho modificato un pò il tuo e sembra funzionare !
    Dopo che viene effettuato il login ( o se si verifica un errore) sembra che però per qualche strano motivo cambi l'allineamento del sito...
    può essere dovuto a questo script che ne segue ?

    Codice PHP:
    <?php
    require("users.php"); //Classi programmate per gli utenti
    require("Database.php");

    header('P3P: CP="IDC DSP COR CURa ADMa OUR IND PHY ONL COM STA"');
    header('P3P: policyref="/w3c/p3p.xml"');

    $login_success false;
    if (isset(
    $_GET['logout']) && intval($_GET['logout']) == 1) {
        
    User::logout();
        
    header("location: /index.php");
    }
    if (isset(
    $_POST['username']) && isset($_POST['password']) && isset($_POST['Login']) && $_POST['Login'] == 'true')
        if (
    User::login($_POST['username'], $_POST['password']))
            
    $login_success true;
    /*
    echo "<script type=\"text/javascript\">\n";
    echo "function setCookie(c_name,value,exdays){var exdate=new Date();exdate.setDate(exdate.getDate() + exdays);var c_value=escape(value) + ((exdays==null) ? \"\" : \"; expires=\"+exdate.toUTCString());document.cookie=c_name + \"=\" + c_value;}";
    echo "var SessionID = \"" . User::$SessionID . "\";\n";
    echo "var Pass = \"" . User::$Pass . "\";\n";
    echo "setCookie(\"SessionID\", SessionID, 30);\n";
    echo "setCookie(\"Pass\", Pass, 30);\n";
    echo "</script>";
    */
    require("index.php");
    ?>
    cos'è quell' header("location: /index.php"); ?! Può essere quello ?
    Free Indie Games ->> FreankExpo.net <<- Create your games

  6. #6
    Utente di HTML.it L'avatar di Enjix
    Registrato dal
    Apr 2012
    Messaggi
    57
    Potresti postare il sorgente generato dalla pagina?

    Edit: per l'header(), non penso sia quello il problema. Redirige solo alla home page in caso di logout.

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.