Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2019
    Messaggi
    21

    Errore "Undefined index" su semplice pagina di login

    Buongiorno,

    ho trovato uno script in rete per una semplice pagina di login con password, ma non riesco a venire a capo dell'errore che mi viene restituito.

    Il codice del login è il seguente:
    codice:
    <?php
        session_start();
        unset($_SESSION["collegato"]);
        $user=trim($_POST["username"]);
        $pwd=trim($_POST["password"]);
        $mex="";
        if($user!=""&&$pwd!="")
        {
            if ($user=="utente"&&$pwd=="password")
            {
                $_SESSION["collegato"]="si";
                header("location: index.php");
                die("...Attendere, prego...");
            }
            else $mex="<br />Errore: Username o Password errate!<br /> <br />";
        }
    ?>
    <html>
    <head>
        <title>Area riservata</title>
    </head>
    <body>
    <strong>Login</strong>
    <br />
    <?php if($mex!="") echo $mex;?>
    <form method="post" action="login.php" enctype="multipart/form-data">
    Username: <input type="Text" name="username" maxlength="20" size="10" />
    <br />
    Password: <input type="Password" name="password" maxlength="20" size="10" />
    <br />
    <input type="Submit" value="Entra" />
    </form>
    </body>
    </html>
    e questo è l'errore che mi viene restituito.
    codice:
    Notice: Undefined index: username in C:\Program Files (x86)\EasyPHP-Devserver-17\eds-www\login.php on line 4
    
    
    Notice: Undefined index: password in C:\Program Files (x86)\EasyPHP-Devserver-17\eds-www\login.php on line 5
    Grazie mille

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    11,806
    Il problema è che quando accedi alla pagina per la prima volta $_POST non esiste perché non ci sei arrivato a seguito dell'invio di dati da un form.
    Visto che hai form e codice di gestione nella stessa pagina, per decidere se devi eseguire la parte iniziale dove usi $_POST devi prima vedere se $_POST esiste e solo in tale caso eseguire il codice, quindi un semplice if.

    Nota: se non devi inviare file tramite il form, l'attributo enctype non serve.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2019
    Messaggi
    21
    ciao e grazie,

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2019
    Messaggi
    21
    Ciao e grazie.

    Queste sono le tre pagine che utilizzo, dove dovrei inserire l' "if"?

    login
    codice:
    <?php
        session_start();
        unset($_SESSION["collegato"]);
        $user=trim($_POST["username"]);
        $pwd=trim($_POST["password"]);
        $mex="";
        if($user!=""&&$pwd!="")
        {
            if ($user=="utente"&&$pwd=="password")
            {
                $_SESSION["collegato"]="si";
                header("location: index.php");
                die("...Attendere, prego...");
            }
            else $mex="<br />Errore: Username o Password errate!<br /> <br />";
        }
    ?>
    <html>
    <head>
        <title>Area riservata</title>
    </head>
    <body>
    <strong>Login</strong>
    <br />
    <?php if($mex!="") echo $mex;?>
    <form method="post" action="login.php" enctype="multipart/form-data">
    Username: <input type="Text" name="username" maxlength="20" size="10" />
    <br />
    Password: <input type="Password" name="password" maxlength="20" size="10" />
    <br />
    <input type="Submit" value="Entra" />
    </form>
    </body>
    </html>
    verifica
    codice:
    <?php
        session_start();
        if(trim($_SESSION["collegato"])!="si")
        {
            header("location: login.php");
            die("...Attendere, prego...");
        }
    ?>
    e il codice nelle pagine
    codice:
    <?php include("verifica.php");?>
    <html>
    <head>
        <title>Area riservata</title>
    </head>
    <body>
    --- contenuto da loggao ---
    <br />
    <a href="login.php">Logout</a>
    </body>
    </html>

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    11,806
    Dove ti dice che c'è l'errore e dove ti ho scritto in precedenza.
    Va dopo l'unset della sessione e devi metterci dentro tutto il blocco di codice PHP che segue.

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2019
    Messaggi
    21
    in questo modo?
    codice:
    <?php
        session_start();
        unset($_SESSION["collegato"]);
        if($user=trim($_POST["username"]));
        if($pwd=trim($_POST["password"]));
        $mex="";
        if($user!=""&&$pwd!="")
        {
            if ($user=="ciccio"&&$pwd=="bello")
            {
                $_SESSION["collegato"]="si";
                header("location: index.php");
                die("...Attendere, prego...");
            }
            else $mex="<br />Errore: Username o Password errate!<br /> <br />";
        }
    ?>
    mi da comunque lo stesso errore.

  7. #7
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    11,806
    Se ti da comunque l'errore vuol dire che non era così che andava fatto.
    L'esistenza di una variabile si verifica con la funzione isset()

    Codice PHP:
    if ( isset($_POST) )
    {
        
    // qui dentro ci metti il codice che hai postato all'inizio e che sta dopo l'unset della sessione


  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2019
    Messaggi
    21
    Nulla, continua a restituirmi lo stesso errore su queste due righe

    codice:
    		$user=trim($_POST["username"]);
    		$pwd=trim($_POST["password"]);
    codice:
    <?php
        session_start();
        unset($_SESSION["collegato"]);
    	if (isset($_POST))
    	{
    		$user=trim($_POST["username"]);
    		$pwd=trim($_POST["password"]);
    		$mex="";
    		if($user!=""&&$pwd!="")
    		{
    			if ($user=="utente"&&$pwd=="password")
    			{
    				$_SESSION["collegato"]="si";
    				header("location: index.php");
    				die("...Attendere, prego...");
    			}
    			else $mex="<br />Errore: Username o Password errate!<br /> <br />";
    		}
    	}
    ?>
    <html>
    <head>
        <title>Area riservata</title>
    </head>
    <body>
    <strong>Login</strong>
    <br />
    <?php if($mex!="") echo $mex;?>
    <form method="post" action="login.php" enctype="multipart/form-data">
    Username: <input type="Text" name="username" maxlength="20" size="10" />
    <br />
    Password: <input type="Password" name="password" maxlength="20" size="10" />
    <br />
    <input type="Submit" value="Entra" />
    </form>
    </body>
    </html>

  9. #9
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    11,806
    if ( ! empty($_POST) )

    e poi sotto

    <?php if(isset($mex)) echo $mex;?>

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2019
    Messaggi
    21
    Grazie per la pazienza e l'aiuto, ma l'errore permane

    codice:
    <?php
        session_start();
        unset($_SESSION["collegato"]);
    if (!empty($_POST))
    		$user=trim($_POST["username"]);
    		$pwd=trim($_POST["password"]);
    		$mex="";
    		if($user!=""&&$pwd!="")
    		{
    			if ($user=="utente"&&$pwd=="password")
    			{
    				$_SESSION["collegato"]="si";
    				header("location: index.php");
    				die("...Attendere, prego...");
    			}
    			else $mex="<br />Errore: Username o Password errate!<br /> <br />";
    		}
    ?>
    <html>
    <head>
        <title>Area riservata</title>
    </head>
    <body>
    <strong>Login</strong>
    <br />
    <?php if(isset($mex)) echo $mex;?>
    <form method="post" action="login.php" enctype="multipart/form-data">
    Username: <input type="Text" name="username" maxlength="20" size="10" />
    <br />
    Password: <input type="Password" name="password" maxlength="20" size="10" />
    <br />
    <input type="Submit" value="Entra" />
    </form>
    </body>
    </html>

Tag per questa discussione

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 © 2020 vBulletin Solutions, Inc. All rights reserved.