Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    87

    Problema con Sessione LOGIN

    Salve raga l'ultima volta che ho scritto siete riusciti ad aiutarmi, spero ( per la mia salute )
    che accada anche questa volta.

    Allora ho creato una pagina nella quale si può scegliere di iscriversi:

    -o come utente
    -o come negozio

    bene per quanto riguarda la registrazione è tutto ok, quando però vado a creare il login ho un problemino.
    Ho fatto in modo che il login se riconosce che l'email appartiene alla tabella utenti mi crea una sessione se invece questa appartiene alla tabella negozi me ne crea un altra inserisco il codice del login:

    Codice PHP:
    $recupera_dati_utenti mysql_query("SELECT * FROM utenti WHERE email='$email_login' AND password='$password_cript_login'"); 
    $verifica_dati_utenti mysql_num_rows($recupera_dati_utenti); 
    $recupera_dati_negozi mysql_query("SELECT * FROM negozi WHERE email='$email_login' AND password='$password_cript_login'"); 
    $verifica_dati_negozi mysql_num_rows($recupera_dati_negozi); 
    if(
    $verifica_dati_utenti == 1){ 
    echo 
    "Login effettuato con successo!"
    $sessione_utente mysql_fetch_array($recupera_dati_utenti); 
    $_SESSION['nome_utente'] = $sessione_utente['email']; 

    }elseif(
    $verifica_dati_negozi == 1){ 
    echo 
    "Login effettuato con successo!"
    $sessione_negozio mysql_fetch_array($recupera_dati_negozi); $_SESSION['nome_negozio'] = $sessione_negozio['email']; 

    }else{
    echo 
    "Accesso Negato password o username sbagliati"

    Il problema vero e proprio insorge quando all'inizio della pagina index dove è presente anche il login imposto delle condizioni che se è stata creata la sessione $_SESSION['nome_utente']
    mi reindirizzi ad una pagina se trovi una sessione $_SESSION['nome_negozio'] me ne mandi ad un altra, altrimenti lasci l'utente sulla pagina del login.

    questo è il codice all'inizio della pagina:


    Codice PHP:
    <?php 
    session_start
    (); 
    include 
    'connect.php'
    //se è stata creata una sessione rimanda l'utente al navigatore
    if(isset($_SESSION['nome_utente'])){ 
    include 
    'navigatore.php'
    //se è stata creata una sessione rimanda il negozio a lsuo negozio

    }elseif(isset($_SESSION['nome_negozio'])){ 
    include 
    'negozio.php'
    }else{ 
    //altrimenti lascia l'utente su questa pagina ovvero quella di registrazione 
    ?>
    Mi da il seguente errore:

    Notice: A session had already been started - ignoring session_start() in C:\EasyPHP\www\miosito\index.php on line 2

    Spero di essere stato chiaro aspetto qualche soluzione grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202
    probabilmente tramite gli include fai due volte la session start, non è un errore, infatti viene esposto come notice e ti dice che è stato semplicemente ignorato...
    una possile soluzione sarebbe che invece di fare include 'navigatore.php'; puoi modificare header location, in sostanza lo redirigi verso una pagina piuttosto che un'altra
    Che mestiere difficile.....essere da soli ancora di più

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    87
    ho controllato e ricontrollato, tramite gli include non viene inserito nessun altro session_start()
    inoltre lerrore che mi da me lo ripete all'infinito ovvero:

    Notice: A session had already been started - ignoring session_start() in C:\EasyPHP\www\miosito\index.php on line 2

    Notice: A session had already been started - ignoring session_start() in C:\EasyPHP\www\miosito\index.php on line 2

    Notice: A session had already been started - ignoring session_start() in C:\EasyPHP\www\miosito\index.php on line 2

    Notice: A session had already been started - ignoring session_start() in C:\EasyPHP\www\miosito\index.php on line 2

    Notice: A session had already been started - ignoring session_start() in C:\EasyPHP\www\miosito\index.php on line 2

    Notice: A session had already been started - ignoring session_start() in C:\EasyPHP\www\miosito\index.php on line 2

    e così via per tutta la pagina....aiutatemi please

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    87
    non so se può aiutarvi anzi penso proprio di si:

    Nel file navigatore.php ho inserito le seguenti condizioni ad inizio pagina:

    Codice PHP:
    <?php include 'connect.php'
    //se non è stata creata una sessione rimanda l'utente alla index if(!isset($_SESSION['utente'])){ 
    include 'index.php'
    } elseif(!isset(
    $_SESSION['negozio'])){ 
    include 
    'index.php'
    }else{ 
    //altrimenti lascia l'utente su questa pagina ovvero quella del navigatore 
    ?>
    In pratica il problema è che non mi legge la sessione cioè entra nel primo if e quindi mi include
    nuovamente index.php che include navigatore.php che include index.php ecc ecc
    Si crea un ciclo infinito!

    Facendo questa osservazione si evince che il problema è che la pagina non riesce ad individuare la sessione dove sbaglio?

  5. #5
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202
    mi indichi per favore la pagina index (con relativo codice sotto) e una della pagine di inclusione?
    Che mestiere difficile.....essere da soli ancora di più

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    87
    pagina index:

    <?php
    session_start();
    include 'connect.php';

    //se è stata creata una sessione rimanda l'utente al navigatore
    if(isset($_SESSION['utente'])){

    include 'navigatore.php';

    }elseif(isset($_SESSION['negozio'])){

    include 'negozio.php';

    }else{
    //altrimenti lascia l'utente su questa pagina ovvero quella di registrazione
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it">
    <head>
    <meta http-equiv="Content-type" content="text/html; charset=iso-8859-1" />
    <meta http-equiv="Content-Language" content="it" />
    <title>pagina index</title>

    <link href="css/index_chrome.css" rel="stylesheet" type="text/css" />
    </head>

    <body>
    <div id="content">
    <div id="zona_superiore">
    <div id="logo">[img]img/logo.gif[/img]</div>
    <div id="linea_logo">[img]img/linea_logo.png[/img]</div>
    <div id="login">
    <?php
    if(!isset($_POST['submit'])){
    echo '
    <form name="login" action="#" method="POST" enctype="application/x-www-form-urlencoded">
    EmailPassword

    <input type="text" name="email"/>

    <input type="password" name="password"/>
    <input name="submit" type="submit" value=" entra" alt="invia il modulo" title="invia il modulo" width="37" height="22">
    </form>';
    } else {
    $email_login = mysql_real_escape_string($_POST['email']);
    $password_login = mysql_real_escape_string($_POST['password']);


    if($email_login =="" || $password_login ==""){
    echo "Non hai compilato i campi";
    }else{

    //cripto la password
    $password_cript_login = md5($password_login);

    $recupera_dati_utenti = mysql_query("SELECT * FROM utenti WHERE email='$email_login' AND password='$password_cript_login'");
    $verifica_dati_utenti = mysql_num_rows($recupera_dati_utenti);

    $recupera_dati_negozi = mysql_query("SELECT * FROM negozi WHERE email='$email_login' AND password='$password_cript_login'");
    $verifica_dati_negozi = mysql_num_rows($recupera_dati_negozi);

    if($verifica_dati_utenti == 1){
    echo "Login effettuato con successo!";
    $sessione_utente = mysql_fetch_array($recupera_dati_utenti);
    $_SESSION['utente'] = $sessione_utente['email'];
    //refresh
    header("refresh: 2; URL= navigatore.php");
    }elseif($verifica_dati_negozi == 1){
    echo "Login effettuato con successo!";
    $sessione_negozio = mysql_fetch_array($recupera_dati_negozi);
    $_SESSION['negozio'] = $sessione_negozio['email'];
    //refresh
    header("refresh: 2; URL= navigatore.php");
    }else{
    echo "Accesso Negato password o username sbagliati";
    }
    }
    }
    ?>
    </div>

    <div id="sfumatura_bassa">[img]img/sfumatura_bassa.png[/img]</div>

    <div id="zona_iscrizione">

    <?php
    if(!isset($_GET['passkey_negozio'])){

    include 'register_negozio.php';

    } else{

    $passkey_negozio = $_GET['passkey_negozio'];



    $sql_recupera_negozio = "SELECT * FROM negozi_temp WHERE codiceconferma = '$passkey_negozio'";
    $risultato_negozio = mysql_query($sql_recupera_negozio);

    //se la query funziona
    if($risultato_negozio){

    $conta_negozio = mysql_num_rows($risultato_negozio);
    // se lo trova
    if($conta_negozio == 1){

    $rows_negozio = mysql_fetch_array($risultato_negozio);
    $nome_negozio = $rows_negozio['nome_negozio'];
    $categoria_negozio = $rows_negozio['categoria'];
    $citta_negozio = $rows_negozio['citta'];
    $regione_negozio = $rows_negozio['regione'];
    $email_negozio = $rows_negozio['email'];
    $password_negozio = $rows_negozio['password'];

    $password_negozio_cript = md5($password_negozio);

    $sql_conferma_negozio = mysql_query("INSERT INTO negozi (nome_negozio , categoria , citta , regione , data_registrazione , email , password) VALUES ('$nome_negozio', '$categoria_negozio', '$citta_negozio', '$regione_negozio', now() , '$email_negozio', '$password_negozio_cript')");

    //se l'inserimento dei dati ha funzionato perfettamente cancella i dati in utenti_temp
    if($sql_conferma_negozio){
    echo "Il tuo negozio è stato registrato con successo















    ";
    $sql_elimina_dati_negozio = mysql_query("DELETE FROM negozi_temp WHERE codiceconferma= '$passkey_negozio'");
    } else{

    echo "Errore generale";
    }


    }

    }
    }
    ?>


    <?php
    if(!isset($_GET['passkey'])){

    include 'register_utente.php';

    } else{

    $passkey = $_GET['passkey'];


    $sql_recupera_user = "SELECT * FROM utenti_temp WHERE codiceconferma = '$passkey'";
    $risultato_user = mysql_query($sql_recupera_user);

    //se la query funziona
    if($risultato_user){

    $conta_user = mysql_num_rows($risultato_user);

    // se lo trova
    if($conta_user == 1){

    $rows = mysql_fetch_array($risultato_user);
    $nome_utente = $rows['nome'];
    $cognome_utente = $rows['cognome'];
    $data_nascita = $rows['data_nascita'];
    $citta = $rows['citta'];
    $regione = $rows['regione'];
    $email = $rows['email'];
    $password = $rows['password'];

    $password_cript = md5($password);

    $sql_conferma_user = mysql_query("INSERT INTO utenti (nome , cognome , citta , regione , data_nascita , data_registrazione , email , password) VALUES ('$nome_utente', '$cognome_utente', '$citta', '$regione', '$data_nascita', now() , '$email', '$password_cript')");

    //se l'inserimento dei dati ha funzionato perfettamente cancella i dati in utenti_temp
    if($sql_conferma_user){
    echo "Il tuo account è stato attivato con successo";
    $sql_elimina_dati = mysql_query("DELETE FROM utenti_temp WHERE codiceconferma= '$passkey'");
    } else{

    echo "Errore generale";
    }


    }

    }
    }
    ?>

    </div>

    <div id="vento_colorato">[img]img/vento_colorato.png[/img]</div>
    </div>
    <div id="zona_inferiore">
    </div>

    </div>
    </body>
    </html>
    <?php
    }
    ?>

    pagina navigatore:

    <?php
    include 'connect.php';
    //se non è stata creata una sessione rimanda l'utente alla index
    if(!isset($_SESSION['utente'])){

    include 'index.php';

    }
    elseif(!isset($_SESSION['negozio'])){

    include 'index.php';

    }else{
    //altrimenti lascia l'utente su questa pagina ovvero quella del navigatore
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>SOCIAL COMMERCE</title>
    <link href="css/navigatore_chrome.css" rel="stylesheet" type="text/css" />
    </head>

    <body>
    Questa è la pagina navigatore
    </body>
    </html>
    <?php
    }
    ?>

  7. #7
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202
    [QUOTEmi include nuovamente index.php che include navigatore.php che include index.php ecc ecc Si crea un ciclo infinito![/QUOTE]
    Il problema lo hai appunto trovato tu
    come ti ho detto non usare l'include ma header location e vedrai che andrà a posto
    Che mestiere difficile.....essere da soli ancora di più

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    87
    non funge lo stesso perchè anche se effettuo il redirect quando vengo inviato nella pagina navigatore.php

    mi rientra nella if seguente:

    if(!isset($_SESSION['utente'])){

    header("refresh: 2; URL= index.php");

    }

    e vengo rispedito nella index, poi nella index vengo rispedito nel navigatore ecc ecc

    rimane il solito problema, ossia non riesco a fare in modo che isset($_SESSION['utente'])

    sia vera

    Ho anche provato ad inizio pagina navigatore.php ad inserire session_start() ma è sempre uguale.

  9. #9
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202
    header('Location: tuapagina.php');

    non devi refresciare la pagina ma bensi cambiarla completamente..
    Che mestiere difficile.....essere da soli ancora di più

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    87
    grazie amico ci sono riuscito sei un santo

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.