FRIHOSTFORUMSSEARCHFAQTOSBLOGSDIRECTORY
You are invited to Log in or Register a Frihost Account!

[man]Azlo tu mismo ShoutBox en PHP y mysql

 


shinji_x19
Bueno, tratare de explicar lo mas detalladamente como crear un sistema de shoutbox, con PHP, mysql y bbcode.. ^-^
suena algo complicado.. pero es sencillo sabiendo lo que es php y mysql..
bien comencemos:

Lo primero que debemos tener en mente es la estructura y funcion que va a tener el shoutbox.
1- Formulario de envio de mensajes
2- bbcode
3- almacene los datos en la base de datos
4- smiles
5- tablas de la base de datos

y otros detalles..
comencemos creando la tabla que almacenara el mensaje de texto en la bd
tomando en cuenta lo siguiente:
el formulario pedira:
- NickName / Nombre de usuario
- Mensaje
- IP del usuario que postea ( para mantener el control )
y ya.. seria todo..

la base de datos que hise para este ejemplo se las dejo enseguida:

Codigo:
CREATE TABLE shoutbox_text (
shout_id int(11) NOT NULL auto_increment,
shout_poster varchar(255) NOT NULL,
shout_ip varchar(22) NOT NULL,
shout_text text NOT NULL,
PRIMARY KEY (`shout_id`)
);


esta seria la primer tabla a utilizar.. (agregarlo a una base de datos cualquiera)
ahora.. vamos a crear el formulario de envio (declaremos funciones para esto)

crean un archivo php con el nombre de ew-shoutbox.php
dentro de el vamos a hacer el formulario..

( notese que solo es un formulario, no estoy utilizando ni diseño ni nada.. un formulario que funciona y solo modifican y usan si les sirve de algo.. )

Codigo:
<?php
if(isset($_SERVER['REMOTE_HOST'])){$ip=$_SERVER['REMOTE_HOST'];}
if(empty($ip)){
$ip=$_SERVER['REMOTE_ADDR'];
}
echo "
<form method='POST' action='ew_enviado.php'>
<input type='text' name='shout_poster' size='30'><br>
<textarea rows='3' name='shout_text' cols='30'></textarea><br>
<input type='hidden' name='shout_ip' value='$ip'>
<input type='submit' value='Postear'>
</form>
";
?>


eso seria el formulario.. explico? bien..

Codigo:
if(isset($_SERVER['REMOTE_HOST'])){$ip=$_SERVER['REMOTE_HOST'];}
if(empty($ip)){
$ip=$_SERVER['REMOTE_ADDR'];
}

esto obtiene la ip del posteador..
lo siguiente es el formulario.. los 3 datos que solicita el formulario son enviados al archivo ew-enviado.php
que son los que ya explique arriba..
bien, ya tenemos el formulario.. ( demaciado sencillo.. pero es necesario explicar esto para mas adelante, agregar el bbcode.. )
ahora.. crean el archivo ew-enviado.php

y colocan este codigo:

Codigo:
<?php
include("conexion_sql.php");
$shout_poster = $_POST['shout_poster'];
$shout_ip = $_POST['shout_ip'];
$shout_text = $_POST['shout_text'];

if(empty($shout_poster)){
echo "<b>Necesitas Colocar tu Nombre o Nick</b>";
}elseif(empty($shout_text)){
echo "<b>¿Piensas enviar un Mensaje sin lo mas Importante? Falta el Mensaje a Enviar</b>";
}else{
$result = mysql_query("INSERT INTO shoutbox_text values (NULL, '$shout_poster', '$shout_ip', '$shout_text')");
echo "<b>Datos Enviados</b>:
<br><b>Tu Nick</b>: $shout_poster
<br><b>Tu IP</b>: $shout_ip
<br><b>Tu Mensaje</b>: $shout_text
<br>
";
echo "<b>Mensaje Enviado Correctamente</b>";
}
?>

como ven al inicio de este manda llamar a otro archivo, que seria la conexion con su base de datos.. ahorita sigue explicar eso.. esta funcion lo que hace es:
obtener los datos que has enviado desde el formulario:
Codigo:
$shout_poster = $_POST['shout_poster'];
$shout_ip = $_POST['shout_ip'];
$shout_text = $_POST['shout_text'];

