Visualizzazione risultati 1 fino 15 di 15

Discussione: [risolto] Login su cookie multi-utente, help!

  1. #1
    Guest

    Exclamation [risolto] Login su cookie multi-utente, help!

    Ciao a tutti...
    ...ho questo codice (basato su cookie) per far accedere più utenti con user e pass diversi, nella stessa area:
    Codice PHP:
    <?php
    $array1
    = array("xxx", "xxx");
    $array2 = array("000", "000");
    $pagina_amministrazione = "reserved.php";
    if (
    $_POST[login_module]) {
    if ((!
    $_POST[user]) || (!$_POST[pass])) {
    die(
    "<center><b>Campi non compilati</b> - <a href='login.php'>Torna Indietro</a></center>");
    } else if ((
    in_array($_POST[user], $array1) && in_array($_POST[pass], $array1)) || (in_array($_POST[user], $array2) && in_array($_POST[pass], $array2))) {
    $_SESSION[login] = "true";
    $_SESSION[username] = $_POST[user];
    header("Location: $pagina_amministrazione");
    } else {
    die(
    "<center><b>Accesso Negato!</b> - <a href='login.php'>Torna Indietro</a></center>");
    }
    } else if (
    $_POST[login_module] == "" || !$_POST[login_module]) {
    echo(
    "<b>Effettua il login per accedere all'area utenti!</b><br>");
    echo(
    "<center><form name=\"login\" method=\"POST\" action=\"\">");
    echo(
    "<table align=\"center\" border=\"0\">");
    echo(
    "<tr><td><b>Username:</b></td><td><input type=\"text\" name=\"user\"></td></tr>");
    echo(
    "<tr><td><b>Password:</b></td><td><input type=\"password\" name=\"pass\"> <input type=\"submit\" name=\"login_module\" value=\"Login\"></td></tr></table></center>");
    }
    ?>
    nella pagina reserved.php (la pagina riservata, appunto) metto questo codice (prima di ogni altra cosa) che serve a bloccare le persone che non hanno fatto (o non fanno) il login:
    Codice PHP:
    <?php
    session_start
    ();

    if ((isset(
    $_GET['do'])) && ($_GET['do'] == "logout")) {
    $_SESSION = array();
    if (isset(
    $_COOKIE[session_name()])) {
    setcookie(session_name(), '', time()-42000, '/');
    }
    session_destroy();
    }
    if ((!isset(
    $_SESSION[login])) || (!isset($_SESSION[username]))) {
    header("Location: login.php");
    }

    echo(
    "<p align='right'><b>Benvenuto <u>".$_SESSION[username]."</u> nell'area utenti!</b></p>");
    ?>
    Il problema sta, che questo caspio di codice (anche dopo aver fatto il login correttamente), mi rimanda sempre a login.php... Cosa c'è di errato?!?
    ...grazie in anticipo!

    ...byex!

  2. #2
    Guest

    Predefinito

    ci sono vari errori nello script:
    c'è un misto di cookie e sessioni e non si capisce bene cosa stai usando.
    lo script è poco sicuro perchè un utente pùò entrare con lo stesso username, ma con diverse password, e anche il conmtrario (diversi user, stessa password).

    devi sistemare un bel pò di cose.

    prova questo codice nella pagina reserved.php:

    Codice PHP:
    <?php
    session_start
    ();

    if (isset(
    $_GET['do']) && $_GET['do'] == "logout") {
    $_SESSION = array();
    session_destroy();
    }
    if (!isset(
    $_SESSION['login']) || !isset($_SESSION['username'])) {
    header("Location: login.php");
    }

    echo(
    "<p align='right'><b>Benvenuto <u>".$_SESSION['username']."</u> nell'area utenti!</b></p>");
    ?>
    Ultima modifica di jostock : 14-06-2006 alle ore 15.34.59

  3. #3
    Guest

    Predefinito

    Uff, mi rimanda sempre alla pagina login.php
    ...senti jostock, non è che magari ti andrebbe di dare una bella sistemata ai miei 2 script? (per favoreeeeee, magari ci sentiamo su MsN)
    Ho bisogno di un efficace login, a prova di tutto!
    ...byex!
    Ultima modifica di TurkoSoft : 14-06-2006 alle ore 16.34.11

  4. #4
    Guest

    Predefinito

    prova a togliere:
    Codice PHP:
    session_start();

  5. #5
    L'avatar di Leo91
    Leo91 non è connesso Altervistiano Junior
    Data registrazione
    28-03-2004
    Residenza
    alle tue spalle
    Messaggi
    728

    Predefinito

    Citazione Originalmente inviato da phpforum
    prova a togliere:
    Codice PHP:
    session_start();
    non penso sia quello il problema...visto che USA le sessioni...

  6. #6
    Guest

  7. #7
    Guest

    Predefinito

    Citazione Originalmente inviato da Leo91
    non penso sia quello il problema...visto che USA le sessioni...
    in verità, utilizzo i cookie

    EDIT: anche se tolgo session_start(); lo script mi rimanda sempre a login.php
    Ultima modifica di TurkoSoft : 15-06-2006 alle ore 14.48.29

  8. #8
    Guest

    Predefinito

    tu imposti delle sessioni non dei cookie.
    ma conosci la differenza tra cookie e sessioni, e come si usano?

  9. #9
    Guest

    Predefinito

    Citazione Originalmente inviato da jostock
    tu imposti delle sessioni non dei cookie.
    ma conosci la differenza tra cookie e sessioni, e come si usano?
    la sessione è quando tu chiudi la pagina (o effettui il logout), e devi nuovamente (al nuovo accesso) ricompilare il login...
    i cookie quando una volta loggato, se non effettui il logout, lui rimane "connesso" alla pagina (anche se la chiudi dalla X); in pratica come sul forum di AV

    PS: non so se mi sono spiegato bene!

  10. #10
    Guest

    Predefinito

    io lo so che cosa sono, ma intendevo in termini di programmazione cioè come si impostano come si modificano come si cancellano ecc...

  11. #11
    Guest

    Predefinito

    io nel codice della apgina di login non vedo enssun session_start()
    comunque in pratica al differenza tra sessioni e cookie è generalmente quella da te illustrata (dico generalemtne perchè volendo può anche essere il contrario) comunque quelle che usi tu sono sessioni, tant'è vero che l'array cookies e setcookie() li usi solo per cancelalre il cookie di sessione

  12. #12
    Guest

    Predefinito

    @ jostock: lo so che lo sai, mica devo insegnartelo io

    Ma qual'è il mio errore? Cosa c'è che non va in questo bastard* codice???
    Help, please!

  13. #13
    Guest

    Predefinito

    Citazione Originalmente inviato da SoulHome
    nel codice della pagina di login non vedo nessun session_start()
    mi auto quoto

  14. #14
    Guest

    Predefinito

    quindi verrebbe così (?):
    Codice PHP:
    <?
    session_start
    ();

    $array1 = array("xxx", "xxx");
    $array2 = array("000", "000");
    $pagina_amministrazione = "reserved.php";
    if (
    $_POST[login_module]) {
    if ((!
    $_POST[user]) || (!$_POST[pass])) {
    die(
    "<center><b>Campi non compilati</b> - <a href='login.php'>Torna Indietro</a></center>");
    } else if ((
    in_array($_POST[user], $array1) && in_array($_POST[pass], $array1)) || (in_array($_POST[user], $array2) && in_array($_POST[pass], $array2))) {
    $_SESSION[login] = "true";
    $_SESSION[username] = $_POST[user];
    header("Location: $pagina_amministrazione");
    } else {
    die(
    "<center><b>Accesso Negato!</b> - <a href='login.php'>Torna Indietro</a></center>");
    }
    } else if (
    $_POST[login_module] == "" || !$_POST[login_module]) {
    echo(
    "<b>Effettua il login per accedere all'area utenti!</b><br>");
    echo(
    "<center><form name=\"login\" method=\"POST\" action=\"\">");
    echo(
    "<table align=\"center\" border=\"0\">");
    echo(
    "<tr><td><b>Username:</b></td><td><input type=\"text\" name=\"user\"></td></tr>");
    echo(
    "<tr><td><b>Password:</b></td><td><input type=\"password\" name=\"pass\"> <input type=\"submit\" name=\"login_module\" value=\"Login\"></td></tr></table></center>");
    }
    ?>
    EDIT:
    raga, ho risolto!!!
    In pratica, ho provato (come mi ha consigliato SoulHome) a mettere session_start(); nella pagina login.php e adesso funziona tutto!
    Grazie mille raga, siete grandi!
    Ultima modifica di seneca : 16-06-2006 alle ore 00.47.45

  15. #15
    L'avatar di seneca
    seneca non è connesso Super Moderatore
    Data registrazione
    18-12-2004
    Residenza
    la Città Eterna
    Messaggi
    8,376

    Predefinito

    Turko turko, la prossima volta che fa up e non usi il tasto EDITA ti concio per le feste!
    Chiudo.


    -- Aut Roma Aut Nihil!

Regole di scrittura

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