Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/10/2010, 15:44
kh0d3x
 
Fecha de Ingreso: septiembre-2010
Mensajes: 48
Antigüedad: 13 años, 8 meses
Puntos: 3
Pregunta Catchable Fatal Error [Ayuda]

Hola, tengo un formulario en donde solicito usuario y contraseña, en este (si los datos son correctos):

Código:
$check_user = mysql_query("SELECT * FROM users WHERE user='".mysql_escape_string($user)."' AND pass='".mysql_escape_string($pass)."' ");
Me genera 3 sesiones:
Código:
session_register("rank");
session_register("logged");
session_register("user");
$_SESSION['rank'] = $user_exists['rank'];
$_SESSION['logged'] = "yes";
$_SESSION['user'] = $user;
$user_exists viene de una peticion con mysql_fetch_assoc (Ya intente con object y me sigue dando el mismo error), el problema es que se supone que solo me guarde el campo "rank" de la tabla en la session y me guarda solo "NULL", es lo que sale, lo raro es que:

Cuando ingreso los datos primero si me sale todo bien, una vez que le doy f5 o parecido tengo un switch en donde depende que rango sea el usuario es lo que mostrará (menu y enviar mensaje) y al darle f5 como mencione anteriormente la session al parecer pierde su valor y solo me muestra los mensajes pero no el menu ni el campo de enviar.

Espero me ayuden, saludos.

P.D. Cuando intento hacer un echo a $_SESSION['rank'] me aparece esto:
Cita:
Catchable fatal error: Object of class stdClass could not be converted to string in C:\AppServ\www\index.php on line 3
Editado:
-----------------------------

Cuando ingreso y los datos son correctos hago un "echo $_SESSION['rank']" y me tira "user" y me muestra todo correcto, pero como tengo un redirect para que tome el index.php el valor de la session y si esta logeado me muestre otra cosa, ahi es cuando me da problemas, les dejo parte del codigo:

