Foros del Web » Programando para Internet » PHP »

Problema con variables

Estas en el tema de Problema con variables en el foro de PHP en Foros del Web. De nuevo yo, tengo un problema con unas variables, a ver, tengo un archivo que se llama infoacademica.htm que es donde esta el formulario, otro ...
  #1 (permalink)  
Antiguo 05/03/2003, 16:44
 
Fecha de Ingreso: marzo-2003
Ubicación: Bogotá
Mensajes: 199
Antigüedad: 21 años, 1 mes
Puntos: 0
Problema con variables

De nuevo yo, tengo un problema con unas variables, a ver, tengo un archivo que se llama infoacademica.htm que es donde esta el formulario, otro archivo que se llama login.php (donde hace el login) y un tercero info.php que es donde deseo mostrar la información, coloco apartes del codigo para a ver que estoy haciendo mal, el error es : Undefined variable: codigo in E:\sitios web\colrosario\info.php on line 14
Conexión: Resource id #1, no se porque no toma $codigo


infoacademica.htm

<form name="form1" method="post" action="login.php">
<table width="252" height="119">
<tr>
<td width="111" align="right" class="estilo1">C&oacute;digo Alumna :</td>
<td colspan="2"><input name="codigo" type="text" size="10" maxlength="8"></td>
</tr>
<tr>
<td align="right" class="estilo1">Usuario :</td>
<td colspan="2"><input name="login" type="text" id="login" size="6"></td>
</tr>
<tr>
<td align="right" class="estilo1">Contrase&ntilde;a :</td>
<td colspan="2"><input name="pass" type="password" id="pass" size="6" maxlength="8"></td>
</tr>
<tr>
<td align="right" valign="bottom">&nbsp;</td>
<td align="center" valign="bottom">&nbsp;</td>
<td align="center">&nbsp;</td>
</tr>
<tr>
<td align="right" valign="bottom"><input name="entrar" type="submit" id="entrar" onClick="return chequearformulario(this.form)" value="Entrar"></td>
<td width="55" align="center" valign="bottom"><input name="cancelar" type="reset" id="cancelar" value="cancelar"></td>
<td width="70" align="center">&nbsp;</td>
</tr>
</table>
</form>

login.php

<?php

$dbName = "colegio";
$sql = "SELECT * FROM alumnos WHERE cod = '$codigo'";

session_start();

function outError($errorMsg)
{
printf("<br> %s <br>\n", $errorMsg);
}

if($codigo != "")
{

if(!($IdConexion = mysql_connect("localhost","",""))) //error de conexión al Host
{
outError(sprintf("Error conectando al host %s, intente mas tarde"));
exit();
}

if(!mysql_select_db($dbName, $IdConexion)) //Error al seleccionar la Base de Datos
{
outError(sprintf("Error seleccionando %s database", $dbName));
outError(sprintf("The error is: %d %s", mysql_errno($IdConexion), mysql_error($IdConexion)));
exit();
}

if(!($result = mysql_query($sql, $IdConexion))) //Error en consulta
{
outError(sprintf("Error ejecutando %s statement", $sql));
outError(sprintf("The error is: %d %s", mysql_errno($IdConexion), mysql_error($IdConexion)));
exit();
}

else
{
if(@mysql_num_rows($result) != 0)
{
if(($row = mysql_fetch_array($result)) && ($pass == $row["pass"] && $login == $row["login"]))
{
$valUserID = $login;
session_register("valUserID");
mysql_close($IdConexion);
header("location:http://localhost/colrosario/info.php");
exit();
}
else
{
header("location:http://localhost/colrosario/infoacademica.htm");
print("Compruebe por favor su Contraseña o Usuario");
exit();
}
}
else
{
header("location:http://localhost/colrosario/infoacademica.htm");
exit();
print("No se encuentra el codigo digitado");
}
}
mysql_close($IdConexion);
}

else {
printf("Por Favor escriba el código");
}

?>

info.php

