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

    Non mi registra le sessioni

    Salve a tutti...

    ho una pagina con un modulo e uno script php per il login e usando le sessioni.

    Lo script controlla nel database se esiste l'utente e poi tramite un header:Location mi rimanda alla pagina del login che mi stampa il nome dell'utente.

    Il problema è che quando inserisco nome e password , mi rimanda alla pagina di login, ma mi esce fuori ancora il modulo invece di stampare il nome...praticamente non mi registra la sessione.

    Ho provato sia con i register_global attivati sia disattivati, ho provato usando session_register() e anche $_SESSION['nome'], ma non ne vuole sapere.

    Però se dallo script , invece di fare un header:location gli dico di stampare il risultato della sessione con echo $_SESSION['utente'], me lo stampa....

    sapete dove sta il problema?

    ah...io lavoro sotto linux.


    Vi posto i codici:

    con session_register()
    pagina col modulo index.php)

    Codice PHP:
    <?php

    session_start
    ();

    if (empty(
    $utente))

    {echo 
    "
                   <FORM action=\"/scripts/login.php?\" method=\"POST\">
                   <div class=\"form_text\">username</div>
                   <INPUT type=\"text\" name=\"name\" class=\"form_input\"> 
                   <div class=\"form_text\">password</div>
                   <INPUT type=\"password\" name=\"pass\" class=\"form_input\"> 
                   <INPUT type=\"submit\" name=\"login\" value=\"login\" class=\"form_button\">
                   </FORM> 
                   
    "
    ;}

    else
    {
    echo 
    $utente;

    }
    script per il login:

    Codice PHP:

    <?php
             session_start
    ();
             
    session_register("utente") ;
    if (!empty(
    $_POST['name']) && !empty($_POST['pass']))
    {



    $user=$_POST["name"];
    $pass=$_POST["pass"];

    mysql_connect("localhost","user","password") or die("no database found");
    mysql_select_db("database")or die ("no database");

    $r="select * from utenti where username= '$user' and password= '$pass'";
    $res=mysql_query($r);
    $result=mysql_fetch_array($res);
    if (
    $result["username"]==$user and $result["password"]==$pass)
    {
    $utente=$result["username"];
    header("Location:/prova.php?");}
    else
    {echo
    "non sei registrato";}
    }
    else
    {
    header("Location:http:/prova.php?");}
    ?>

    e questi usando $_SESSION['xxx']

    pagina index.php:
    Codice PHP:
    <?php

    session_start
    ();

    if (empty(
    $_SESSION['utente']))

    {echo 
    "
                   <FORM action=\"/scripts/login.php?\" method=\"POST\">
                   <div class=\"form_text\">username</div>
                   <INPUT type=\"text\" name=\"name\" class=\"form_input\"> 
                   <div class=\"form_text\">password</div>
                   <INPUT type=\"password\" name=\"pass\" class=\"form_input\"> 
                   <INPUT type=\"submit\" name=\"login\" value=\"login\" class=\"form_button\">
                   </FORM> 
                   
    "
    ;}

    else
    {
    echo 
    $_SESSION['utente'];


    }
    script per il login:

    Codice PHP:
    <?php
             session_start
    ();
             
    if (!empty(
    $_POST['name']) && !empty($_POST['pass']))
    {



    $user=$_POST["name"];
    $pass=$_POST["pass"];

    mysql_connect("localhost","user","password") or die("no database found");
    mysql_select_db("database")or die ("no database");

    $r="select * from utenti where username= '$user' and password= '$pass'";
    $res=mysql_query($r);
    $result=mysql_fetch_array($res);
    if (
    $result["username"]==$user and $result["password"]==$pass)
    {
    $_SESSION['utente']=$result["username"];
    header("Location:/prova.php?");}
    else
    {echo
    "non sei registrato";}
    }
    else
    {
    header("Location:http:/prova.php?");}
    ?>

  2. #2
    prova a dare uno sguardo ai commenti

    http://it.php.net/manual/it/function...rite-close.php

    p.s.
    codice:
    ...
    $r="select * from utenti where username= '$user' and password= '$pass'";
    $res=mysql_query($r);
    $result=mysql_fetch_array($res);
    if ($result["username"]==$user and $result["password"]==$pass) {
    ...
    se è stato selezionato allora esiste

    quindi puoi scrivere
    codice:
    $r="SELECT 1 FROM utenti WHERE username = '$user' AND password = '$pass'";
    $res = mysql_query($r);
    if(mysql_num_rows($res) > 0) {
        echo "esiste";
        $_SESSION['utente'] = $user;
    } else {
        echo "non esiste";
    }
    E' la mia opinione ed io la condivido
    Non condivido la tua idea ma darei la vita perché tu la possa esprimere (Voltaire)
    Scrivi sul muro

  3. #3

    non funzionano

    ho provato in mille modi ma non funzionano nemmeno con un semplice script....

    ho provato cosi,nella pagina index.php ho messo:
    Codice PHP:
    <?php
    session_start
    ();
    echo 
    $_SESSION['utente'];
    ?>

    [url="/login.php"]login[/url]
    e nella pagina login.php questo:

    Codice PHP:
    <?php    
      
    session_start
    ();
    $user="fabio";
    $_SESSION["utente"]=$user;

    header("Location:/index.php");

    ?>
    ho provato anche con header("Location:http://localhost/index.php");

    le sessioni me le registra correttamente nella cartella /tmp con questa stringa:

    utente|s:5:"fabio";

    ma quando mi rimanda alla pagina index.php non mi legge la sessione e non mi stampa il risultato.

    Può essere che c'e qualche settaggio errato nelle configurazioni di php e apache? o cosa?

    Lo stesso script, l'ho provato online su hosting windows e funziona, invece su hosting linux/apache mi da un errore 500...

    sono sconvolto........

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.