Código:
<?
include("lib/classes.php");
include("lib/config.php");
$connect = new dbconnect();
$connect->connect("****","****","*****","****");
$encryption = new encryption();
//Sendin' msg
$mod = $_GET['act'];
	if(!empty($mod)){
		switch($mod){
			case "register":
			@include("lib/register.php");
			break;
			case "logout":
			if(!empty($_SESSION['logged'])){
			session_destroy();
			echo "<script>alert('Te has desconectado correctamente');</script>";
			echo '<META HTTP-EQUIV=Refresh CONTENT="0; URL=?">';
			}else{
			echo "<script>alert('No te puedes desconectar porque no estas logeado');</script>";
			echo '<META HTTP-EQUIV=Refresh CONTENT="0; URL=?">';
			}
			break;
			default;
			echo '<META HTTP-EQUIV=Refresh CONTENT="0; URL=?">';
		}
	}else{
if (isset($_POST['send'])){
$msg = strip_tags($_POST['msg']);
$ip = $_SERVER[REMOTE_ADDR];
	if ((strlen($msg) > $max_msg) or (strlen($msg) < $min_msg)){
	$error = "<div style='text-align:justify;;background:red;color:white;line-height:1em;'>
	El mensaje tiene que tener mínimo ".$min_msg." carácteres y máximo ".$max_msg." carácteres.
	</div>";
	}else{
	$user = $_SESSION['user'];
	$web = mysql_query("SELECT * FROM users WHERE user='".mysql_escape_string($user)."' ");
		if($web_exists = mysql_fetch_object($web)){
		$web = $web_exists->web;
		}else{
		$web = "#";
		}
	$insert = mysql_query("INSERT INTO comments (user,msg,web,ip,date) values (
	'".mysql_escape_string($_SESSION['user'])."',
	'".mysql_escape_string($msg)."',
	'".mysql_escape_string($web)."',
	'".mysql_escape_string($ip)."',
	'".mysql_escape_string($date)."'
	)");
	}
}
if(isset($_POST['login'])){
$user = strip_tags($_POST['user']);
$pass = strip_tags($_POST['pass']);
$pass = $encryption->encrypt($pass,$code);
$check_user = mysql_query("SELECT * FROM users WHERE user='".mysql_escape_string($user)."' AND pass='".mysql_escape_string($pass)."' ");
	if($user_exists = mysql_fetch_assoc($check_user)){
	session_register("rank");
	session_register("logged");
	session_register("user");
	$_SESSION['rank'] = "user";
	$_SESSION['logged'] = "yes";
	$_SESSION['user'] = $user;
	$error = "<div style='text-align:justify;;background:red;color:white;line-height:1em;'>Bienvenido, en unos momentos serás redirigído.</div>";
	echo $_SESSION['rank'];
	/*echo '<META HTTP-EQUIV=Refresh CONTENT="2; URL=?">';*/
	}else{
	$error = "<div style='text-align:justify;;background:red;color:white;line-height:1em;'>Los datos proporcionados son incorrectos</div>";
	}
}
	$rank = $_SESSION['rank'];
		switch($rank){
		case "":
		$menu = "Registrar cuenta<br /><a href='?act=register' target='_blank'><img src='img/register_account.png' border='0'></a>";
		$send = "<div style='font-size:12px;'>
		<form action='' method='POST'>".$error."
		<input type='text' size='30' onFocus=\"if (this.value == 'Usuario') {
		this.value=''}\" onBlur=\"if(this.value == ''){ this.value='Usuario'}\" value='Usuario' name='user' >
		<input type='password' size='30' onFocus=\"if (this.value == '********') {
		this.value=''}\" onBlur=\"if(this.value == ''){ this.value='********'}\" value='********' name='pass'><br />
		<input type='submit' name='login' value='Entrar'>
		</form>
		</div>";
		break;
		
		case "user":
		echo "Adada";
		$menu = "<div style='font-size:12px;'>Perfil | Editar | Ayuda | <a href='?act=logout'>Salir</a></div>";
		$send = "<div style='font-size:12px;'>
		<form action='' method='POST'>
		".$error."
		<textarea name='msg' cols='30' rows='3'onFocus=\"if (this.value == 'Mensaje') {
		this.value=''}\" onBlur=\"if(this.value == ''){ this.value='Mensaje'}\">Mensaje</textarea><br />
		<input type='submit' name='send' value='Enviar'>
		</form>
		</div>";
		break;
		
		case "admin":
		$menu = "<div style='font-size:12px;'>Perfil | Editar | Administrar | Ayuda | <a href='?act=logout'>Salir</a></div>";
		$send = "<div style='font-size:12px;'>
		<form action='' method='POST'>
		".$error."
		<textarea name='msg' cols='30' rows='3'onFocus=\"if (this.value == 'Mensaje') {
		this.value=''}\" onBlur=\"if(this.value == ''){ this.value='Mensaje'}\">Mensaje</textarea><br />
		<input type='submit' name='send' value='Enviar'>
		</form>
		</div>";
		break;
		
		default;
		echo "test";
		break;
	}

?>
<body>
<div id="container">
	<div id="header"><div style="margin-top:5px;">ZO Chat v1.0 Registered Version</div></div>
	<div id="panel"><? echo $menu; ?></div>
    <div id="show"><div style="margin-left:5px;margin-right:5px;">
	<div id="msg"><? include("lib/show_msg.php");	?></div>
    </div></div>
    <div id="send"><? echo $send; ?></div>
    <div id="footer"><div style="margin-top:5px;">*****</div></div>
</div>
</body>
</html>
<? } ?>
Al darle un var_dump() a $_SESSION me acabo de dar cuenta de que todos los valores de la base de datos me los almacena en sesiones :S!

Última edición por kh0d3x; 28/10/2010 a las 15:54