Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it L'avatar di lyllo
    Registrato dal
    Apr 2001
    Messaggi
    832

    Login non funzionante ON.line ma SOLO in locale

    ciao gente.
    scriptino di login in area privata molto semplice. in LOCALE (usando WAMP Server) funziona, online no.

    index-php -> form login -> login.php -> creazione $_SESSIOn['loggato'] = true -> index.php
    Codice PHP:
    if(isset($_SESSION['loggato']) || $_SESSION['loggato'] == true){...
    else{ 
    //vecchia pagina con il form di login 
    se faccio dei test con print_r($_SESSION) in login.php le variabili di sessione sono ok, al rientro nell'index.php però un print_r($_SESSION); mi stampa solo:
    Array(
    )

    ma che succede?
    si perde la sessione?
    ovviamente session_start(); c'è... e ripeto, lo script in locale funziona bene. quindi anche altrove, dove sia richiesto l'identificazione di una qualche altra variabile di sessione, funziona bene.
    che cavolo devo modficare?

    grazie

  2. #2

  3. #3
    Utente di HTML.it L'avatar di lyllo
    Registrato dal
    Apr 2001
    Messaggi
    832
    allora provando con i report degli errori:

    Notice: Undefined index: loggato in /home/httpd/vhosts/rotorjetgroup.com/httpdocs/redazione/index.php on line 45
    dove "loggato" dovrebbe essere da qui:
    Codice PHP:
    if(isset($_SESSION['loggato']) || $_SESSION['loggato'] == 1){ 

  4. #4
    Se non fornisci maggiori informazioni, è difficile capire quale sia il problema.

    In ogni caso, se stai utilizzando un header location, prova a leggere questo articolo:

    Effettuare un redirect con header location e propagare le sessioni

  5. #5
    Utente di HTML.it L'avatar di lyllo
    Registrato dal
    Apr 2001
    Messaggi
    832
    Originariamente inviato da filippo.toso
    Se non fornisci maggiori informazioni, è difficile capire quale sia il problema.

    In ogni caso, se stai utilizzando un header location, prova a leggere questo articolo:

    Effettuare un redirect con header location e propagare le sessioni
    1) quali informazioni possono essere utili a capire il problema?
    indxe.php:
    Codice PHP:
    <?php
    session_start
    ();
    include_once(
    'conn.inc.php');
    error_reporting(E_ALL);
    ini_set('display_errors'1);

    ?>
    <html>
    <head>
    <title>Modulo gestione velivoli</title>

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

    <?php
    if(!isset($_SESSION['loggato']) || $_SESSION['loggato'] != true){

    echo 
    "<center><h1>Modulo gestione velivoli Rotorjet</h1><form name='login' method='POST' action='login.php'>Username: <input type='text' name='un'>  Password: <input type='password' name='pwd'> <input type='submit' name='sub' value='Entra'></form>";

    }

    if(isset(
    $_SESSION['loggato']) || $_SESSION['loggato'] == true){
    include(
    'testa.php');
    echo 
    "


    Login effettuato con successo. Sei nell'area privata del sito Rotorjet, lavora con criterio e cautela.
    Evita di toccare
    se non sai cosa stai facendo."
    ;
    }
    ?>
    </center>
    </body>
    </html>
    login.php
    Codice PHP:
    <?php
    session_start
    ();
    include_once(
    'conn.inc.php');

    $un stripslashes($_POST['un']);
    $pd stripslashes(md5($_POST['pwd']));

    $q mysql_query("SELECT * FROM utenti WHERE username='$un' AND password='$pd'");
    $row mysql_fetch_array($q);
    if(
    mysql_num_rows($q) > 0){
        
    $_SESSION['loggato'] = true;
        
    $_SESSION['nome'] = $row['nome']." ".$row['cognome'];
        
    $_SESSION['status'] = $row['profilo'];

    //echo"[url='index.php']Loggato con successo, vai a lavorare![/url]";
        
    header('Location: index.php');

    }
    else{
        echo 
    "Nome utente o password errati. [url='javascript:history.back();']Indietro[/url] ";
    }
    ?>
    ma lo stesso problema ce l'ho anche se al posto degli header torno indietro con un normale link...
    problemi che peraltro NON ho mai avuto fino ad oggi

  6. #6
    Metti questo codice all'inizio dei due script (prima di session_start()):

    Codice PHP:
    error_reporting(E_ALL);
    ini_set('display_errors'1); 

  7. #7
    Utente di HTML.it L'avatar di lyllo
    Registrato dal
    Apr 2001
    Messaggi
    832
    allora, come già detto sopra ho già inserito il reporting degli errori e ricevo il seguente Notice:

    Notice: Undefined index: loggato in /home/httpd/vhosts/rotorjetgroup.com/httpdocs/redazione/index.php on line 38
    mentre non ricevo alcun errore nella pagina login.php

    grazie

  8. #8
    Nel codice che hai postato NON hai inserito il codice suggerito ALL'INIZIO del file. Di fatto, se session_start() fallisce, con il codice che stai utilizzando ora, NON te ne potresti accorgere.

    Inoltre, il file index.php postato NON contiene 38 righe per cui il Notice che hai riportato NON si riferisce a quel file oppure il file postato NON è completo.

  9. #9
    Utente di HTML.it L'avatar di lyllo
    Registrato dal
    Apr 2001
    Messaggi
    832
    Codice PHP:
    <?php
    error_reporting
    (E_ALL);
    ini_set('display_errors'1);
    session_start();
    include_once(
    'conn.inc.php');

    ?>
    <html>
    <head>
    <title>Modulo gestione velivoli</title>

    <script language='javascript' type='text/javascript'>

    function mostradiv(id){
        var el=document.getElementById(id);
        if(id == 'utenti'){
            document.getElementById('categorie').style.display = 'none';
            document.getElementById('pagine').style.display = 'none';
            }
        if(id == 'categorie'){
            document.getElementById('utenti').style.display = 'none';
            document.getElementById('pagine').style.display = 'none';
            }
        if(id == 'pagine'){
            document.getElementById('categorie').style.display = 'none';
            document.getElementById('utenti').style.display = 'none';
            }
        
        el.style.display=(el.style.display=='none')?'block':'none';

    }
    </script>
    <link href="stile.css" rel="stylesheet" type="text/css">
    </head>
    <body>

    <?php
    if(!isset($_SESSION['loggato']) AND ($_SESSION['loggato'] != true)){

    echo 
    "<center><h1>Modulo gestione velivoli Rotorjet</h1><form name='login' method='POST' action='login.php'>Username: <input type='text' name='un'>  Password: <input type='password' name='pwd'> <input type='submit' name='sub' value='Entra'></form>";

    }

    if(isset(
    $_SESSION['loggato']) AND $_SESSION['loggato'] == true){
    include(
    'testa.php');
    echo 
    "


    Login effettuato con successo. Sei nell'area privata del sito Rotorjet, lavora con criterio e cautela.
    Evita di toccare
    se non sai cosa stai facendo."
    ;
    }
    ?>
    </center>
    </body>
    </html>
    avevo rimosso lo script javascript

  10. #10
    Il primo IF è sbagliato. Dovrebbe essere:

    Codice PHP:
    if (!isset($_SESSION['loggato']) || ($_SESSION['loggato'] != true)) { 

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.