<?php require("validate.php"); ?>
<html>
<head>
<title>Información Academica de </title>

</head>
<body bgcolor="#ffffff" text="#000080">
<h2>The PHP Application</h2>
<hr>
<ul>

<?php
$sql = "SELECT * FROM alumnos WHERE cod = '$codigo'";
$IdConexion = mysql_connect("localhost","","") or die ('I cannot connect to the database.');
print("Conexión: ".$IdConexion."<P>");
mysql_select_db("colegio",$IdConexion);
$IdConsulta = mysql_query($sql, $IdConexion);

echo("Informacion de la alumna");
?>
  #2 (permalink)  
Antiguo 05/03/2003, 16:47
 
Fecha de Ingreso: marzo-2003
Ubicación: Bogotá
Mensajes: 199
Antigüedad: 21 años, 1 mes
Puntos: 0
continuación...

se me olvidaba lo primero lo hace bien, cuando logea, pero el error se presenta en el momento de ir al info, hay no encuentra la variable $codigo que se la estoy pasando del formulario, que sera????
  #3 (permalink)  
Antiguo 05/03/2003, 16:53
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 22 años, 8 meses
Puntos: 9
creo que no le un $_POST en $codigo, para que así vuelva a cargar la variable $codigo dentro del otro archivo.

trata de poner en login.php o donde quieres que cargue el valor:

Código PHP:
$codigo=$_POST['codigo']; 
  #4 (permalink)  
Antiguo 05/03/2003, 18:20
 
Fecha de Ingreso: marzo-2003
Ubicación: Bogotá
Mensajes: 199
Antigüedad: 21 años, 1 mes
Puntos: 0
No sirvio

Coloque lo anterior y tampoco, igual sigue saliendo variable no reconocida, en si lo que necesito es que esas variables del login.php las pueda pasar a info.php, que es donde ya no aparecen, pero no tengo ni idea de como hacerlo.

Cualquier ayuda al respecto estare agradecido.
  #5 (permalink)  
Antiguo 05/03/2003, 19:06
 
Fecha de Ingreso: febrero-2002
Ubicación: ¿donde vivo? pues en mi casa, ¿donde voy a vivir?...
Mensajes: 214
Antigüedad: 22 años, 1 mes
Puntos: 0
$sql = "SELECT * FROM alumnos WHERE cod = '{$_POST['codigo']}'";
__________________
Linux, es para los que odian Microsoft/Windows, BSD, es para los que amamos *IX.
  #6 (permalink)  
Antiguo 06/03/2003, 15:34
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Tu problema es que login.php si esta recibiendo $codigo del formulario, pero como tienes:
Código PHP:
 $valUserID $login;
session_register("valUserID");
mysql_close($IdConexion);
header("location:http://localhost/colrosario/info.php");
exit(); 
para cargar info.php, ahi no estas pasando $codigo de ninguna manera. Con el header("Location: ...") no pasas ninguna de las variables que tiene login.php. El header ("Location: ...") es lo mismo que si harias un link a info.php. Nada de parametros sino los pones en la URL a redireccionar.

En este punto tienes dos opciones:

1.- Pasar $codigo por URL en la redireccion:
Código PHP:
 $valUserID $login;
session_register("valUserID");
mysql_close($IdConexion);
header("location:]http://localhost/colrosario/info.php?codigo=$codigo");
exit(); 
y asi con todas las variables que quieras pasar.

2.- Incluir info.php dentro de login.php para tener acceso directo a todas las variables de login.
Código PHP:
 $valUserID $login;
session_register("valUserID");
mysql_close($IdConexion);
include(
"info.php");
exit(); 
Quizas no te funciona en este caso por las sesiones.

3.- (ya se que dije 2) Como en uno, pero en lugar de pasarla por URL, meterla dentro de la sesion:
Código PHP:
 $valUserID $login;
session_register("valUserID");
session_register("codigo");
mysql_close($IdConexion);
header("location:http://localhost/colrosario/info.php");
exit(); 
Espero haber sido de ayuda.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:47.