Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/02/2013, 03:33
mathiasmontiel
 
Fecha de Ingreso: febrero-2013
Mensajes: 163
Antigüedad: 11 años, 3 meses
Puntos: 1
$_GET['id'] no funciona

Hola, trataré de explicarme lo mejor posible. Encontre algunos códigos en un tutorial para crear un sistema de usuarios, uno de los códigos sirve para agarrrar y mostrar los datos de la sesión activa, se llama perfil.php. Hasta ayer me funcionaba perfecto, iniciaba sesión, y cuando entraba a perfil.php, mostraba los datos del usuario logeado.
Pero no se que pasó y ahora cuando entro a perfil.php, me muestra lo siguiente: "Notice: Undefined index: id in C:\xampp\htdocs\web\user - copia\perfil.php on line 4"

Si en la linea 4 pongo:
$perfil = mysql_query("SELECT * FROM user WHERE usuario_id='".$_GET['id']."'")
me salta el "notice"

Pero si pongo directamene el id, funciona correctamente y muestra los datos del usuario.
$perfil = mysql_query("SELECT * FROM user WHERE usuario_id='1'") or die(mysql_error());
O sea, el primer código no agarra el 'id', donde está el fallo?

Les dejo el código de perfil.php y algunos otros códigos:

--->Este archivo se llama perfil.php, y sirve para agarrar el id de la sesión activa y mostrar los datos del usuario.

<?php
session_start();
include('acceso_db.php');
$perfil = mysql_query("SELECT * FROM user WHERE usuario_id='".$_GET['id']."'") or die(mysql_error());
if(mysql_num_rows($perfil)) { // Comprobamos que exista el registro con la ID ingresada
$row = mysql_fetch_array($perfil);
$id = $row["usuario_id"];
$nick = $row["usuario_nombre"];
$email = $row["usuario_email"];
$freg = $row["usuario_freg"];
?>
<strong>Nick:</strong> <?=$nick?><br />
<strong>Email:</strong> <?=$email?><br />
<strong>Registrado el:</strong> <?=$freg?><br />
<strong>URL del perfil:</strong> <a href="perfil.php?id=<?=$id?>">Click aquí</a>
<?php
}else {
?>
<p>El perfil seleccionado no existe o ha sido eliminado.</p>
<?php
}
?>




--->Este archivo se llama acceso.php, sirve para iniciar sesión
<?php
session_start();
include('acceso_db.php');
if(empty($_SESSION['usuario_nombre'])) { // comprobamos que las variables de sesión estén vacías
?>
<form action="comprobar.php" method="post">
<label>Usuario:</label><br />
<input type="text" name="usuario_nombre" /><br />
<label>Contraseña:</label><br />
<input type="password" name="usuario_clave" /><br />
<input type="submit" name="enviar" value="Ingresar" />
</form>
<?php
}else {
?>
<p>Hola <strong><?=$_SESSION['usuario_nombre']?></strong> | <a href="logout.php">Salir</a></p>
<?php
}
?>




--->Este archivo se llama comprobar.php, y comprueba los datos del formulario del login

<?php
session_start();
include('acceso_db.php');
if(isset($_POST['enviar'])) { // comprobamos que se hayan enviado los datos del formulario
// comprobamos que los campos usuarios_nombre y usuario_clave no estén vacíos
if(empty($_POST['usuario_nombre']) || empty($_POST['usuario_clave'])) {
echo "El usuario o la contraseña no han sido ingresados. <a href='javascript:history.back();'>Reintentar</a>";
}else {
// "limpiamos" los campos del formulario de posibles códigos maliciosos
$usuario_nombre = mysql_real_escape_string($_POST['usuario_nombre']);
$usuario_clave = mysql_real_escape_string($_POST['usuario_clave']);
$usuario_clave = md5($usuario_clave);
// comprobamos que los datos ingresados en el formulario coincidan con los de la BD
$sql = mysql_query("SELECT usuario_id, usuario_nombre, usuario_clave FROM user WHERE usuario_nombre='".$usuario_nombre."' AND usuario_clave='".$usuario_clave."'");
if($row = mysql_fetch_array($sql)) {
$_SESSION['usuario_id'] = $row['usuario_id']; // creamos la sesion "usuario_id" y le asignamos como valor el campo usuario_id
$_SESSION['usuario_nombre'] = $row["usuario_nombre"]; // creamos la sesion "usuario_nombre" y le asignamos como valor el campo usuario_nombre
header("Location: acceso.php");
}else {
?>
Error, <a href="acceso.php">Reintentar</a>
<?php
}
}
}else {
header("Location: acceso.php");
}
?>



Base de datos:
CREATE TABLE `usuarios` (
`usuario_id` int(4) NOT NULL AUTO_INCREMENT,
`usuario_nombre` varchar(15) NOT NULL DEFAULT '',
`usuario_clave` varchar(32) NOT NULL DEFAULT '',
`usuario_email` varchar(50) NOT NULL DEFAULT '',
`usuario_freg` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`usuario_id`)
)