Problema PHP e Xampp

Fabrizio Ferrara

Nuovo Utente
15 Ott 2012
5
0
1
Pescara
Buongiorno,
Non so se questa sia la sezione giusta ma non trovandone una più adatta posto qui.

Intanto saluto tutti, leggo spessissimo i vari post e mi complimento con tutti per il grande contributo che fornite.

Il mio problema riguarda la compatibilità di un mio codice giù utilizzato su hosting che però in locale mi da uno errore e non ne capisco proprio il motivo.

il codice è il seguente:
Codice:
<?php
include "dbconfig.php";
?>

<html>

<head>
    <meta charset="utf-8">
    <meta name="generator" content="CoffeeCup HTML Editor (www.coffeecup.com)">
    <meta name="created" content="lun, 16 set 2013 17:51:14 GMT">
    <meta name="description" content="">
    <meta name="keywords" content="">

	<title>MAWY - Pagina di accesso</title>

    <style>
    	   body{background-repeat:no-repeat;background-position:center center;}
    </style> 

</head>

<?php
	 include("setuppagina.php");
	 include("font.html");
?>

<form action='<?php echo $_SERVER['PHP_SELF']; ?>?login=ok' method='POST'>


&nbsp;
&nbsp;
&nbsp;
&nbsp;
&nbsp;
&nbsp;
&nbsp;
&nbsp;
&nbsp;
<div align="center">
  <font class="resagnicto" color="#C0C0C0" size="9">TITOLO</font>
  <br />
  <font class="resagnicto" color="#585858" size="5">TITOLO2</font>
  <br />
  <font class="college" color="#C0C0C0" size="5">TITOLO3</font>
  <br />
</div>

<hr color="#808080" width="90%" size="4">

<p align="center">


<font color="#C0C0C0">


<b>Nome Utente</b><br>
</font>
<input type='text' name='user'><br>
<font color="#C0C0C0">
<b>Password</b><br>
</font>
<input type='password' name='pass'><br>

&nbsp;</p>

<p align="center">

<input type='submit' value='Entra in M.A.W.Y.'>

</p>

<hr color="#808080" width="90%" size="4">

<br>
<a href="registrazione.php" style="text-decoration:none;" ><font class="college" color="#C0C0C0" size="5"><div align="center">Registrazione...</div></font></a>

<br>
<hr color="#808080" width="90%" size="4">

<p align="center">

<font color="#C0C0C0">TITOLO4</font></p>

</form>

<?php

// recupero di valori inviati dal form: user e pass

[B]$user = $_POST['user'];[/B]
[B]$pass = $_POST['pass'];[/B]

$risp = "ok";
[B]$login = $_GET['login'];[/B]

// questo serve per evitare di ricevere subito un messaggio dallo script

if ( $login == $risp ) {

// controllo che entrambi i valori siano stati compilati

if ( $user && $pass ) {

// effettuo l'escape per i valori speciali per evitare problemi con le query

$user = mysql_real_escape_string($user);
$pass = mysql_real_escape_string($pass);

// preparo una query cioè una richiesta al database che vede se esistono i valori appena inseriti nella tabella creata precedentemente

$sql = "SELECT * FROM utenti WHERE username = '$user' AND password = MD5('$pass')";
$res = mysql_query($sql) or die (mysql_error());

// ora se i dati inseriti sono quelli esatti presenti all'interno della tabella possiamo far effettuare il login

if ( $res == TRUE ) {

    // ora creo una sessione con l'id dell'utente  che lo farà restare connesso tutto il tempo della navigazione alle pagine protette da login
    
    
    while($row = mysql_fetch_array($res)) {
    
    session_set_cookie_params(3600);		   		   	   	  	   		   				  	 // aumenta la sessione a 1 ora
    session_start();
    session_register("idutente","nomeutente","tipoutente");
    
    $idutente = $row['id'];
    
    $nomeutente = $row['username'];
    
    $tipoutente = $row['type'];
    
    $_SESSION['id_utente'] = $idutente;
    
    $_SESSION['nome_utente'] = $nomeutente;
    
    $_SESSION['tipo_utente'] = $tipoutente;
    
    // e infine reindirizzo l'utente nella pagina protetta da login
    // a pagina diversa a seconda del tipo di utente
    
    if ($tipoutente==1) {
        header("location: mainpage.php");
    } else {
        header("location: impianti.php");
       
    }

}


} 



echo "<p><font color=\"yellow\"><center><h2>Username o Password non corrette</h2></center></font></p>";





} else {

echo "<p><font color=\"yellow\"><center><h2>Non sono stati compilati tutti i dati obbligatori</h2></center></font></p>";


}

}


?>


</body>
</html>

Non avendo ancora db sull'hosting che utilizzerò stavo sviluppando il tutto in locale su xampp ma ho un errore nelle righe in grassetto :


$user = $_POST['user'];
$pass = $_POST['pass'];
$login = $_GET['login'];

Notice: Undefined index: user in C:\xampp\htdocs\PHENICE\index.php on line 90
Notice: Undefined index: pass in C:\xampp\htdocs\PHENICE\index.php on line 91
Notice: Undefined index: login in C:\xampp\htdocs\PHENICE\index.php on line 94

Qualcuno sa come aiutarmi a risolvere questo problema?

Grazie
 
Ciao, se non viene settato il POST le variabili non vengono valorizzate e questo crea un notice che non è proprio un errore perchè php comunque elaborerà il resto della pagina. Online di solito questi messaggi vengono disabilitati dalle impostazioni di php, in locale invece sono di default abilitati per permettere allo sviluppatore di scrivere codice corretto
puoi risolvere verificando che il POST sia settato con la funzione isset();
PHP:
$user = isset($_POST['user']) ? $_POST['user'] : false;
 
Ciao, se non viene settato il POST le variabili non vengono valorizzate e questo crea un notice che non è proprio un errore perchè php comunque elaborerà il resto della pagina. Online di solito questi messaggi vengono disabilitati dalle impostazioni di php, in locale invece sono di default abilitati per permettere allo sviluppatore di scrivere codice corretto
puoi risolvere verificando che il POST sia settato con la funzione isset();
PHP:
$user = isset($_POST['user']) ? $_POST['user'] : false;

Inserendo il codice suggerito non elimino il problema.

Ho modificato:
Codice:
error_reporting=E_ALL & ~E_NOTICE
nel php.ini

Grazie
 
Ultima modifica:

Discussioni simili