verificar que se hallan enviado los datos, y que no existan campos vacios:
Codigo:
if(empty($shout_poster)){
echo "<b>Necesitas Colocar tu Nombre o Nick</b>";
}elseif(empty($shout_text)){
echo "<b>¿Piensas enviar un Mensaje sin lo mas Importante? Falta el Mensaje a Enviar</b>";
}else{

de existir campos vacios muestra un mensaje de error.. de no ser asi manda a la siguiente funcion..
Codigo:
$result = mysql_query("INSERT INTO shoutbox_text values (NULL, '$shout_poster', '$shout_ip', '$shout_text')");
echo "<b>Datos Enviados</b>:
<br><b>Tu Nick</b>: $shout_poster
<br><b>Tu IP</b>: $shout_ip
<br><b>Tu Mensaje</b>: $shout_text
<br>
";
echo "<b>Mensaje Enviado Correctamente</b>";

esta lo agrega a la base de datos y muestra los datos enviados..
ahora la conexion al sql.. crean el archivo conexion_sql.php
y colocan dentro esto:
Codigo:
<?php
/* Variables de tu Base de Datos, Estilo PHP-Nuke, para evitar Confuciones XD */
$dbhost = "localhost";
$dbuname = "root";
$dbpass = "";
$dbname = "projects";


$link=mysql_connect("$dbhost", "$dbuname", "$dbpass");
$result = mysql_select_db($dbname,$link);
if(!$result){
echo "<b>Error de Conexion SQL</b>";
}
?>

esto es simplemente la conexion con la base de datos.., la coloque al estilo php-nuke, con variables para que no se confundan con los valores.. XD
guardan y cierran todo.. pues.. Pruebenlo .. si les funciona excelente.. podemos pasar al bbcode.. si no.. olvidense de continuar si eso no les funciona.. XD
continuamos..
ahora tenemos que crear la pagina que "lee" los datos de la base de datos.. (los datos enviados desde el formulario..)

crean el archivo Codigo:
ew-read.php


colocan esto:

Codigo:
<?php
include("conexion_sql.php");

$LIMITE="10"; // Numero de Mensajes a Mostrar

$result2 = mysql_query("SELECT shout_id, shout_poster, shout_text FROM shoutbox_text ORDER BY shout_id DESC LIMIT 0,".$LIMITE."");
$Numero=1;
while(list($shout_id, $shout_poster, $shout_text) = mysql_fetch_row($result2)){
echo "<b>$Numero.-$shout_poster Escribio</b>: <br>$shout_text<hr>";
$Numero++;
}
?>


esto lo que hace es llamar a los valores desde el sql, se vuelve a llamar a la conexion sql, el include del inicio..se define una variable.. para limitar el numero de registros a mostrar..y se enlistan los datos..
sencillo.. formulario basico esta terminado..

lo del bbcode lo explico en el tutorial 2 que sakare.. para no hacerlo tan largo.. *0*

Saludos.. cualquier duda comentenla en el foro..
Jaime
Muchas Gracias por la informacion... Wink
wanmind
Puse en practica el shoutbox con un defecto yo tengo mysql en mi dreamweaver como conecto? el fichero conexion_mysql no parece estar funcionando porque la tabla esta hecha en exel de todos modos la tabla esta tal cual el codigo exepto por los valores int) y (varchar) y me gustaria saber para que es el shout_id que define el codigo para crear la tabla ..

Saludos !!
Mrs Lycos
Esta bueno este post, tendria que haber mas de estos... Tendrias que poner un link a un demo en alguna pagina tuya. Te cuento que ya habia hecho un shoutbox, ademas coloque el textarea donde se muestran los mensajes en un iframe que se refresca cada algunos segundos, en otro (aparte) el textbox (input) para escribir los mensajes para que no se refresque y no te deje escribir Wink y todo en otro iframe en el sitio principal (todo esto para que no se refresque la pagina principal contenedora a cada rato). Asi quedo como un chat en php bastante basico pero funcional, que puede aparecer en todas las paginas del sitio- la hemos implementado en un juego de texto, y va bastante bien.
n0rw1n
Muy buen aporte, nos dejaste esperando el segundo tutorial, pero creo que muchos, ya con esto vamos de viaje....
Related topics

[help] Contador para paginas web con php y mysql
en donde puedo conseguir un template de php y mysql
help- Crear calendarios y foros en php
Ayuda con categorias y subs en PHP
[info] Wordpress en Frihost

para hacer mi pagina
[help]Que opinan de los cms?
[Help]Reading images from directory (Permission)
[Help]Leyendo imagenes desde un directorio (Permisos)
[man]Instala Tu Propio Rocp para el RO

[man]Cambiar el Tamaño de los bloques en PHP-Nuke
ayuda en: PHP + APACHE WEB SERVER + MYSQL
Besoin d'aide en PHP
¿Cómo me inicio en PHP?
[man][help]PHP...
Reply to topic    Frihost Forum Index -> Language Forums -> Spanish

FRIHOST HOME | FAQ | TOS | ABOUT US | CONTACT US | SITE MAP
© 2005-2007 Frihost, forums powered by phpBB.