Visualizzazione risultati 1 fino 11 di 11

Discussione: [PHP] Login con sessione e include del file privato

  1. #1
    Guest

    Post [PHP] Login con sessione e include del file privato

    Ciao a tutti, sto creando un form login..ma ho dei problemi..in pratica funziona così!
    Se la sessione non è registrata e quindi non è y allora si setta su n
    dopo quando è settata su n mostra l'html con il login..appena il login si fa ed è tutto ok la sessione si setta su y e va ad includere un file con un nome scelto da me e questo file contiene questa parte...se la sessione non è registrata e quindi non è y allora si setta su n
    dopo quando è settata su n va al redirect sulla pagina di login
    Capito? xd
    Senò ve lo spiega il codice PHP!
    login.php
    Codice PHP:
    <?php

    session_start
    ();

    if(
    $_GET['a'] == "logout") {
    $_SESSION["verify"] = "n";
    if(
    $_SESSION["verify"] = "n") {
    echo
    "<h1>Disconnesso con Successo! - ".ucfirst("$_SESSION[verify]")."</h1>";
    } else {
    echo
    "<h1>Non riesco a Disconnettermi!</h1>";
    }
    }

    if(
    session_is_registered("verify")) {
    if(
    $_SESSION["verify"] == "y") {
    $fileindex = "wdfasd897873ejh234u234h2kj.php";
    include(
    "$fileindex");
    } else {
    $_SESSION["verify"] = "n";
    }

    ################################### HEADER #############################
    echo "<html>
    <head>
    <title>&bull; www.mysite.com &bull;</title>
    <style>
    body {
    background-image: url(bg.png);
    color: #ffffff;
    font-family: Arial;
    font-size: 13px;
    text-align: center;
    padding: 50px;
    }

    h1 {
    font-weight: bold;
    text-decoration: underline;
    font-style: italiac;
    padding: 0;
    margin: 0;
    font-size: 20px;
    }
    </style>
    </head>
    <body>
    <h1>Accedi al Sito</h1>
    "
    ;
    ################################### HEADER #############################


    function formlogin() {
    echo
    "<form name=\"login\" method=\"POST\" action=\"$PHP_SELF\">
    <table>
    <tr><td>Username:</td><td><input type=\"text\" name=\"user\" /></td></tr>
    <tr><td>Password:</td><td><input type=\"password\" name=\"pass\" /></td></tr>
    <tr><td><input type=\"submit\" name=\"loginok\" value=\"Accedi &raquo;\" /></td><td></td></tr>
    </table>
    </form>"
    ;
    }

    if(
    $_POST["loginok"]) {

    $username = $_POST["user"];
    $password = $_POST["pass"];

    $usera = "user"; # username
    $passb = "pass"; # password

    if($username == $usera && $password == $passb) {
    $_SESSION["verify"] = "y";
    session_register("verify");

    if(
    $_SESSION["verify"] = "y") {
    header("Location: index.php");
    }

    } else {
    echo
    "<b>Errore</b>: Username o Password...errati!";
    }

    } else {
    formlogin();
    }

    ################################### FOOTER #############################
    echo "
    </body>
    </html>
    "
    ;
    ################################### FOOTER #############################
    ?>
    (pagina privata).php
    Codice PHP:
    if(session_is_registered("verify")) {
    if(
    $_SESSION["verify"] == "n") {
    header("Location: index.php");
    } else {
    $_SESSION["verify"] = "y";

    // CODICE DEL SITO

    }
    }
    ?>
    Non da errori, ma la pagina è bianca! xD
    Perchè? Grazie 1000...
    Ciao Davide! ^^

  2. #2
    Guest

    Predefinito

    if($_SESSION["verify"] = "n") {
    usa "==", e' il primo errore che vedo, per il resto non ho capito che succede, quand'e' che da pagana bianca?

  3. #3
    Guest

    Predefinito

    Non cambia niente! :(

  4. #4
    Guest

    Predefinito

    Codice PHP:
    if($_SESSION["verify"] = "y") {
    header("Location: index.php");
    }
    la stessa cosa

    e cosa fa session_start(); ??
    forse non arriva mai al codice che hai postato sopra, in teoria dovrebbe dare errore, visto che $_POST["loginok"] non esiste se i dati non sono stati mandati
    Ultima modifica di amvnews : 26-11-2008 alle ore 21.40.58

  5. #5
    Guest

    Predefinito

    in fatti uso:
    Codice PHP:
    if(isset($_POST["login"])) {
    Se (if) il buttone (in qst caso si chiama 'login') è stato premuto allora ({)
    Ok?
    Session_start...serve ad iniziare la sessione!
    Ciao! ^^
    PS. Il codice postato da te è sbagliato...non deve essere somigliante a y (=) ma uguale (==)

  6. #6
    Guest

    Predefinito

    Invece di verificare se il bottone è stato premuto, verifica se è settato uno dei campi del form (esempio il nome). Io faccio così e non ho problemi

  7. #7
    Guest

    Predefinito

    Tu fai
    Codice:
    if(isset($_POST["login"]))
    mentre il bottone si chiama in modo diverso
    Codice:
    <input type=\"submit\" name=\"loginok\" value=\"Accedi &raquo;\" />

  8. #8
    Guest

    Predefinito

    Ho rimodificato tutto il codice PHP:
    login.php
    Codice PHP:
    <?php

    error_reporting
    (E_ALL ^ E_NOTICE);


    $_SESSION["verify"] = "n";

    function
    blog($_SESSION["verify"]) {
    if(
    $_SESSION["verify"] == "y" ) {
    $fileindex = "wdfasd897873ejh234u234h2kj.php";
    echo
    "$_SESSION[verify] - $fileindex";
    } else {
    echo
    "<b>Errore</b>: Non sei loggato nella funzione...";
    }
    }


    ################################### HEADER #############################
    echo "<html>
    <head>
    <title>&bull; www.mysite.com &bull;</title>
    <style>
    body {
    background-image: url(bg.png);
    color: #ffffff;
    font-family: Arial;
    font-size: 13px;
    text-align: center;
    padding-top: 100px;
    padding-left: 200px;
    }

    h1 {
    font-weight: bold;
    text-decoration: underline;
    font-style: italiac;
    padding: -100px;
    margin: 0;
    font-size: 20px;
    }
    </style>
    </head>
    <body>
    <h1>Accedi al Sito</h1>
    "
    ;
    ################################### HEADER #############################


    function formlogin() {
    $form = "<form name=\"login\" method=\"POST\">
    <table>
    <tr><td>Username:</td><td><input type=\"text\" name=\"user\" value=\"\" /></td></tr>
    <tr><td>Password:</td><td><input type=\"password\" name=\"pass\" value=\"\" /></td></tr>
    <tr><td><input type=\"submit\" name=\"accedi\" value=\"Accedi &raquo;\" /></td><td></td></tr>
    </table>
    </form>"
    ;
    return
    $form;
    }

    if(isset(
    $_POST["pass"])) {

    $username = $_POST['user'];
    $password = $_POST['pass'];

    if(empty(
    trim($username)) OR empty(trim($password))) {
    echo
    "<b>Errore</b>: Username o Password...vuoti!";
    } else {

    $usera = "user"; # username
    $passb = "pass"; # password

    if($user == $usera && $pass == $passb) {
    $_SESSION['verify'] = "y";
    session_register("verify");
    if(
    $_SESSION["verify"] == "y") {
    blog();
    }
    } else {
    echo
    "<b>Errore</b>: Username o Password...errati!";
    }
    }
    } else {
    formlogin();
    }

    ################################### FOOTER #############################
    echo "
    </body>
    </html>
    "
    ;
    ################################### FOOTER #############################

    ?>
    Anche se ho messo error_reporting(), non riporta niente...solo pagina bianca!

  9. #9
    Guest

    Predefinito

    Tieni. Prova così
    Codice PHP:
    <?php

    $__HEADER__
    ="";
    $__BODY__="";
    $__FOOT__="";

    $_SESSION["verify"] = "n";

    function
    blog($var) {
    if(
    $var== "y" ) {
    $fileindex = "wdfasd897873ejh234u234h2kj.php";
    return
    "$_SESSION[verify] - $fileindex";
    }
    else return
    "<b>Errore</b>: Non sei loggato nella funzione...";
    }

    ################################### HEADER #############################
    $__HEADER__ = "<html>
    <head>
    <title>&bull; www.mysite.com &bull;</title>
    </head>
    <body>
    <h1>Accedi al Sito</h1>
    "
    ;
    ################################### HEADER #############################


    function formlogin() {
    $form = "<form name=\"login\" method=\"post\">
    <table>
    <tr><td>Username:</td><td><input type=\"text\" name=\"user\" value=\"\" /></td></tr>
    <tr><td>Password:</td><td><input type=\"password\" name=\"pass\" value=\"\" /></td></tr>
    <tr><td><input type=\"submit\" name=\"accedi\" value=\"Accedi &raquo;\" /></td><td></td></tr>
    </table>
    </form>"
    ;
    return
    $form;
    }

    if(isset(
    $_POST["pass"])) {
    $username = trim($_POST['user']);
    $password = trim($_POST['pass']);
    if(empty(
    $username) OR empty($password)) echo "<b>Errore</b>: Username o Password...vuoti!";
    else {

    $usera = "user"; # username
    $passb = "pass"; # password

    if(@$username == $usera && @$password == $passb) {
    $_SESSION['verify'] = "y";
    if(
    $_SESSION["verify"] == "y") $__BODY__.= blog($_SESSION['verify']);
    } else
    $__BODY__.= "<b>Errore</b>: Username o Password...errati!";
    }
    } else
    $__BODY__.= formlogin();


    ################################### FOOTER #############################
    $__FOOT__.= "
    </body>
    </html>
    "
    ;
    ################################### FOOTER #############################

    echo $__HEADER__.$__BODY__.$__FOOT__;
    ?>
    L'ho modificato un po. Devi rivedere il css, non so perchè ma quando metto il css non vedo l'output, cioè lo stampa ma si vede solo nel sorgente e il browser non l'interpreta correttamente.

  10. #10
    Guest

    Predefinito

    Ok..ma dove ho sbagliato? xd
    Grazie 1000! ^^

  11. #11
    Guest

    Predefinito

    Qualche imperfezione. Ad esempio richiamavi la funzione formlogin senza stampare il risultato. Poi usavi una funzione (session_register (che tra l'altro poteva essere anche non usata)) dopo aver stampato già delle cose nella pagina (quindi dopo aver già modificato gli header) e questo non va bene.

Regole di scrittura

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