Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: sessioni PHP

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    12

    sessioni PHP

    Ciao a tutti,sono nuovo in questo forum e sono alle prime armi con il PHP.
    Stavo provando a fare login in php,ma ho riscontrato un problemino con le sessioni:
    file login.php:
    <?php
    session_start();
    include 'connessione.php';
    $utente=$_POST['utente'];
    $pass=$_POST['pass'];
    $query="SELECT * FROM Utenti WHERE Utente='$utente' AND Pass='$pass';";
    $result= mysql_query($query,$conn);
    $row= mysql_num_rows($result);

    if($row==1){
    echo 'Utente loggato perfettamente! Clicca qui!';
    session_register("Logged");
    }else{
    echo 'Non sei loggato:controllare la user e la pass! Ritorna alla Home per ripere il Login';
    }
    ?>
    file mypage.php:
    <?php
    session_start();

    if(session_is_registered(Logged)){
    echo "Benvenuto nella tua pagina privata!!!";
    }else{
    echo "Accesso negato!
    ";
    echo 'Effetturare il Login.
    ';
    echo 'Registrati.
    ';
    }
    ?>

    Il login viene effettuato con successo,ma quando clicco su "Clicca qui!",la pagina mypage.php si apre,ma mi da "Accesso negato!". Perchè??Dove sbaglio?? Grazie a tutti!!!
    ah...mi escono questi errori dopo aver effettuato il login:

    Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\xampp\htdocs\Login\login.php:2) in C:\xampp\htdocs\Login\login.php on line 5

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\Login\login.php:2) in C:\xampp\htdocs\Login\login.php on line 5

    e quando entro in mypage.php:
    Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\xampp\htdocs\Login\mypage.php:2) in C:\xampp\htdocs\Login\mypage.php on line 3

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\Login\mypage.php:2) in C:\xampp\htdocs\Login\mypage.php on line 3

    Grazie e ciao

  2. #2
    di solito l'errore "header already sent..." viene visualizzato quando la pagina inizia con dei tag HTML e indica che gli header di intestazione della pagina sono già stati caricati dai tag e non dallo script php tramite session_start. in altre parole l'errore di solitoa ccade perchè scrivi così

    Codice PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
    <head>
      <title>LOGIN</title>
    <body>
    <?php
    //ERRORE! SESSION_START deve stare all'inizio della pagina
    session_start();
    include 
    'connessione.php';
    $utente=$_POST['utente'];
    $pass=$_POST['pass'];
    $query="SELECT * FROM Utenti WHERE Utente='$utente' AND Pass='$pass';";
    $resultmysql_query($query,$conn);
    $rowmysql_num_rows($result);
    // ecc
    ?>
    </body>
    </html>
    se invece scrivi nel modo seguente il problema dovrebbe risolversi

    Codice PHP:
    <?php
    //CORRETTO! SESSION_START deve stare all'inizio della pagina
    session_start();
    include 
    'connessione.php';
    $utente=$_POST['utente'];
    $pass=$_POST['pass'];
    $query="SELECT * FROM Utenti WHERE Utente='$utente' AND Pass='$pass';";
    $resultmysql_query($query,$conn);
    $rowmysql_num_rows($result);
    // ecc
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
    <head>
      <title>LOGIN</title>
    <body>
    </body>
    </html>

  3. #3
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    per ovviare a quell'errore puoi anche inserire all'inizio della pagina

    ob_start()

    e alla fine ob_end_flush()


    vanno messi come primo e ultimo rigo della pagina
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    12
    Ho provato...ma niente...

  5. #5
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    sbagli proprio tutto

    intanto session_register è deprecata usa $_SESSION

    session_register($var) è equivalente alla serie di istruzioni

    if (!isset($_SESSION[$var]))
    $_SESSION[$var] = //un certo valore;


    e l'errrore comunque potrebbe dipendere dal fatto che su server il parametro register_globals è off, impedendo il funzionamento di session_register

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    12
    ok...cosa dovrei modificare quindi? Io uso XAMPP.
    Come varia il codice?
    Grazie

  7. #7
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    Codice PHP:
    <?php
    session_start
    ();
    include 
    'connessione.php';
    $utente=$_POST['utente'];
    $pass=$_POST['pass'];
    $query="SELECT * FROM Utenti WHERE Utente='$utente' AND Pass='$pass';";
    $resultmysql_query($query,$conn);
    $rowmysql_num_rows($result);

    if(
    $row==1){
    echo 
    'Utente loggato perfettamente! [url="mypage.php"]Clicca qui![/url]';
    $_SESSION['Logged']="Ok";
    }else{
    echo 
    'Non sei loggato:controllare la user e la pass! [url="index.html"]Ritorna [/url] alla Home per ripere il Login';
    }
    ?>
    file mypage.php:
    Codice PHP:
    <?php
    session_start
    ();

    if(isset(
    $_SESSION['Logged']) && $_SESSION['Logged']=="Ok"){
    echo 
    "Benvenuto nella tua pagina privata!!!";
    }else{
    echo 
    "Accesso negato! 
    "
    ;
    echo 
    'Effetturare il [url="login.php"]Login.[/url] 
    '
    ;
    echo 
    '[url="registrazione.php"]Registrati.[/url] 
    '
    ;

    ?>

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    12
    da ancora gli stessi errori...può essere un problema di XAMPP? grazie per avermi scritto il codice

  9. #9
    Originariamente inviato da bstefano79
    Codice PHP:
    <?php
    $utente
    =$_POST['utente'];
    $pass=$_POST['pass'];
    $query="SELECT * FROM Utenti WHERE Utente='$utente' AND Pass='$pass';";
    $resultmysql_query($query,$conn);
    In una seconda vita voglio fare l'hacker... w le sql injection...
    proprio l'esempio di scuola...

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    65
    Si, ma se iniziamo a spiegargli anche le injection e gli diciamo di crearsi una funzione per controllare i get e post, praticamente smette di provarci ...

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.