Foros del Web » Programando para Internet » PHP »

codigo para envio de mensajes.

Estas en el tema de codigo para envio de mensajes. en el foro de PHP en Foros del Web. wenas, eh cogido este codigo de un sistema de usuarios de electros, para utilizarlo en mi web: mensajes.php (lo que he cambiado a sido esto: ...
  #1 (permalink)  
Antiguo 24/06/2009, 15:39
 
Fecha de Ingreso: diciembre-2006
Mensajes: 153
Antigüedad: 17 años, 11 meses
Puntos: 1
Pregunta codigo para envio de mensajes.

wenas, eh cogido este codigo de un sistema de usuarios de electros, para utilizarlo en mi web:

mensajes.php (lo que he cambiado a sido esto: $usuario = $_COOKIE["unick"] ; por $usuario = $_SESSION["SESS_USUARIO"] ; por que utilizo sesiones y no cookies, y los includes : ulogin.php por login.php que utilizo para comprobar si esta conectado.

el problema que tengo es que no funciona el codigo desde la web , para enviar un mensaje le doy al link:
http://miweb.com/mensajes.php?mensaje=nuevo

y no sale el formulario para enviarlo..

eh insertado un mensaje en la db poniendo mi id de usuario y mi nombredeusuario y funciona correctamente solo me lo muestra a mi. pero lo de la paginacion nose por que no va..

por que puede ser?¿



gracias

Código PHP:
<?
include("login.php") ;
?>
<p><b>Mensajes</b>
<?
include("db.conf.php") ;
if(
$mensaje == "nuevo") {
echo 
"
<script>
function revisar() {
if(formulario.destinatario.value.length == 0) { alert('Debes escribir un destinatario') ; return false ; }
if(formulario.mensaje.value.length == 0) { alert('Debes escribir un mensaje') ; return false ; }
if(formulario.mensaje.value.length > 255) { alert('El mensaje supera los 255 caractéres') ; return false ; }
}
</script>
<p><b>Nuevo</b>
<p>
<form name=formulario method=post action=mensajes.php onsubmit=\"return revisar()\">
<b>Destinatario:</b><br>
<input type=text name=destinatario maxlength=20><br>
<b>Mensaje:</b><br>
<textarea name=mensaje cols=30 rows=5></textarea><br><br>
<input type=submit name=enviar value=Enviar>
</form>
;
}
else {
echo 
"<p><a href=mensajes.php?mensaje=nuevo>Nuevo mensaje</a>" ;
}
if(
$responder) {
echo 
"
<script>
function revisar() {
if(formulario.destinatario.value.length == 0) { alert('Debes escribir un destinatario') ; return false ; }
if(formulario.mensaje.value.length == 0) { alert('Debes escribir un mensaje') ; return false ; }
if(formulario.mensaje.value.length > 255) { alert('El mensaje supera los 255 caractéres') ; return false ; }
}
</script>
<p><b>Responder</b>
<p>
<form name=formulario method=post action=mensajes.php onsubmit=\"return revisar()\">
<b>Destinatario:</b><br>
<input type=text name=destinatario maxlength=20 value=\"$responder\"><br>
<b>Mensaje:</b><br>
<textarea name=mensaje cols=30 rows=5></textarea><br><br>
<input type=submit name=enviar value=Enviar>
</form>
"
;
}
if(
$borrar) {
$usuario $_SESSION["SESS_USERNAME"] ;
mysql_query("delete from mensajes where id='$borrar' and destinatario='$usuario'") ;
echo 
"<p>El mensaje ha sido borrado con éxito. Haz click <a href=mensajes.php>aquí</a> para regresar." ;
}
else {
if(
$enviar) {
function 
quitar($texto) {
$texto trim($texto) ;
$texto htmlspecialchars($texto) ;
return 
$texto ;
}
$fecha time() - 25200 ;
$destinatario quitar($destinatario) ;
$mensaje quitar($mensaje) ;
$resp mysql_query("select member_id from members where login='$destinatario'") ;
$datos mysql_fetch_array($resp) ;
if(
mysql_num_rows($resp) == 0) {
echo 
"<p>Este usuario no existe en la base de datos. Haz click <a href=javascript:history.back()>aquí</a> para regresar.";
}
else {
$remitente$_SESSION["SESS_USERNAME"] ;
mysql_query("insert into mensajes (fecha,destinatario,remitente,mensaje) values ('$fecha','$destinatario','$remitente','$mensaje')") ;
echo 
"<p>El mensaje ha sido enviado con éxito. Haz click <a href=mensajes.php>aquí</a> para regresar." ;
}
mysql_free_result($resp) ;
}
else {
$usuario $_SESSION["SESS_LOGIN"] ;
$resp mysql_query("select id from mensajes where destinatario='$usuario'") ;
$mensajes mysql_num_rows($resp) ;
mysql_free_result($resp) ;
$mostrar ;
if(!
$desde) { $desde ; }
$resp mysql_query("select * from mensajes where destinatario='$usuario' order by id desc limit $desde,$mostrar") ;
$desde $desde $mostrar ;
if(
mysql_num_rows($resp) == 0) { echo "<p>No se encontraron mensajes." ; }
else {
echo 
"
<p><b>Total de mensajes:</b> $mensajes
<p>
;
while(
$datos mysql_fetch_array($resp)) {
$fecha $datos[fecha] ;
$mesesano = array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto",
"Septiembre","Octubre","Noviembre","Diciembre") ;
$diames date(j,$fecha) ; $mesano date(n,$fecha) - $ano date(Y,$fecha) ; $hora date("h:i A",$fecha) ;
$fecha "$diames $mesesano[$mesano] $ano $hora" ;
echo 
"
<table width=100% border=0 cellpadding=1 cellspacing=0>
<tr>
<td><b>$datos[remitente]</b></td>
<td><div align=right><b>$fecha</b></div></td>
</tr>
<tr>
<td colspan=2>$datos[mensaje]</td>
</tr>
<tr>
<td colspan=2>
<div align=right>
<a href=\"mensajes.php?responder=$datos[remitente]\">Responder</a> |
<a href=\"mensajes.php?borrar=$datos[id]\">Borrar</a>
</div>
</td>
</tr>
</table><br>
;
if(
$datos[nuevo] == 0) {
mysql_query("update mensajes set nuevo='1' where id='$datos[id]'") ;
}
}
echo 
"
<p align=right><a href=mensajes.php?desde=$desde>Siguientes $mostrar mensajes</a>
;
}
mysql_free_result($resp) ;
}
}
mysql_close($conectar) ;
?>
muxas gracias..

Última edición por waty90; 24/06/2009 a las 15:52
  #2 (permalink)  
Antiguo 24/06/2009, 16:05
Avatar de dART  
Fecha de Ingreso: enero-2009
Ubicación: Madrid
Mensajes: 246
Antigüedad: 15 años, 9 meses
Puntos: 7
Respuesta: ayuda x favor, codigo para envio de mensajes.

Hola,

¿Recoges la variable $mensaje?
  #3 (permalink)  
Antiguo 24/06/2009, 18:48
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 17 años
Puntos: 18
Respuesta: codigo para envio de mensajes.

utiliza la variable supergolbal $_GET, para recibir la variable $mensaje, además utiliza el tag completo de php (<?php ?>)
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #4 (permalink)  
Antiguo 25/06/2009, 07:34
 
Fecha de Ingreso: diciembre-2006
Mensajes: 153
Antigüedad: 17 años, 11 meses
Puntos: 1
Respuesta: codigo para envio de mensajes.

Cita:
Iniciado por argy Ver Mensaje
utiliza la variable supergolbal $_GET, para recibir la variable $mensaje, además utiliza el tag completo de php (<?php ?>)


hola, gracias por reponderme, eh cambiado <? x <?php , lo que no entiendo es lo de superglobal $_GET, como puedo modificar el codigo para incorporarselo..

con esto mostraria las secciones : mensajes.php?mensaje=nuevo (que aparezca el form y todo correctamente...)


el script funciona bn por lo k digo arriba, que si yo inserto un mensaje en la db con el ID de usuario y el nombre de usuario solo lo puede ver esa persona.

muchas gracias

saludos
  #5 (permalink)  
Antiguo 25/06/2009, 07:49
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 17 años
Puntos: 18
Respuesta: codigo para envio de mensajes.

Código :
Ver original
  1. $_GET['mensaje']=="nuevo";
ojo pero esto es genérico, lo digo porque esa variable es externa y debes de hacer filtros y validaciones para evitar ataques.


suerte.
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #6 (permalink)  
Antiguo 25/06/2009, 07:59
 
Fecha de Ingreso: diciembre-2006
Mensajes: 153
Antigüedad: 17 años, 11 meses
Puntos: 1
Pregunta Respuesta: codigo para envio de mensajes.

Cita:
Iniciado por argy Ver Mensaje
Código :
Ver original
  1. $_GET['mensaje']=="nuevo";
ojo pero esto es genérico, lo digo porque esa variable es externa y debes de hacer filtros y validaciones para evitar ataques.


suerte.


pero como lo coloco en el codigo:

yo tengo esto:
Código PHP:
if($mensaje == "nuevo") { 

y lo sustituyo por :
Código PHP:
$_GET['mensaje']=="nuevo"
y me da error


gracias.
  #7 (permalink)  
Antiguo 25/06/2009, 08:08
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 17 años
Puntos: 18
Respuesta: codigo para envio de mensajes.

disculpa por no ser muy explícito en mis respuestas, lo que trato de decirte es que debes de utilizar variables superglobales, una de ellas es $_GET que utilizamos para recoger variables que vienen por el método get, entonces lo único que tienes que hacer es reemplazar la variable $mensaje (que lo utilizas como global, porque así se acostumbraba utilizar en versiones anteriores, pero que todavía lo utilizan hasta la versión presente de PHP, pero esto funciona cuando la directiva register_globals está activo, es decir en On, cosa que no se recomienda) por $_GET['mensaje'].

más fácil no podría decir que reemplaces la línea if($mensaje=="nuevo") por if($_GET['mensaje']=='nuevo').

además utiliza la etiqueta completa de php

suerte.
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #8 (permalink)  
Antiguo 28/06/2009, 03:10
 
Fecha de Ingreso: diciembre-2006
Mensajes: 153
Antigüedad: 17 años, 11 meses
Puntos: 1
Respuesta: codigo para envio de mensajes.

gracias argy.
estoy investigando un poco, A ver si consigo cambiarlo a variables superglobales.

un saludo
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 22:28.