Foros del Web » Programando para Internet » PHP »

Undefined...

Estas en el tema de Undefined... en el foro de PHP en Foros del Web. Hola a tod@s, estoy creando un chat a traves de unas cuantas ayudas dadas y creo la sesion a traves de COOKIE, defino la COOKIE ...
  #1 (permalink)  
Antiguo 02/12/2012, 08:35
 
Fecha de Ingreso: diciembre-2012
Mensajes: 4
Antigüedad: 11 años, 4 meses
Puntos: 0
Undefined...

Hola a tod@s, estoy creando un chat a traves de unas cuantas ayudas dadas y creo la sesion a traves de COOKIE, defino la COOKIE como COOKIE, chat (de chat).

Ejemplo:

Código:
define('COOKIE', 'chat');
[hr]

Seguidamente en las funciones.php tengo esto:

Código:
if(isset($_COOKIE[COOKIE]) || mysql_num_rows($current_user = mysql_query('SELECT * FROM users WHERE id_extreme = \''.MySQL_Clean($_COOKIE[COOKIE]).'\''))){
	$current_user = mysql_fetch_assoc($current_user);
	if(mysql_num_rows($ban = mysql_query('SELECT reason FROM bans WHERE user = \''.$current_user['id'].'\''))){
		$ban = mysql_fetch_row($ban);
		exit('Has sido baneado por '.htmlentities($ban[0]));
	}
}else{
	unset($current_user);
}
Y cuando entro al index (con los includes a mysql y funciones me aparece esto): Notice: Undefined index: chat in C:\Xampp\htdocs\chat\functions.php on line 2

Necesito ayuda, ya no se que hacer.

Muchas gracias.
  #2 (permalink)  
Antiguo 02/12/2012, 09:11
Avatar de zerohours  
Fecha de Ingreso: agosto-2004
Ubicación: San Salvador, El Salvador.
Mensajes: 60
Antigüedad: 19 años, 8 meses
Puntos: 4
Respuesta: Undefined...

Podrías poner todo el código de functions.php, no se logra ver donde esta tu error, porque según el error en la linea 2 no has definido index.
  #3 (permalink)  
Antiguo 02/12/2012, 09:12
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Undefined...

Es que estás tratando de usar $_COOKIE[COOKIE] sin que esté definido (y lo que te aparece es solo una notificación de ello)
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #4 (permalink)  
Antiguo 02/12/2012, 14:49
 
Fecha de Ingreso: diciembre-2012
Mensajes: 4
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Undefined...

Código:
if(isset($_COOKIE[COOKIE]) || mysql_num_rows($current_user = mysql_query('SELECT * FROM users WHERE id_extreme = \''.MySQL_Clean($_COOKIE[COOKIE]).'\''))){
	$current_user = mysql_fetch_assoc($current_user);
	if(mysql_num_rows($ban = mysql_query('SELECT reason FROM bans WHERE user = \''.$current_user['id'].'\''))){
		$ban = mysql_fetch_row($ban);
		exit('Has sido baneado por '.htmlentities($ban[0]));
	}
}else{
	unset($current_user);
}

function isLogged(){
	global $current_user;
	return (count($current_user) > 1 ? true: false);
}

function MySQL_Clean($string){
	if(get_magic_quotes_gpc()){
		$string = stripslashes($string);
	}
	
	return mysql_real_escape_string($string);
}

function BBCode($string){
	global $current_user;
	$string = nl2br($string);
	$string = htmlentities($string);
	
	$string = str_replace('[tu]', $current_user['user'], $string);
	
	$string = preg_replace('/(http:\/\/|www\.|http:\/\/www\.)([a-z0-9\-_\.\/^"]+)/si', '<a target="_blank" href="\\1\\2">\\1\\2</a>', $string); // URL
	$string = preg_replace('/\[b\](.+)\[\/b\]/Usi', '<b>\\1</b>', $string); // Negrita
	$string = preg_replace('/\[i\](.+)\[\/i\]/Usi', '<i>\\1</i>', $string); // Cursiva
	$string = preg_replace('/\[u\](.+)\[\/u\]/Usi', '<u>\\1</u>', $string); // Subrayada
	
	$censored = array('putos', 'putas', 'mierda');
	$string = str_ireplace($censored, '****', $string); // La I de Ireplace es para no distinguir entre minúsculas y mayúsculas.
	
	return $string;
}

