Comunidad PHPeros
Lenguajes => PHP => Mensaje iniciado por: RamFu en 01 de Noviembre de 2006, 13:14:19 pm
-
Hola, aqui les explico como hacer un script de mensajes públicos:
Componemos de 3 Archivos:
CONFIG, ENVIAR_MENSAJE y MENSAJES
config.php
<?php
// Conectamos al MYSQL
$host = "CAMBIA";
$user = "CAMBIA";
$pass = "CAMBIA";
$dbname = "CAMBIA";
$conecta = @mysql_connect($host, $user, $pass) or die("El Confih.php está mal configurado, por favor reviselo.");
@mysql_select_db($dbname, $conecta);
?>
donde pone CAMBIA, pon los datos solicitados. Hemos creado este archivo, para que se conecte al MYSQl de la tabla de Datos.
Es como el conectar.php del minichat v6
-------------------
enviar_mensaje.php
Este codigo, nos muestra un formulario de Envio del mensaje. Puede quedar una cosa asi:
Recordad que lo podéis modificar.
<?
// SCRIPT BASADO EN LOS PRIVADOS DEL MC v6
// CREADO PARA SU USO Y DISFRUTE (EN PHPEROS)
// ---------------------
// Variables que puedes modificar
$pagina = "enviar_mensaje.php"; // Nombre de ésta página
if ($env=="") {
// Sacamos la IP del usuario
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
elseif (isset($_SERVER['HTTP_VIA'])) {
$ip = $_SERVER['HTTP_VIA'];
}
elseif (isset($_SERVER['REMOTE_ADDR'])) {
$ip = $_SERVER['REMOTE_ADDR'];
}
else {
$ip = "Desconocida";
}
$fecha= date("j-m-20y"); // Sacamos la hora en formato dd-mm-y
?>
<div align="center">
<p><strong>Transmisión de Mensaje Público: </strong></p>
<form name="form1" method="post" action="<? echo $pagina; ?>?env=1">
Nick:
<input name="nick" type="text" id="nick">
<br>
Mensaje:
<input name="mensaje" type="text" id="mensaje" size="40" maxlength="255">
<input name="ip" type="hidden" id="ip" value="<? echo $ip; ?>">
<input name="msm" type="hidden" id="msm" value="1">
<input name="fecha" type="hidden" id="fecha" value="<? echo $fecha; ?>">
<br>
<br>
<input type="submit" name="Submit" value="Enviar">
</form>
<p><strong></strong></p>
</div>
<? } else if ($env=="1") {
include ("config.php");
mysql_query("truncate table mpublico_mensajes") ; // Borramos todo el contenido de la tabla
mysql_query("insert into mpublico_mensajes (mensaje,nick,ip,fecha,msm) values ('$mensaje','$nick','$ip','$fecha','$msm')") ; // Introducimos en la tabla el contenido del formulario
}
?>
Nos muestra el formulario para enviar el mensaje. También lo podéis modificar a vuestro gusto.
---------------------------
mensajes.php
<?
include ("config.php");
$u = "1"; // Hecho a lo rápido
$resp = mysql_query("select * from mpublico_mensajes where msm='$u'") ;
$datos = mysql_fetch_array($resp) ;
$mensaje = $datos[mensaje];
$mensaje = preg_replace("/(?<!<a href=")((http|ftp)+(s)?:'[^<>s]+)/i","<a class=texto_bansms href="\0" target="_blank">\0</a>",$mensaje)' ; // hace un link con enlaces que empiezen por http://
?>
<MARQUEE onMouseOver='stop()' onMouseOut='start()' scrollamount='5' width="100%" height=10 align="middle">
<b><? echo $datos[nick]; ?></b>: <? echo $mensaje; ?>
</marquee>
Muestra los mensajes.
-------------------------
Como insertarlo en el Website?
<?php
include ('mensajes_publicos/mensajes.php);
?>
Esto: mensajes_publicos/mensajes.php lo podeis sustituir por vuestro directorio de mensajes. Si en el FTP la carpeta se llama mis_mensajes, pondremos:
<?php
include ('mis_mensajes/mensajes.php);
?>
Codigo SQL para crear la base de datos en mysql:
-
Esto NO es un tutorial ¬¬
-
El codigo SQL es:
CREATE TABLE `mpublico_mensajes` (
`mensaje` varchar(255) NOT NULL default '',
`nick` varchar(40) NOT NULL default '',
`fecha` varchar(20) NOT NULL default '',
`ip` varchar(20) NOT NULL default '',
`msm` varchar(12) NOT NULL default ''
) TYPE=MyISAM COMMENT='Tabla para el sistema de mensajes publicos';
-
me da error en el mensajes.php es esto mira :
http://www.radiogoods.webspacemania.com/mpublico_mensajes/mensajes.php
entra i dime
-
$fecha= date("j-m-20y"); // Sacamos la hora en formato dd-mm-y
Esa fecha no está en formato dd-mm-y (ej. 08-11-06)
Ese formato se consigue asi: date("d-m-y");
La "j" pone el día sin cero delante (ej. 8-11-06)
Y en el año, pones 20 delante... lo cual si "y" equivale a 06, el resultado es 2006. No hace falta ser tan cutres. Se puede poner una Y mayúscula, y te representa el año en 4 cifras. date ("d-m-Y"); (ej. 08-11-2006)
www.php.net/date
-
Esto no tiene ni pies ni cabeza :S
if ($env=="") {
¿Que queres hacer con eso?
<? } else if ($env=="1") {
include ("config.php");
mysql_query("truncate table mpublico_mensajes") ; // Borramos todo el contenido de la tabla
mysql_query("insert into mpublico_mensajes (mensaje,nick,ip,fecha,msm) values ('$mensaje','$nick','$ip','$fecha','$msm')") ; // Introducimos en la tabla el contenido del formulario
}
?>
No entiendo nada... ;S
Salu2!
-
El limite de mensajes a enviar. 1
-
bueno.. pero ami me ayudais o no
-
<?
// El codigo siguiente, muestra los Mensajes
include ("config.php");
$u = "1";
$resp = mysql_query("select * from mpublico_mensajes where msm='$u'") ;
$datos = mysql_fetch_array($resp) ;
$mensaje = $datos[mensaje];
$mensaje = preg_replace("/(?<!<a href=\")((http|ftp)+(s)?:\/\/[^<>\s]+)/i","<a class=texto_bansms href=\"\\0\" target=\"_blank\">\\0</a>",$mensaje) ;
?>
<MARQUEE onMouseOver='stop()' onMouseOut='start()' scrollamount='5' width="100%" height=10 align="middle">
<b><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><? echo $datos[nick]; ?></font></b><font size="1" face="Verdana, Arial, Helvetica, sans-serif">:
<? echo $mensaje; ?> </font>
</marquee>
Prueba ese a ver
-
Ramfu amigo mio, te corrijo ;);)
Tu script simplemente lo que hace es mostrar un mensage, asi que te doy una solucion mejor :P:P.
Atento:
<?
@include("config.php"); //incluimos config
//seleccionamos los mensages de la db cn la id descendiente
$query = mysql_query("SELECT * FROM `mpublico_mensajes` Order by id DESC");
//creamos el marquee ahora
echo "<marquee onmouseover='this.stop()' onmouseout='this.start()'>";
//recojemos todos los mensages y mostramos....
while($ver = @mysql_fetch_array($query)) {
//comprovamos variables i las mostramos
$nick = $ver['nick'];
echo "<b>".$nick."</b>";
echo ": ".$ver['mensaje'];
//espacio que quedara entre mensage y mensage
echo " || ";
} //cerramos el while
//cerramos marquee
echo "</marquee>";
?>
Con este codigo, lo que aremos es mostrar todos los mensajes publicos que la gente envia sin necesidad de ir borrando uno para mostrar el otro ;);).
-
Ok, pero yo puse el de 1, porque si alguien mandaba un mensaje inapropiado, se borrara con el siguiente ;)
-
Cierro el tema, aunque debería borrarlo, porque incumple una norma basica. Explicar los CODIGOS no POSTEARLOS SIMPLEMENTE.
;) algun dia no tendré ke repetirlo :P