Ciao,
ho un piccolo applicativo che gira sotto Apache.
in IIS 5 però continua a darmi errori del tipo "Undefined variable".
es: se
$prova = HTTP_GET_VARS['user'];
se user non è definita mi da errore..
qualcuno sa dirmi perché IIS fa cosi?
Grazie
Ciao,
ho un piccolo applicativo che gira sotto Apache.
in IIS 5 però continua a darmi errori del tipo "Undefined variable".
es: se
$prova = HTTP_GET_VARS['user'];
se user non è definita mi da errore..
qualcuno sa dirmi perché IIS fa cosi?
Grazie
Credo che dia errore anche sotto Apache se la variabile è !isset
Sotto Apache non mi da alcun errore... :-((
dipende dall'error_reporting che hai, magari su IIS l'hai impostato a e_all. Prova a controllare!
comunque se dà errore puoi risolvere così:
codice:$prova = (isset($_GET['user'])) ? $_GET['user'] : '';
[che è anche la dicitura più corretta ]
error_reporting
isset
Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone
Anche io stavo pensando la stessa cosa.
Prova a impostare "error_reporting=E_ERROR" nel php.ini, anche se in realtà così nasconderesti solo il problema non risolvendolo nel concreto.
Grazie...
ma scusate, quindi quello di usare le variabili non dichiarate è una prassi sbagliata?
:-)
Yes SIR!!!Originariamente inviato da sparky
Grazie...
ma scusate, quindi quello di usare le variabili non dichiarate è una prassi sbagliata?
:-)
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
Stavo guardando che io ho due noti uguali al to problema, ma le righe che mi indica non centrano niente: non ne neanche codice php in un caso, guardate. Questa è tutta la mia pagina:
i notice sono:Codice PHP:
<?php
session_start();
dbconnect();
if (!isset($verified_user)) $verified_user='';
if ($action=='login') {
$result=mysql_query("SELECT id_user FROM impedil_users WHERE username='".$username."' AND password='".$psw."'");
if (mysql_num_rows($result)>0) list($verified_user)=mysql_fetch_row($result);
else $verified_user='';
}
session_register("verified_user");
?>
<html>
<head>
[COLOR=red]<title>Login</title>[/COLOR]
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
[url="login.php"]Log in[/url] - [url="index.php"]Index[/url] - [url="logout.php"]Log out[/url]
<?php
echo"
";
if ($verified_user != '') {
echo"[b]Welcome.[/b]
";
} else {
if ($action == "login" && $verified_user == '') {
echo"<font color=\"red\">Login error!</font>
";
}
?>
<form name="login_form" action="login.php" method="post">
<input type="hidden" name="action" value="login">
Username: <input type="text" name="username">
Password: <input type="password" name="psw"> <input type="submit" name"Login" value="Login"></form>
<?php
}
function dbconnect() {
mysql_connect("localhost", "root", "");
@mysql_select_db("impedil_db") or die ("Impossibile accedere al DataBase");
}
?>
</body>
</html>
Notice: Undefined variable: action in /Users/SimoZa/Sites/imp_edil/login.php on line 3
Notice: Undefined variable: action in /Users/SimoZa/Sites/imp_edil/login.php on line 15
(la riga 3 è vuota e la riga 15 sarebbe quella in rosoo)
Perche' non rientra nella casistica? Non conto le righe, ma guardo il NOTICE ed e' corretto:
Non esiste $action, ma esiste $_POST['action']
infatti quella variabile ti arriva dal form. Se tu avessi i NOTICE disabilitati la if($action == 'login') ti darebbe sempre false e tu non capiresti il perche'. E apriresti un thread dicendo che la if non funziona....
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
Ma pur inserendo
if ( $_POST['action']=='login') {
nei due punti mi vengono mostrati due notice in riga 4 e 17.
Ma scusa una cosa come faccio a capire a quale riga si riferiscono se non corrispondono a quelle scritte?