Error en datos enviados de un submit

Realmente por aquí es muy difícil enviarte mi código porque esta página me convierte todo el código y me muestra los elementos html si lo copio textual, hice todo como me dijiste conforme lo entendí y me muestra estos errores :
Notice: Undefined index: username in C:\wamp\www\estadistica\mostrar.php on line 12
Notice: Undefined index: password in C:\wamp\www\estadistica\mostrar.php on line 13
Notice: Undefined index: user in C:\wamp\www\estadistica\mostrar.php on line 14
esta es la parte de autenticacion :
if ( !isset($_SESSION["usuario"]) || !isset($_SESSION["password"]) || !isset($_SESSION["user"]) ){
$_SESSION["usuario"] = $_REQUEST["username"];
$_SESSION["password"] = $_REQUEST["password"];
$_SESSION["user"] = $_REQUEST["user"];
} else {
echo('
<script language="JavaScript" >');
echo('alert("Ha ocurrido un error de autentificación.Verifique los datos e inténtelo de nuevo, si el problema persiste contacte con su proveedor de Servicios");');
echo('location.replace("http://webmail.caonao.cu/stat/")');
echo('</script>
');
}
El password prefiero mantenerlo porque mis funciones la utilizan, pudiera prescindir de ella pero entonces debo modificar los parámetros a pasarle a las mismas y son unas cuantas, si te es más cómodo puedes escribirme a este correo [email protected] y yo te envío las páginas completas, así puedes detallar el código y encontrar el problema, disculpa que sea tan insistente pero necesito solucionar este problema.

1 Respuesta

Respuesta
1
Parece que estos errores se quejan de que los valores del REQUEST no existen.
Por lo tanto a estas líneas no llegas como resultado del envío correcto de un formulario.
Muéstrame el formulario de autentificación que debe ser allí donde tienes el problema.
Y asegurate de que en TODAS las páginas ejecutas al principio session_start()
Parece que el formulario es correcto. Así cuando entre en mostrar.php debería ejecutar correctamente la asignación.
Quizás el error surja al volver a entrar en la página más adelante.
Si es así, es que alguna página no ejecuta el session_start() al principio como debiera.
Por favor, comprueba que todas las páginas ejecuten session_start()
<form action="mostrar.php" method="Post" name="goIn">
<p align="left"><img src="img/logo.JPG" width="298" height="98"></p>
<p align="right"><span class="style1"> Tipo de Usuario </span>
<select id="user" name="user" >
<option value="0" >Seleccione</option>
<option value="1">Administrador</option>
<option value="2">Arrendados</option>
<option value="3">Conmutados</option>
</select>
</p>
<p align="right"><span class="style1">Usuario</span>
<input type="text" name="username" />
</p>
<p align="right"><span class="style1">Contraseña</span>
<input type="password" name="password" />
</p>
<p align="right">
<input id="entrar" type="submit" value="Entrar" name="entrar" />
</p>
</form>
Has vuelto a responder lo mismo y no me indicas si has comprobado lo que te indico.
Si, es la página que no se por que envía las preguntas repetidas, bueno centrándonos en el tema, si todas las páginas tienen el session_start, la única que no lo tenia es la que recoge los valores del submit donde hago la comprobación y almaceno en las variables de session, se lo puse y ahora me devuelve el error javascript de este código que te anexo :
session_start();
require_once("functions.inc.php");
// Recoger los Datos
if(isset($_REQUEST["user"])) {
$_SESSION["user"] = $_REQUEST["user"];
}
else{
$_SESSION["user"] = 0;
}
if ( !isset($_SESSION["usuario"]) || !isset($_SESSION["password"]) || !isset($_SESSION["user"]) ){
$_SESSION["usuario"] = $_REQUEST["username"];
$_SESSION["password"] = $_REQUEST["password"];
$_SESSION["user"] = $_REQUEST["user"];
} else {
echo('
');
}
if ($_SESSION["user"] == 0) {
echo('
<script language="JavaScript" >');
echo('alert("***Ha ocurrido un error de autentificación.Verifique los datos e inténtelo de nuevo, si el problema persiste contacte con su proveedor de Servicios");');
echo('location.replace("http://webmail.caonao.cu/stat/")');
echo('</script>
');
}
else if ($_SESSION["user"] == 1) {
$row = TestingUser($_SESSION["usuario"],$_SESSION["password"]);
$user = $row['username'];
$pass = $row['pass'];
if (($_SESSION["usuario"] !== $user) and ($_SESSION["password"] !== $pass))
{
echo('
<script language="JavaScript" >');
echo('alert("Ha ocurrido un error de autentificación.Verifique los datos e inténtelo de nuevo, si el problema persiste contacte con su proveedor de Servicios");');
echo('location.replace("http://webmail.caonao.cu/stat/")');
echo('</script>
');
} else {
/*if(!isset($_SESSION["valido"])){
checkUserActive($usuario,$clave);
}*/
$m = array (
1 => array (0 => "jan", 1 => "Enero"),
2 => array (0 => "feb", 1 => "Febrero"),
3 => array (0 => "mar", 1 => "Marzo"),
4 => array (0 => "apr", 1 => "Abril"),
5 => array (0 => "may", 1 => "Mayo"),
6 => array (0 => "jun", 1 => "Junio"),
7 => array (0 => "jul", 1 => "Julio"),
8 => array (0 => "aug", 1 => "Agosto"),
9 => array (0 => "sep", 1 => "Septiembre"),
10 => array (0 => "oct", 1 => "Octubre"),
11 => array (0 => "nov", 1 => "Noviembre"),
12 => array (0 => "dec", 1 => "Diciembre"),
);
include('admin.php');
}
}
else if ($_SESSION["user"] == 2) {
$row = TestingUser($_SESSION["usuario"],$_SESSION["password"]);
$user = $row['username'];
$pass = $row['pass'];
if (($_SESSION["usuario"] !== $user) and ($_SESSION["password"] !== $pass))
{
echo('
<script language="JavaScript" >');
echo('alert("Ha ocurrido un error de autentificación.Verifique los datos e inténtelo de nuevo, si el problema persiste contacte con su proveedor de Servicios");');
echo('location.replace("http://webmail.caonao.cu/stat/")');
echo('</script>
');
} else {
/*if(!isset($_SESSION["valido"])){
checkUserActive($_SESSION["usuario"],$_SESSION["password"]);
}*/
include('arrendados.php');
}
}
else if ($_SESSION["user"] == 3) {
if (doAuth($_SESSION["usuario"],$_SESSION["password"]) == false){
echo('
<script language="JavaScript" >');
echo('alert("Ha ocurrido un error de autentificación.Verifique los datos e inténtelo de nuevo, si el problema persiste contacte con su proveedor de Servicios");');
echo('location.replace("http://webmail.caonao.cu/stat/")');
echo('</script>
');
} else {
if(!isset($_SESSION["valido"])){
checkUserActive($_SESSION["usuario"],$_SESSION["password"]);
}
$m = array (
1 => array (0 => "jan", 1 => "Enero"),
2 => array (0 => "feb", 1 => "Febrero"),
3 => array (0 => "mar", 1 => "Marzo"),
4 => array (0 => "apr", 1 => "Abril"),
5 => array (0 => "may", 1 => "Mayo"),
6 => array (0 => "jun", 1 => "Junio"),
7 => array (0 => "jul", 1 => "Julio"),
8 => array (0 => "aug", 1 => "Agosto"),
9 => array (0 => "sep", 1 => "Septiembre"),
10 => array (0 => "oct", 1 => "Octubre"),
11 => array (0 => "nov", 1 => "Noviembre"),
12 => array (0 => "dec", 1 => "Diciembre"),
);
include('conmutados.php');
}
}
?>
No se pero creo que el problema puede estar en el "if" le cambie los operadores "or" por "and" y me sigue dando el error. Saludos,
Dieter.
Ahora deberías eliminar estas líneas al principio del código:
if(isset($_REQUEST["user"])) {
$_SESSION["user"] = $_REQUEST["user"];
}
else{
$_SESSION["user"] = 0;
}
Puesto que ignoran los valores de la sesión.
Hola David, si ya elimine esas lineas pero creo que el problema no esta en esa página que verifica, recoge los datos y carga la página correspondiente a cada usuario, sino en la página propia del usuario que realiza las opciones del menu, creo que no esta entrando correctamente al case que tengo allí o por lo menos no esta haciendo las funciones que le tengo asignadas cuando se selecciona una de las opciones del menu, no parece ser por un problema de session, te adjunto una de ellas, la que corresponde al usuario administrador. Muchas Gracias, Saludos,
Dieter.
código de admin.php :
<?php
session_start();
global $wHat;
require_once("functions.inc.php");
echo "
<html>
\n\r
<head>
\n\r
<link type=\"text/css\" rel=\"stylesheet\" href=\"look.css\" />
\n\r"; // head ********************
$m = array (
1 => array (0 => "jan", 1 => "Enero"),
2 => array (0 => "feb", 1 => "Febrero"),
3 => array (0 => "mar", 1 => "Marzo"),
4 => array (0 => "apr", 1 => "Abril"),
5 => array (0 => "may", 1 => "Mayo"),
6 => array (0 => "jun", 1 => "Junio"),
7 => array (0 => "jul", 1 => "Julio"),
8 => array (0 => "aug", 1 => "Agosto"),
9 => array (0 => "sep", 1 => "Septiembre"),
10 => array (0 => "oct", 1 => "Octubre"),
11 => array (0 => "nov", 1 => "Noviembre"),
12 => array (0 => "dec", 1 => "Diciembre"),
);
if(isset($_GET["do"])){
$what=addslashes($_GET["do"]);
}
?>
<title> Estadisticas generales </title>
<meta http-equiv="" content="text/html; charset=iso-8859-1">
<head>
</head>
<script type="text/javascript" src="javascripts/overlibs/overlib.js"><!-- overLIB (c) Erik Bosrup --></script>
<body>
<div id="overDiv" style="position:absolute; visibility:hidden; z-index:1000;"></div>
<div id="top"></div>
<div id="container">
<div id="menu">
<ul>
<li><a href="admin.php?do=correo">Estadisticas de Correo</a></li>
<li><a href="admin.php?do=conexion">Estadisticas de Conexion</a></li>
<li><a href="bye.php">Salir</a></li>
</ul>
<h2>Meses Anteriores</h2>
<?php
$now = date("n");
echo "
<ul>
";
for ($i = 1; $i <= $now; $i++){
echo "
<li><a href=\"?m=".$i."\">".$m[$i][1]."</a></li>
";
}
echo "
</ul>
";
?>
</div>
<div id="info">
<?php
if(isset($_GET["do"])){
$what = addslashes($_GET["do"]);
}
switch ($wHat) {
default :
if ( !isset($_GET["m"] ) ) {
$mes = date("M");
} else {
$mes = $m [$_GET["m"]][0];
}
if ( !isset ( $_GET["y"] ) ) {
$anno = date("Y");
} else {
$anno = $_GET["y"];
}
/*echo "
<table>
";
$sql = "SELECT SUM(Duration) AS TOTAL FROM AcctTable WHERE LogoutDate LIKE '%" . $mes . "%' AND LogoutDate LIKE '%" . $anno . "%'" ;
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
$ttime = round($row[0]/3600,1)." hrs";
if ($ttime < 1) {
$ttime = round($row[0]/60,1)." min";
}
echo "</td>
</tr>
<tr class=\"thead\">
<td>Usuario</td>
<td>Tiempo Total en el Mes de </td>
</tr>
";
$color= "#EEF6FF";
echo "
<tr bgcolor=\"".$color."\">
<td>".$ttime."</td>
</tr>
";
echo "
</table>
";*/
echo "
<table>
";
$qry = mysql_query("SELECT UserName, SUM(Duration) AS SUMA FROM AcctTable WHERE LogoutDate LIKE '%" . $mes . "%' AND LogoutDate LIKE '%" . $anno . "%' GROUP BY UserName");
$query = mysql_query("SELECT tac_users.tiempo FROM tac_users Inner Join AcctTable ON tac_users.username = AcctTable.UserName");
$r = mysql_fetch_array($query);
if (($row = mysql_fetch_array($qry)) and ($r = mysql_fetch_array($query))){
echo "</td>
</tr>
<tr class=\"thead\">
<td>Usuario</td>
<td>Tiempo en el Mes Actual </td>
<td>Tiempo Contratado </td>
</tr>
";
do {
$color= "#EEF6FF";
$tiempo = round($row["SUMA"]/3600,2)." hrs";
if ($tiempo < 1) {
$tiempo = round($row["SUMA"]/60,1)." min";
}
$time = round($r["tiempo"]/3600,2)." hrs";
if ($time < 1) {
$time = round($r["tiempo"]/60,1)." min";
}
$ts = $row["SUMA"];
$tc = $r["tiempo"];
if ($ts > $tc) {
$value = $ts - $tc;
$a = round($value/3600,2)." hrs";
if ($a < 1) {
$a = round($row["SUMA"]*60,1)." min";
}
$v = abs($a);
$aa = "Estas pasado en :".$v."hrs";
}
else if ($tiempo < $time) {
$value = $time - $tiempo;
$a = round($value/3600,2)." hrs";
if ($a < 1) {
$a = round($row["SUMA"]*60,1)." min";
}
$v = abs($a);
$v = abs($value);
$aa = "Aun puedes conectarte :".$v."hrs";
}
else if ($ts = $tc) {
$value = 0;
$v = abs($value);
}
$link = $row["UserName"];
echo "
<tr bgcolor=\"".$color."\">
<td><a href='javascript:void(0);' onMouseOver=\"return overlib('$aa');\" onMouseOut='return nd();'>$link</a></td>
<td>".$tiempo."</td>
<td>".$time."</td>
</td>
</tr>
";
}
while (($row = mysql_fetch_array($qry)) and ($r = mysql_fetch_array($query)));
}
echo "
</table>
";
break;
case "correo" :
// codigo de Isoqlog
$val = ReturnMailLog($_SESSION["usuario"],$_SESSION["password"]); // esta funcion retorna una cadena que conforma la pagina del log de conexion al correo para ese usuario
$url = "http://webmail.caonao.cu/qlog/";
$cadena = $url.$val;
ActualizaRegistro($_SESSION["usuario"],$_SESSION["password"]);
session_unset();
session_destroy();
echo('
<script language="JavaScript" >');
echo('location.replace("'.$cadena.'")');
echo('</script>
');
break;
case "conexion" :
// codigo de MRTG
$value = ReturnIpUserLoggued($_SESSION["usuario"],$_SESSION["password"]); // esta funcion retorna una cadena que conforma la interface del router para ese usuario
$url = "http://stat.caonao.cu/";
$cadena = $url.$value;
ActualizaRegistro($_SESSION["usuario"],$_SESSION["password"]);
session_unset();
session_destroy();
// echo $_SESSION["usuario"];
echo('
<script language="JavaScript" >');
echo('location.replace("'.$cadena.'")');
echo('</script>
');
break;
case "bye":
$delSession = mysql_query("UPDATE tac_users SET session = '' WHERE (username = '".$_SESSION["usuario"]."')");
$_SESSION = array();
session_unset();
session_destroy();
echo('
<script language="JavaScript" >');
echo('alert("Ha salido del sistema");');
echo('location.replace("http://webmail.caonao.cu/stat/")');
echo('</script>
');
break;
}
?>
</div>
</div>
</div>
<?php
include("foot.php");
?>
</body>
</html>
En PHP el nombre de las variables es sensible a las mayúsculas y minúsculas.
Tienes definida una variables $wHat con H mayúscula, pero luego en un par de ocasiones la usas con la h en minúscula. Por lo tanto, son dos variables distintas.
Hola David, como experto diste con el problema, muy bien ! Ahora me ha surgido otro problemita pero voy a puntuarte esta pregunta. Muchas Gracias, Saludos,
Dieter.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas