Autor Tema: Mensajes Públicos  (Leído 2489 veces)

Desconectado RamFu

  • Moderadores Flash
  • PHPero Experto
  • ****
  • Mensajes: 778
  • Karma: 72
  • Sexo: Masculino
  • Programador y desarollador Actionscript y PHP
    • Ver Perfil
    • Google
Mensajes Públicos
« 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[&#39;HTTP_X_FORWARDED_FOR&#39;])) {  
    
$ip $_SERVER[&#39;HTTP_X_FORWARDED_FOR&#39;];  
  
}  
  elseif (isset(
$_SERVER[&#39;HTTP_VIA&#39;])) {  
    
$ip $_SERVER[&#39;HTTP_VIA&#39;];  
  
}  
  elseif (isset(
$_SERVER[&#39;REMOTE_ADDR&#39;])) {  
    
$ip $_SERVER[&#39;REMOTE_ADDR&#39;];  
  
}  
  else {  
    
$ip "Desconocida";  
  }  
  
$fechadate("j-m-20y"); // Sacamos la hora en formato dd-mm-y
  
?>
<div align="center">
  <p><strong>Transmisi&oacute;n de Mensaje P&uacute;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 (&#39;$mensaje&#39;,&#39;$nick&#39;,&#39;$ip&#39;,&#39;$fecha&#39;,&#39;$msm&#39;)") ; // 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=&#39;$u&#39;") ;
$datos mysql_fetch_array($resp) ;
$mensaje $datos[mensaje];
$mensaje preg_replace("/(?<!<a href=")((http|ftp)+(s)?:&#39;[^<>s]+)/i","<a class=texto_bansms href="\0" target="_blank">\0</a>",$mensaje)&#39; ; // hace un link con enlaces que empiezen por http://
?>
<MARQUEE onMouseOver=&#39;stop()&#39; onMouseOut=&#39;start()&#39; scrollamount=&#39;5&#39; width="100%" height=10 align="middle">
<b><? echo $datos[nick]; ?></b>: <? echo $mensaje?>
</marquee>

Muestra los mensajes.
-------------------------
Como insertarlo en el Website?
<?php
include (&#39;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 (&#39;mis_mensajes/mensajes.php);
?>


Codigo SQL para crear la base de datos en mysql:
« Última modificación: 01 de Noviembre de 2006, 15:31:03 pm por RamFu »

Comunidad PHPeros

Mensajes Públicos
« en: 01 de Noviembre de 2006, 13:14:19 pm »

Desconectado Raken

  • PHPero Avanzado
  • ****
  • Mensajes: 297
  • Karma: 30
  • Sexo: Masculino
    • Ver Perfil
Re: Mensajes Públicos
« Respuesta #1 en: 01 de Noviembre de 2006, 14:54:18 pm »
Esto NO es un tutorial ¬¬
Raken - Moderador para PHP y HTML

Desconectado RamFu

  • Moderadores Flash
  • PHPero Experto
  • ****
  • Mensajes: 778
  • Karma: 72
  • Sexo: Masculino
  • Programador y desarollador Actionscript y PHP
    • Ver Perfil
    • Google
Re: Mensajes Públicos
« Respuesta #2 en: 01 de Noviembre de 2006, 15:34:29 pm »
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';

Desconectado Drek

  • PHPer@ Fijo
  • ***
  • Mensajes: 193
  • Karma: 0
  • Sexo: Masculino
    • Ver Perfil
    • radiogoods
Re: Mensajes Públicos
« Respuesta #3 en: 01 de Noviembre de 2006, 15:43:43 pm »
me da error en el mensajes.php es esto mira :

http://www.radiogoods.webspacemania.com/mpublico_mensajes/mensajes.php

entra i dime
« Última modificación: 01 de Noviembre de 2006, 15:49:26 pm por Drek »

Desconectado Raken

  • PHPero Avanzado
  • ****
  • Mensajes: 297
  • Karma: 30
  • Sexo: Masculino
    • Ver Perfil
Re: Mensajes Públicos
« Respuesta #4 en: 01 de Noviembre de 2006, 16:06:27 pm »
Citar
$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
Raken - Moderador para PHP y HTML

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re: Mensajes Públicos
« Respuesta #5 en: 01 de Noviembre de 2006, 16:18:37 pm »
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 (&#39;$mensaje&#39;,&#39;$nick&#39;,&#39;$ip&#39;,&#39;$fecha&#39;,&#39;$msm&#39;)") ; // Introducimos en la tabla el contenido del formulario
}
?>


No entiendo nada... ;S

Salu2!
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado RamFu

  • Moderadores Flash
  • PHPero Experto
  • ****
  • Mensajes: 778
  • Karma: 72
  • Sexo: Masculino
  • Programador y desarollador Actionscript y PHP
    • Ver Perfil
    • Google
Re: Mensajes Públicos
« Respuesta #6 en: 01 de Noviembre de 2006, 16:37:22 pm »
El limite de mensajes a enviar. 1

Desconectado Drek

  • PHPer@ Fijo
  • ***
  • Mensajes: 193
  • Karma: 0
  • Sexo: Masculino
    • Ver Perfil
    • radiogoods
Re: Mensajes Públicos
« Respuesta #7 en: 01 de Noviembre de 2006, 16:45:47 pm »
bueno.. pero ami me ayudais o no

Desconectado RamFu

  • Moderadores Flash
  • PHPero Experto
  • ****
  • Mensajes: 778
  • Karma: 72
  • Sexo: Masculino
  • Programador y desarollador Actionscript y PHP
    • Ver Perfil
    • Google
Re: Mensajes Públicos
« Respuesta #8 en: 01 de Noviembre de 2006, 21:59:13 pm »
<?
// El codigo siguiente, muestra los Mensajes

include ("config.php");
$u "1";
$resp mysql_query("select * from mpublico_mensajes where msm=&#39;$u&#39;") ;
$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=&#39;stop()&#39; onMouseOut=&#39;start()&#39; scrollamount=&#39;5&#39; 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

Desconectado Pc-Admin

  • PHPer@ Fijo
  • ***
  • Mensajes: 118
  • Karma: 3
  • Sexo: Masculino
    • Ver Perfil
Re: Mensajes Públicos
« Respuesta #9 en: 02 de Noviembre de 2006, 14:04:47 pm »
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=&#39;this.stop()&#39; onmouseout=&#39;this.start()&#39;>";

//recojemos todos los mensages y mostramos....
while($ver = @mysql_fetch_array($query)) {
//comprovamos variables i las mostramos
$nick $ver[&#39;nick&#39;];
echo "<b>".$nick."</b>";
echo 
": ".$ver[&#39;mensaje&#39;]; 
//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 ;);).

Todo en esta vida, es practicar.

Desconectado RamFu

  • Moderadores Flash
  • PHPero Experto
  • ****
  • Mensajes: 778
  • Karma: 72
  • Sexo: Masculino
  • Programador y desarollador Actionscript y PHP
    • Ver Perfil
    • Google
Re: Mensajes Públicos
« Respuesta #10 en: 02 de Noviembre de 2006, 17:54:03 pm »
Ok, pero yo puse el de 1, porque si alguien mandaba un mensaje inapropiado, se borrara con el siguiente  ;)

Desconectado naveda

  • Administrador General
  • PHPero Master
  • *****
  • Mensajes: 2.282
  • Karma: 165
  • Sexo: Masculino
    • Ver Perfil
    • naveda.me
Re: Mensajes Públicos
« Respuesta #11 en: 02 de Noviembre de 2006, 19:13:06 pm »
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
Por favor, leete las Normas