function isAllowedTo($permissions){
	global $current_user;
	$query = mysql_fetch_row(mysql_query('SELECT permissions FROM ranks WHERE id = \''.$current_user['rank'].'\''));
	$query = explode(',', $query[0]);
	return (in_array($permissions, $query) ? true : false);
}
Aqui lo teneis todo.

---

Tambien tengo otro problema, me aparece el chat sin estar logeado, cosa que creo que lo he hecho bien a traves de funciones.

Aqui os dejo el resto del codigo:

Código:
<?php
include('mysql.php');
include('functions.php');
?>

<!DOCTYPE html>
<html>
<head>
<meta charset="iso-8859-1">
<title>Documento sin título</title>
</head>

<body>
<?php
if(!isLogged()){
	if(!isset($_POST['usuario'])){
?>

hola

<?php
	}else{
		foreach($_POST as $field => $value){
			$value = trim($value);
			if(empty($value)){
				exit('Falta el campo '.$field);
			}
			
			if(strlen($_POST['user']) > 32 || strlen($_POST['user']) < 6 || !preg_match('/[a-z0-9_]/i', $_POST['user'])){
			exit('El nombre no es v&aacute;lido, es demasiado largo.');
			}
			
			if(mysql_num_rows(mysql_query('SELECT id FROM users WHERE user = \''.MySQL_Clean($_POST['user']).'\''))){
				exit('El nombre de usuario ya esta registrado.');
			}
			
			if(strlen($_POST['password']) < 6){
				exit('La contrase&ntilde;a es demasiado corta.');
			}
			
			if(!preg_match('/^[a-z0-9_\.\-]{1,64}@[a-z0-9_\.\-]{1,255}\.([a-z]{2,3})+$/i', $_POST['email'])){
				exit('El email no es v&aacute;lido.');
			}
			
			if(mysql_num_rows(mysql_query('SELECT id FROM users WHERE email = \''.MySQL_Clean($_POST['email']).'\''))){
				exit('El email ya esta registrado.');
			}
			
			$id_extreme = md5(uniqid(mt_rand(), true)); // id_extreme
			$date = date('d/m/Y');
			
			mysql_query('INSERT INTO users (id_extreme, ip_register, ip_actual, user, password, email, rank, register) VALUES (\''.$id_extreme.'\', \''.$_SERVER['REMOTE_ADDR'].'\', \''.$_SERVER['REMOTE_ADDR'].'\', \''.MySQL_Clean($_POST['user']).'\', \''.md5($_POST['password']).'\', \''.MySQL_Clean($_POST['email']).'\', \'1\', \''.$_POST['date'].'\')') or exit(mysql_error());
			exit('<script>$.get("ajax/login.php", "user='.$_POST['user'].'&password='.$_POST['password'].'");</script> 
					Has sido registrado correctamente.
				<meta http-equiv="refresh" content="2">');
		}
	}
?>

<script type="text/javascript" src="js/jquery.cookie.js"></script>

<div class="float_left">
</div>

<div class="floatL">
	<div class="cont">
		<div class="box_title" style="cursor: pointer;" onclick="$('#mc').slideToggle()">Mensajes</div>
		<div id="mc">
			<div class="box_submenu" onclick="$('#bb').slideToggle();aquo(this)">&laquo; Ver mensajes</div>
			<div class="box_body" id="bb"></div>
			<div class="box_submenu" onclick="$('#nmsg').slideToggle();aquo(this)">&laquo; Enviar mensaje</div>
			<div class="box_send" id="nmsg">
				<input type="text" id="newm" /><input type="submit" id="sendmsg" value="Enviar">
			</div>
		</div>
		<div class="box_footer"><?=(isAllowedTo('delmsg') ? '<a href="#" onclick="deleteall()">Borrar todos los mensajes</a>' : '')?></div>
	</div>
	&raquo; <a href="#" onclick="$.cookie('<?=COOKIE;?>', null);location.reload();return;">Salir</a>
</div>
<br /><br />IE8+ Compatible
</div>
<div class="clearBoth"></div>
<script type="text/javascript">
$('#sendmsg').bind('click', function(){ //enviar mensaje
	if(!$('#newm').val()){ return false; }
	$.get('ajax/new-message.php', 'msg=' + $('#newm').val(), function(a){ if(a.charAt(0) == '0'){ alert(a.substring(1));return false; }$('#newm').val('').focus(); });
});
$('#newm').bind('keypress', function(event){ if(event.keyCode == 13){ $('#sendmsg').click(); } }); //enter
$('#button_ban').bind('click', function(){ //banear
	if(!$('#banuser').val()){ alert('Selecciona un usuario');return; }
	var reason = prompt('Razon de suspension:');
	if(reason == '' || !reason){ return; }
	$.get('ajax/action-user.php', 'sa=ban&val=' + $('#banuser').val() + '&reason=' + reason, function(a){
		alert('El usuario ' + (a.charAt(0) == 1 ? 'ha sido baneado' : 'no ha podido ser baneado: ' + a.substring(1)));
	});
});
$('#button_desban').bind('click', function(){
	if(!$('#desbanuser').val()){ alert('Selecciona un usuario');return false; }
	$.get('ajax/action-user.php', 'sa=desban&val=' + parseInt($('#banuser').val()), function(a){
		alert('El usuario ' + (a.charAt(0) == 1 ? 'ha sido reactivado' : 'no ha podido ser reactivado: ' + a.substring(1)));
	});
});
$('#change_user_rank').bind('click', function(){
	if(!$('#cr').val() || !$('#nr').val()){ alert('Selecciona un usuario y su nuevo rango');return false; }
	$.get('ajax/action-user.php', 'sa=rank&val=' + $('#cr').val() + '&nr=' + parseInt($('#nr').val()), function(a){
		alert('Rango ' + (a.charAt(0) == 1 ? 'cambiado' : 'no cambiado: ' + a.substring(1)));
	});
});
$('#du').bind('keypress', function(event){
	if(event.keyCode == 13){ $('#bdu').click(); }
});
function update_msg(){
	$.get('ajax/last-messages.php', 'rnd=' + Math.random() * 99999, function(a){ $('#bb').html(a); });
}
function del_msg(id){
	id = parseInt(id);
	$.get('ajax/delete-message.php', 'id=' + id, function(a){ if(a.charAt(0) == '0'){ alert(a.substring(1)); } });
}
function deleteall(){
	$.get('ajax/delete-message.php', function(a){ if(a.charAt(0) == '0'){ alert(a.substring(1)); } });
}
function del_user(who){
	if(!confirm('Si borras al usuario, borras TODOS sus datos de la BD!')){ return false; }
	$.get('ajax/action-user.php', 'sa=delete&val=' + who, function(a){
		if(a == 1){ alert('Usuario borrado'); }else{ alert(a.substring(1)); }
	});
}
function aquo(o){
	o.innerHTML = (o.innerHTML.charAt(0) == '»' ? '«' : '»') + o.innerHTML.substring(1);
}
setInterval('update_msg()', 1000);
</script>
<?php } ?>
</body>
</html>

Última edición por AlexPHPUb; 02/12/2012 a las 15:02

Etiquetas: html, mysql, sql
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 05:33.