Visualizzazione dei risultati da 1 a 7 su 7

Discussione: PHP Login e sessione

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    32

    PHP Login e sessione

    Ciao a tutti, sto' cercando di creare una semplice maschera di login per accedere ad una zona riservata del mio sito.
    Leggendo sul forum e copiando alcuni esempi credevo di aver creato qualcosa di funzionante ed infatti in locale tutto e' ok. Peccato che appena pubblico le pagine ho i seguenti errori:

    Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /hermes/web08/b972/pow.panaexpo/htdocs/pages/login.php:2) in /hermes/web08/b972/pow.panaexpo/htdocs/pages/login.php on line 27

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /hermes/web08/b972/pow.panaexpo/htdocs/pages/login.php:2) in /hermes/web08/b972/pow.panaexpo/htdocs/pages/login.php on line 27

    Warning: Cannot modify header information - headers already sent by (output started at /hermes/web08/b972/pow.panaexpo/htdocs/pages/login.php:2) in /hermes/web08/b972/pow.panaexpo/htdocs/pages/login.php on line 30


    Ripeto, in locale funziona, da una pagina all'altra passa la variabile di sessione e mi da' l'accesso se password e user sono corretti, altrimenti mi rimanda al login.
    questo e' il codice nella pagina di login:


    <?php

    include("config.inc.php");

    //mi connetto a mysql
    $db = mysql_connect($db_host, $db_user, $db_password) or die ("Connessione al database non riuscita");
    mysql_select_db($db_name, $db) or die ("Selezione del database non riuscita");


    // Convert to simple variables
    $user = $_POST['user'];
    $password = $_POST['password'];


    // check if the user info validates the db
    $query = "SELECT * FROM user_admin WHERE user='$user' AND password='$password' ";
    $result = mysql_query($query, $db);

    $login_check = mysql_num_rows($result);

    if($login_check >0){
    while($row = mysql_fetch_array($result)){
    foreach( $row AS $key => $val ){
    $$key = stripslashes( $val );
    }
    session_start() ;
    $_SESSION['Username'] = $user;

    header("Location: ../admin/select_newsletter.php");
    exit();
    }

    }else {

    ?>
    //pagina HTML

    <?php

    //chiudo la connessione con mysql
    mysql_close($db) or die ("Impossibile chiudere la connessione con MySQL");
    }
    ?>


    Questo il codice nella pagina d'arrivo

    <?php
    // Controllo accesso
    session_start() ;
    echo"Sess: $_SESSION[Username]";
    if (!isset($_SESSION['Username']))
    {
    header('location:../pages/index.php');
    exit;
    }

    ?>

    <html>
    <head>
    ......


    Ho fatto diversi tentativi aiutandomi col forum ma senza successo. Cosa sbaglio?

    Grazie a tutti

  2. #2
    prova a vedere una cosa..

    prima di "<?php" c'è una riga vuota?? se mai toglila.. in alcuni server da problemi

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    32
    Nella pagina di arrivo c'era effettivamente una riga vuota ma dopo averla tolta non e' cambiato nulla.
    Forse e' utile precisare che la url nella barra quando ho l'errore e' ...login.php
    e non select_newsletter.php.

    In teoria quindi l'errore e' nella pagina di login??

  4. #4
    no no... dove fai l'header... in quella pagina teoricamente... prova a vedere se c'è una riga vuota prima di "<?php"

  5. #5
    non so se c'entra...

    qui:
    Codice PHP:
    $$key stripslashes$val ); 
    c'è il doppio simbolo del dollaro...

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    32
    Purtroppo non e' neanche quello. Ho cmq modificato il codice eliminando quel controllo

    if($login_check >0){
    while($row = mysql_fetch_array($result)){


    session_start() ;
    $_SESSION['Username'] = $user;

    header("Location: ../admin/select_newsletter.php");
    exit();
    }

    }else {


    Gli errori segnalati sono a riga 25 cioe' questa:

    session_start() ;

    e 28:

    header("Location: ../admin/select_newsletter.php");

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    32
    Avevi ragione, controllando meglio ho trovato degli spazi vuoti DOPo la chiusura del php nel file include config.inc.php

    adesso va che e' una meraviglia. grazie infinite

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.