Error en $_GET

Hice un programa en php para validar entrada a mis páginas usando passwords en bd MYSQL con un código como el siguiente..
<html>
<head>
<BODY BACKGROUND="../../images/bmp000.jpg">
</head>
<body>
<form action="control.php" method="POST">
<br><br><br><br><br><br><br><br><br><br><br>
<table align="center" width="225" cellspacing="2" cellpadding="2" border="0">
<tr>
<td colspan="2" align="center"
<?if ($_GET["errorusuario"]=="si"){?>
bgcolor=red><span style="color:ffffff"><b>Datos incorrectos</b></span>
<?}else{?>
bgcolor=#cccccc>Introduce tu clave de acceso
<?}?></td>
</tr>
<tr>
<td align="right">Usuario:</td>
<td><input type="Text" name="usuario" size="12" maxlength="50"></td>
</tr>
<tr>
<td align="right">Password:</td>
<td><input type="password" name="contrasena" size="12" maxlength="50"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="Submit" value="ENTRAR"></td>
</tr>
</table>
</form>
</body>
<br>
<br>
<br>
<br>
<br><h1>Sistema de control de inventarios V3.1</h1>
<h1>Para intranet</h1>
</html>
y el codigo que valida la entrada "control.php" es el
siguiente:
<?
//conecto con la base de datos
$dbHost = "localhost";
$dbName = "accesos";
$dbUser = "Invitado";
$dbPassword = "";
$usuario = $_POST["usuario"];
$contrasena = $_POST["contrasena"];
$link = mysql_connect ($dbHost, $dbUser, $dbPassword);
mysql_select_db ( $dbName );
$ssql = "SELECT * FROM usuarios WHERE usua_clave='$usuario' and usua_pass='$contrasena'";
$result = mysql_query($ssql);
$row = mysql_fetch_row($result);
$comp_usuario = $row[0];
$comp_pass = $row[1];
if ($usuario=="" && $contrasena=="")
{
header("Location: index.php?errorusuario=si");
}
else {
if ($usuario==$comp_usuario && $contrasena==$comp_pass){
session_start();
$_SESSION["keymagic"]= "yrnehinom";
header ("Location: menu.php");
}else {
header("Location: index.php?errorusuario=si");
}
}
mysql_close ( $link );
?>
Mi problema es que cuando abro la página de inicio la variable errorusuario me marca el siguiente Notice:
Notice: Undefined index: errorusuario in c:\inetpub\wwwroot\INVENTARIOS\index.php on line 12
bgcolor=#cccccc>Introduce tu clave de acceso
¿Por qué? Ya le busque y no se por que

1 Respuesta

Respuesta
1
Bueno tu error es corriente en lenguajes no estrictos como php. Verás, el notice te informa de que no existe el índice 'errorusuario' en el array $_GET, porque la primera vez que abres la página, no has pasado ninguna variable errorusuario.
Para evitarlo, transformamos la linea 12:
<?if (isset($_GET["errorusuario"]) && $_GET["errorusuario"]=="si"){?>
De esta manera sólo evaluará errorusuario si previamente se ha enviado con el método GET, si no, saltará al bloque "else".
Bueno.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas