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

Discussione: Problema con sessioni

  1. #1

    [PHP] Problema con sessioni

    salve a tutti, ho un problema con la mia pagina di login:
    praticamente dalla main.htm dove ho il form, chiamo la pagina login.php

    Codice PHP:
    <?php
    session_start
    (); //..avviamo la sessione
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Login</title>
    </head>
    <body leftmargin="0" topmargin="0">
    <?
    $db 
    mysql_connect("localhost""root""") or die ("Impossibile Connettersi: " mysql_error());
    mysql_select_db("cinema",$db);

    $username $_POST ['username']; //Otteniamo l'username
    $password $_POST ['pwd']; //Otteniamo la password

    $query "SELECT * FROM utenti WHERE username = '$username'"//Impostiamo la query...
    $risultato mysql_query($query);
    $riga mysql_fetch_array($risultato);

    if(
    mysql_num_rows($risultato) == || $riga['pwd'] != $password//Se l'username o la password sono sbagliati
    {
    die(
    "Username e/o password errati[/b]
    [url='main.htm']Torna indietro[/url]</div>"
    ); //..mandiamo l'errore e terminiamo lo script
    }
    else 
    //Altrimenti...
    {

    $HTTP_SESSION_VARS['username'] = $username//...e salviamo i dati in essa
    $HTTP_SESSION_VARS['password'] = $password;

    header("Location: admin.php");

    }
    mysql_close();

    ?>
    </body>
    </html>
    se metto lo user e la password corrette, praticamente mi esce questo warning:

    Warning: Cannot modify header information - headers already sent by (output started at c:\programmi\easyphp1-8\www\cinema\login.php:11) in c:\programmi\easyphp1-8\www\cinema\login.php on line 32

    se invece metto user e pass errati, mi rimanda correttamente al main.htm

    cosa può essere?
    grazie mille a tutti

  2. #2
    non puoi usare header("Location: admin.php"); là perchè gli header sono già stat inviati quando ha caricato el prime rige di codice html.
    ciao

  3. #3
    quindi come posso risolvere?

  4. #4
    se può interessare, nella pagina admin.php, all'inizio del "body" ho:

    Codice PHP:
    session_start();
    if (!
    $_SESSION[username]) header("Location: login.php");
    ?> 
    può servire??

    graazzie

  5. #5
    Utente di HTML.it L'avatar di chris
    Registrato dal
    Sep 1999
    Messaggi
    1,568
    Inserisco il tag nel titolo.
    "Nei prossimi tre anni col mio governo vogliamo vincere anche il cancro, che colpisce ogni anno 250.000 italiani e riguarda quasi due milioni di nostri concittadini"

  6. #6
    essendo una pagina senza output, puoi proprio togleire tutto quello che non è php...
    oppure lo fai stampare dopo aver fatto i controlli sul login...
    l'importante è che prima di header nn ci sian oputput, a meno che nn usi ob_start(); in testa alla pagina, ma nn è correttissimo usarlo... diciamo che è una sorta di tappabuchi in questi casi
    ...::: DESIDERARE E' UMANO :::...
    ...::: POSSEDERE E' DIVINO :::...
    ...::: HAVE A NICE DAY :::...
    (¯`·.¸¸.->ĐĮ ĦΞŁŁ<-.¸¸.·`¯)
    http://www.djhellclub.com

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    116
    Ogni qual volta si utilizza la funzione " header" non bisogna, ripeto, non bisogna mai aver messo dei tag html.... o più in generale non bisogna mai aver dato l'output!!!
    E' buona cosa, quando si programma, di dividere il codice motore da quello grafico questo per evitare questi inutili problemi!!!!

  8. #8
    si ma quindi se levo da entrambe le pagine la parte header("Location: login.php"); come faccio a fare il re-indirizzamento alla pagina?

  9. #9
    viceversa devi fare.. devi togleire il codice html, non l'header
    ...::: DESIDERARE E' UMANO :::...
    ...::: POSSEDERE E' DIVINO :::...
    ...::: HAVE A NICE DAY :::...
    (¯`·.¸¸.->ĐĮ ĦΞŁŁ<-.¸¸.·`¯)
    http://www.djhellclub.com

  10. #10
    ah perfetto quindi ora la pagina login è a posto.

    ora ho un problemino con la pagina admin.php

    Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\programmi\easyphp1-8\www\cinema\admin.php:11) in c:\programmi\easyphp1-8\www\cinema\admin.php on line 12

    Notice: Use of undefined constant username - assumed 'username' in c:\programmi\easyphp1-8\www\cinema\admin.php on line 14

    praticamente è lo stesso discorso, pagina html con dentro questo pezzo di php:

    Codice PHP:
    <?
    session_start
    ();
    if (!
    $_SESSION[username]) header("Location: login.php");
    ?>
    è un controllo che uso per le pagine protette...

    come posso risolverlo?

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.