Visualizzazione risultati 1 fino 18 di 18

Discussione: [php/mysql] Login con sessione non riconosciuta

  1. #1
    Guest

    Exclamation [php/mysql] Login con sessione non riconosciuta

    Ciao a tutti, ho già letto molti argomenti come questo ma non ho trovato quello che fa al mio caso...
    io ho aperto e sto sviluppando un sito web fatto di html al 70% e php e db al 20%...
    già da queste parole si può intuire che non ho confidenza con il php
    io ho creato un sistema di registrazione con form in html e esecuzione php attraverso db ... e fin quà tutto bene...
    come già dice il titolo ho un problema nel loggarmi... vi posto il codice...
    login2.php (mentre login.html è il form)
    Codice:
    <?
     session_start();
    
    $selezione="SELECT nome,password FROM tabella_utenti WHERE nome='".$_POST['nome']."' " .
                 "AND password=(PASSWORD('". $_POST['password']."'))";
    $eseguisel=mysql_query($selezione);
    if (mysql_num_rows($eseguisel) ==1) {echo "Login effettuato con successo..Attendi";
    $_SESSION['logged']=1;?>
    <META HTTP-EQUIV=Refresh CONTENT="1; URL=index.html">
    <?
    } else {echo "Dati non presenti nei nostri database..Attendi";
    $_SESSION['logged']=0;
    ?>
    <META HTTP-EQUIV=Refresh CONTENT="1; URL=login.html">
    <?
    }
    ?>
    eccolo ...
    nome sarebbe il nick e password la pass però anche se nel database ci sono nome e pass non mi fa loggare con questi


    EDIT:
    ho scordato di postare il form del login.html
    Codice:
    <form action="login2.php" method="post">
                        <p align="center">Inserisci il tuo
                        Nickname              
                        <input name="nome" style="font-weight: 700">
                       </p>
                        <p align="center">Inserisci la tua
                        password
                        <input type="password" name="password" style="font-weight: 700">
                       </p>
                        <p align="center">
                        <input type="submit" name="submit" value="Entra"></p>
                        </form>
    GRAZIE ANTICIPAMENTE
    Ultima modifica di seneca : 02-07-2008 alle ore 12.51.52 Motivo: ho scordato il form

  2. #2
    Guest

    Predefinito

    Credo che così debba funzionare!
    Codice PHP:
    <?php
    session_start
    ();

    $nome = $_POST['nome'];
    $password = $_POST['password'];

    $querylogin = mysql_query("SELECT nome,password FROM tabella_utenti WHERE nome = '$nome' AND password = '$password'");

    if (
    mysql_num_rows($querylogin) == 1) {

    $logged = "1";

    session_register($logged);

    echo
    "Login effettuato con successo..Attendi";

    if(
    session_is_register("logged")) {
    $_SESSION['logged'] = 1;

    ?>
    <META HTTP-EQUIV=Refresh CONTENT="1; URL=index.html">
    <?php
    }
    } else {

    echo
    "Dati non presenti nei nostri database..Attendi";
    if(
    session_is_register("logged")) {
    $_SESSION['logged'] = 0;

    ?>
    <META HTTP-EQUIV=Refresh CONTENT="1; URL=login.html">
    <?php
    }
    }
    ?>
    Scusa ma dopo vuoi solo il login..beh non si fa così! :)
    Ultima modifica di sIM : 02-07-2008 alle ore 12.45.49

  3. #3
    Guest

    Smile

    Citazione Originalmente inviato da sIM Visualizza messaggio
    Credo che così debba funzionare!
    Codice PHP:
    <?php
    session_start
    ();

    $nome = $_POST['nome'];
    $password = $_POST['password'];

    $querylogin = mysql_query("SELECT nome,password FROM tabella_utenti WHERE nome = '$nome' AND password = '$password'");

    if (
    mysql_num_rows($querylogin) == 1) {

    $logged = "1";

    session_register($logged);

    echo
    "Login effettuato con successo..Attendi";

    if(
    session_is_register("logged")) {
    $_SESSION['logged'] = 1;

    ?>
    <META HTTP-EQUIV=Refresh CONTENT="1; URL=index.html">
    <?php
    }
    } else {

    echo
    "Dati non presenti nei nostri database..Attendi";
    if(
    session_is_register("logged")) {
    $_SESSION['logged'] = 0;

    ?>
    <META HTTP-EQUIV=Refresh CONTENT="1; URL=login.html">
    <?php
    }
    }
    ?>
    Scusa ma dopo vuoi solo il login..beh non si fa così! :)
    grazie 1000 ora provo... comunque potete dirmi o accennarmi cosa mettere per restringere l'accesso alle pagine se non sei loggato??
    edit:
    non funziona mi da questo errore:
    Dati non presenti nei nostri database..Attendi
    Fatal error: Call to undefined function: session_is_register() in /membri/webastard/login2.php on line 27
    Ultima modifica di webastard : 02-07-2008 alle ore 13.00.08 Motivo: errore

  4. #4
    Guest

    Predefinito

    Sostituisci tutte le occorrenze di session_is_register con session_is_registered. Comunque per verificare l'esistenza di una sessione si può usare anche isset($_SESSION["variabile"]) così come per crearla o modificarla $_SESSION["variabile"] = valore.

  5. #5
    Guest

    Predefinito

    fatto , non mi dà più l'errore ma dice : Dati non presenti nei nostri database..Attendi
    e non mi logga..
    e comunque non ho capito molto : isset($_SESSION["variabile"]) ...
    se potete farmi un esempio...
    ve ne sarei grato...
    comunque grazie 1000 anche a te
    Ultima modifica di webastard : 02-07-2008 alle ore 13.16.08 Motivo: grammatica sbagliata

  6. #6
    Guest

    Predefinito

    Diamo una sistematina a questo codice...
    Codice PHP:
    <?php
    session_start
    ();

    $nome = $_POST['nome'];
    $password = $_POST['password'];

    $querylogin = mysql_query("SELECT nome,password FROM tabella_utenti WHERE nome = '$nome' AND password = '$password'") or die(mysql_error());

    if (
    mysql_num_rows($querylogin) == 1) {

    $_SESSION["logged"] = 1;
    ?>
    <META HTTP-EQUIV=Refresh CONTENT="1; URL=index.html">
    Login effettuato con successo..Attendi
    <?php
    } else {
    $_SESSION['logged'] = 0;
    ?>
    <META HTTP-EQUIV=Refresh CONTENT="1; URL=login.html">
    Dati non presenti nei nostri database..Attendi
    <?php
    }
    ?>
    prova così...

    A questo punto per sapere se sei loggato o no fai così:

    Codice PHP:
    session_start();
    if (isset(
    $_SESSION["logged"]) && $_SESSION["logged"] == 1) {
    // sono loggato
    }
    else {
    // non sono loggato
    }
    Se non funziona, prova a controllare il cookie PHPSESSID (se questo cookie viene perso, viene perso anche il riferimento alla sessione e session_start creerà una nuova sessione, quindi perdi il login.
    Ultima modifica di ivano85 : 02-07-2008 alle ore 15.53.21

  7. #7
    Guest

    Predefinito

    NON funziona mi da questo errore:
    Parse error: syntax error, unexpected '}' in /membri/webastard/login2.php on line 17

    e poi nei cookie riguardanti il mio sito non c'è nessun PHPSESSID
    comuncue grazie lo stesso
    Ultima modifica di webastard : 02-07-2008 alle ore 15.43.39 Motivo: errore grammaticale

  8. #8
    Guest

    Predefinito

    Citazione Originalmente inviato da webastard Visualizza messaggio
    NON funziona mi da questo errore:
    Parse error: syntax error, unexpected '}' in /membri/webastard/login2.php on line 17

    e poi nei cookie riguardanti il mio sito non c'è nessun PHPSESSID
    comuncue grazie lo stesso
    Ho corretto il codice nel mio post precedente... riprovalo e se non funziona ma non mostra errori ricontrolla che ci sia il cookie

    Dimenticavo: sarebbe interessante e utile se questi errori li correggeste da soli (almeno su uno script di neanche 20 righe di codice dovrebbe essere facile trovarli)... in questo modo eviteremmo anche di riempire le discussioni di messaggi inutili
    Ultima modifica di ivano85 : 02-07-2008 alle ore 15.57.50

  9. #9
    Guest

    Predefinito

    ho fatto tutto quello cha mi hai detto ma non funziona con errore:
    No database selected
    Ma il cookie PHPSESSID c'è...
    comunque come ho detto all'inizio dell'argomento "Non ho molta confidenza con il php"
    sono spiacente,se potessi li correggerei io ma non ho tempo per imparare da cima a fondo il php
    Ultima modifica di webastard : 02-07-2008 alle ore 16.32.39 Motivo: grammatica

  10. #10
    Guest

    Predefinito

    Citazione Originalmente inviato da webastard Visualizza messaggio
    ho fatto tutto quello cha mi hai detto ma non funziona con errore:
    No database selected
    Ma il cookie PHPSESSID c'è...
    comunque come ho detto all'inizio dell'argomento "Non ho molta confidenza con il php"
    sono spiacente,se potessi li correggerei io ma non ho tempo per imparare da cima a fondo il php
    Era solo un errore di sintassi (una parentesi di troppo)...

    oggi mi sento buono dai (se qualcuno avesse avuto tanta pazienza con me...) ... devi prima fare la connessione al database:

    mysql_pconnect(blabla); o mysql_connect(blabla);
    mysql_select_db(blabla);

    cerca su www.php.net i parametri e come usarle... (almeno questo...)

  11. #11
    Guest

    Talking

    quale di questi devo mettere?? e in che ordine??ci sono errori??

    Codice PHP:
    mysql_connect (DB_HOST, DB_USER, DB_PASSWORD);
    mysql_select_db (DB_NAME);
    mysql_pconnect("127.0.0.1:4444", "user", "pass")
    devo mettere delle condizioni in if...

    o qualcos'altro??


  12. #12
    Guest

    Predefinito

    solo le prime due righe servono... devi definire le 4 costanti DB_HOST, DB_USER, DB_PASSWORD e DB_NAME se non l'hai già fatto.

  13. #13
    Guest

    Predefinito

    si ok ma in che parte di php li devo mettere??
    edit: fatto!! funziona perfettamente!! ma per restringere l'accesso oltre a: COSA DEVO METTERE
    session_start();

    if (isset($_SESSION["logged"]) && $_SESSION["logged"] == 1) {
    // sono loggato
    }
    else {
    // non sono loggato
    }
    edit:
    NON ABBANDONATEMIIII!!!
    Ultima modifica di webastard : 02-07-2008 alle ore 23.26.13 Motivo: NON ABBANDONATEMI

  14. #14
    Guest

    Predefinito

    Ci sono i commenti... al posto di "// sono loggato" metti il codice da eseguire se l'utente è loggato, mentre invece di "// non sono loggato" metti il codice da eseguire se l'utente non è loggato... semplice...

  15. #15
    Guest

    Predefinito

    <?php
    mysql_connect ("localhost", "Già riempito", "Già riempito");
    mysql_select_db (my_webastard);
    session_start();
    setcookie(session_name(), $_COOKIE[session_name()], time()+10000, "/");

    if (isset($_SESSION["logged"]) &amp;&amp; $_SESSION[ged"log"]
    == 1) {
    echo "6 loggato";
    }
    else {
    echo "Non sei loggato";
    }
    ?>

    così va bene?
    cosa devo aggiungere?
    va bene l'echo?

  16. #16
    Guest

    Predefinito

    1) impostare il cookie non cambia nulla, perchè il php decide quando rimuovere il file della sessione: al massimo potresti gestire tu stesso le sessioni direttamente implementando le dovute funzioni (vedi su www.php.net)
    2) hai fatto un po' di casini nell'if
    3) Non credo che all'utente importi del messaggio "6 loggato" nelle pagine che richiedono autenticazione. Sostituisci quell'eco con il codice della pagina... non è difficile... elabora un po' il codice... fai qualcosa da solo... prova gli script e vedi come funzionano... modificali di tua iniziativa... sbaglia e correggi da solo gli errori più semplici... altrimenti non imparerai mai.

  17. #17
    Guest

    Predefinito

    ok 1 ultima cosa ho un problema con la registrazione nel db posso chiedere qui o devo aprire un nuovo argomento??

  18. #18
    Guest

    Predefinito

    forse è meglio se apri un nuovo argomento se non c'entra molto con questa discussione

Regole di scrittura

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