Autor Tema: [TUTORIAL] Foro sencillo By Masato  (Leído 5658 veces)

Desconectado Masato

  • PHPero Avanzado
  • ****
  • Mensajes: 480
  • Karma: 12
  • Sexo: Masculino
  • <?php echo "Solo quiero aprender php"; ?>
    • Ver Perfil
    • Masato Design!
[TUTORIAL] Foro sencillo By Masato
« en: 14 de Septiembre de 2009, 22:31:41 pm »
Bueno amigos de PHPeros, como llevo bastante tiempo sin ningún aporte, hoy les quiero presentar este código, es muy simple, pero les puede ayudar bastante a mejorar ^^.

Empecemos:

conectar.php

<?PHP
/** SISTEMA DE FOROS SIMPLE By MASATO **/
/** ESTE SISTEMA DE FOROS ES ÚNICAMENTE CON EL FIN DE EXPLICAR PHP A LOS NOVATOS **/

$db_host = (&#39;localhost&#39;); //Nombre del servidor MySQL, por defecto localhost
$db_user = (&#39;root&#39;); //Usuario de la base de datos
$db_pass = (&#39;tu_pass&#39;); //Contraseña de la base de datos
$db_name = (&#39;forito&#39;); //Nombre de la base de datos

$conectar mysql_connect($db_host$db_user$db_pass) or die (mysql_error()); //Conectamos a la base de datos

mysql_select_db($db_name$conectar) or die (mysql_error()); //Seleccionamos la base de datos

?>


index.php

<?PHP
/** SISTEMA DE FOROS SIMPLE By MASATO **/
/** ESTE SISTEMA DE FOROS ES ÚNICAMENTE CON EL FIN DE EXPLICAR PHP A LOS NOVATOS **/
include(&#39;conectar.php&#39;); //Incluimos el archivo conectar.php

echo "<b><a href=&#39;nuevo.php&#39;>Dejar un Mensaje</a></b><br><hr>"//Boton para dejar mensaje

$seleccionar mysql_query("SELECT * FROM mensajes ORDER BY id ASC"); //Acemos la consulta a la base de datos para mostrar los mensajes ordenados por ID y en orden asendente
if (mysql_num_rows($seleccionar)) { //Si hay contenido en la DB continuamos con while

while ($row mysql_fetch_array($seleccionar)) { //Hacemos un bucle para que nos muestre todos los mensajes

echo "<b><a href=&#39;mensajes.php?id=$row[id]&#39;>$row[titulo]</a></b>"//Mostramos el título con un enlace al mensaje y sus respuestas
echo "<br><hr>"//Bajamos un renglon y creamos una linea 

}

} else { 
//Si no hay ningún mensaje en la DB mostramos lo siguiente

echo "Nuestro foro no posee mensaje alguno";

}

?>


nuevo.php
<?PHP
/** SISTEMA DE FOROS SIMPLE By MASATO **/
/** ESTE SISTEMA DE FOROS ES ÚNICAMENTE CON EL FIN DE EXPLICAR PHP A LOS NOVATOS **/
include(&#39;conectar.php&#39;); //Incluimos el archivo conectar.php

if (isset($_POST[&#39;enviar&#39;])) { //Si se apretó el boton de enviar, grabamos los datos

$insert "INSERT INTO mensajes (autor,titulo,mensaje) VALUES (&#39;".mysql_real_escape_string($_POST[&#39;autor&#39;])."&#39;, &#39;".mysql_real_escape_string($_POST[&#39;titulo&#39;])."&#39;, &#39;".mysql_real_escape_string($_POST[&#39;mensaje&#39;])."&#39;)"; //Consulta para agregar el mensaje

if (mysql_query($insert) or die (mysql_error())) { //Si se agregó el mensaje correctamente le mostramos un mensaje

echo "Su mensaje ha sido agregado correctamente";

} else { 
//Si no le mostramos el mensaje de error

echo "Hubo un error al agregar el mensaje";

}

} else { 
//Si no se a pulsado el boton ENVIAR, mostramos el formulario

echo "<form action=&#39;nuevo.php&#39; method=&#39;POST&#39;>
Autor: <input type=&#39;text&#39; name=&#39;autor&#39;>
<br>
T&iacute;tulo: <input type=&#39;text&#39; name=&#39;titulo&#39;>
<br>
Mensaje: <textarea name=&#39;mensaje&#39;></textarea>
<br>
<input type=&#39;submit&#39; name=&#39;enviar&#39; value=&#39;Enviar mensaje&#39;>"
;

}

?>


mensajes.php
<?PHP
/** SISTEMA DE FOROS SIMPLE By MASATO **/
/** ESTE SISTEMA DE FOROS ES ÚNICAMENTE CON EL FIN DE EXPLICAR PHP A LOS NOVATOS **/
include(&#39;conectar.php&#39;); //Incluimos el archivo conectar.php

$get $_GET[&#39;id&#39;]; //Definimos $_GET[&#39;id&#39;] como $get

$seleccionar mysql_query("SELECT * FROM mensajes WHERE id = &#39;$get&#39;"); //Acemos la consulta a la base de datos para mostrar los mensajes ordenados por ID y en orden desendente donde la ID es igual a la enviada por $_GET

$row mysql_fetch_array($seleccionar); //Extraemos los resultados para mostrarlos

echo "<a href=&#39;respuesta.php?id=$get&#39;><b>RESPONDER</b></a>
<br><br>"
;

echo 
"<b>T&iacute;tulo:</b> <i>$row[titulo]</i>
<br>
<b>Mensaje:</b>
<br>
$row[mensaje]
<br>
<b>Enviado por:</b> <i>
$row[autor]</i>"//Mostramos los datos ordenados

$seleccionar1 mysql_query("SELECT * FROM respuestas WHERE respuestas = &#39;$get&#39; ORDER BY id DESC");

if (
mysql_num_rows($seleccionar1) or die (mysql_error())) { //Si hay respuestas mostramos los datos ordenados

$row1 mysql_fetch_array($seleccionar1);

echo 
"<hr>";

echo 
"<b>T&iacute;tulo:</b> <i>$row1[titulo]</i>
<br>
<b>Mensaje:</b>
<br>
$row1[mensaje]
<br>
<b>Enviado por:</b> <i>
$row1[autor]</i>"//Mostramos los datos ordenados

echo "<br><br>
<a href=&#39;respuesta.php?id=
$get&#39;><b>RESPONDER</b></a>";

//Si no hay respuestas, no se mostrará nada 

?>


respuesta.php
<?PHP
/** SISTEMA DE FOROS SIMPLE By MASATO **/
/** ESTE SISTEMA DE FOROS ES ÚNICAMENTE CON EL FIN DE EXPLICAR PHP A LOS NOVATOS **/
include(&#39;conectar.php&#39;); //Incluimos el archivo conectar.php

$get $_GET[&#39;id&#39;]; //Definimos $_GET[&#39;id&#39;] como $get

if (isset($_POST[&#39;enviar&#39;])) { //Si se apretó el boton de enviar, grabamos los datos

$insert "INSERT INTO respuestas (autor,titulo,mensaje,respuestas) VALUES (&#39;".mysql_real_escape_string($_POST[&#39;autor&#39;])."&#39;, &#39;".mysql_real_escape_string($_POST[&#39;titulo&#39;])."&#39;,&#39; ".mysql_real_escape_string($_POST[&#39;mensaje&#39;])."&#39;, &#39;$_POST[get]&#39;)"; //Consulta para agregar el mensaje

if (mysql_query($insert)) { //Si se agregó el mensaje correctamente le mostramos un mensaje

echo "Su mensaje ha sido agregado correctamente";

} else { 
//Si no le mostramos el mensaje de error

echo "Hubo un error al agregar el mensaje";

}

} else { 
//Si no se a pulsado el boton ENVIAR, mostramos el formulario

echo "<form action=&#39;respuesta.php&#39; method=&#39;POST&#39;>
Autor: <input type=&#39;text&#39; name=&#39;autor&#39;>
<br>
T&iacute;tulo: <input type=&#39;text&#39; name=&#39;titulo&#39;>
<br>
Mensaje: <textarea name=&#39;mensaje&#39;></textarea>
<br>
<input type=&#39;submit&#39; name=&#39;enviar&#39; value=&#39;Enviar mensaje&#39;>
<input type=&#39;hidden&#39; value=&#39;
$get&#39; name=&#39;get&#39;>"//Formulario, usamos un input hidden para mandar el valor de GET

}

?>


Base de Datos:
Código: [Seleccionar]
CREATE TABLE `mensajes` (
  `id` int(11) NOT NULL auto_increment,
  `autor` varchar(255) NOT NULL,
  `titulo` varchar(255) NOT NULL,
  `mensaje` text NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

CREATE TABLE `respuestas` (
  `id` int(11) NOT NULL auto_increment,
  `autor` varchar(255) NOT NULL,
  `titulo` varchar(255) NOT NULL,
  `mensaje` text NOT NULL,
  `respuestas` varchar(255) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

Bueno, eso es todo, espero que les sirva y recuerden que esto lleva tiempo, así que si lo toman para su web, por lo menos no le quiten quien lo hizo ^^

15/9/09: Arreglado conectar gracias a naveda ^^

SALU-2 :D :D
« Última modificación: 15 de Septiembre de 2009, 18:37:13 pm por Masato »

Comunidad PHPeros

[TUTORIAL] Foro sencillo By Masato
« en: 14 de Septiembre de 2009, 22:31:41 pm »

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:[TUTORIAL] Foro sencillo By Masato
« Respuesta #1 en: 14 de Septiembre de 2009, 22:40:47 pm »
Esta muy bueno para enseñar a los principiantes masato, excelente tutorial

Desconectado reef

  • PHPer@ Fijo
  • ***
  • Mensajes: 180
  • Karma: 4
  • Sexo: Masculino
  • Todo un skater
    • Ver Perfil
    • Donreef ~ TagBoard
Re:[TUTORIAL] Foro sencillo By Masato
« Respuesta #2 en: 14 de Septiembre de 2009, 22:43:06 pm »
Excelente aporte masato te felicito :P Nunca habia podido crear un foro por uno mismo o no se me habia ocurrido :P

Desconectado Masato

  • PHPero Avanzado
  • ****
  • Mensajes: 480
  • Karma: 12
  • Sexo: Masculino
  • <?php echo "Solo quiero aprender php"; ?>
    • Ver Perfil
    • Masato Design!
Re:[TUTORIAL] Foro sencillo By Masato
« Respuesta #3 en: 14 de Septiembre de 2009, 22:43:50 pm »
Gracias west ^^, en fin, gracias a west me di cuenta de un par de cosas, en fin, les explico porque puse htmlentities, lo que pasa es que no me acordaba de mysql_real_escape_string, xD, en fin, ahora lo corrijo

Desconectado naveda

  • Administrador General
  • PHPero Master
  • *****
  • Mensajes: 2.282
  • Karma: 165
  • Sexo: Masculino
    • Ver Perfil
    • naveda.me
Re:[TUTORIAL] Foro sencillo By Masato
« Respuesta #4 en: 15 de Septiembre de 2009, 11:38:26 am »
Veo un fail como una casa...

¿Que eso de pasarle un texto a la funcion mysql_error() cuando debe recibir OPCIONALMENTE el enlace a la base de datos?
Código: [Seleccionar]
$conectar = mysql_connect($db_host, $db_user, $db_pass) or die (mysql_error("No se puede conectar a la base de datos")); //Conectamos a la base de datos
Por favor, leete las Normas


Desconectado Masato

  • PHPero Avanzado
  • ****
  • Mensajes: 480
  • Karma: 12
  • Sexo: Masculino
  • <?php echo "Solo quiero aprender php"; ?>
    • Ver Perfil
    • Masato Design!
Re:[TUTORIAL] Foro sencillo By Masato
« Respuesta #5 en: 15 de Septiembre de 2009, 18:32:34 pm »
Bueno, como dije anteriormente, este código lo tenía desde hace mucho en mi PC y se me dió por terminarlo xD, no revisé mucho el conectar ya que andaba bien, pero en conclución, que te parece?

Desconectado naveda

  • Administrador General
  • PHPero Master
  • *****
  • Mensajes: 2.282
  • Karma: 165
  • Sexo: Masculino
    • Ver Perfil
    • naveda.me
Re:[TUTORIAL] Foro sencillo By Masato
« Respuesta #6 en: 15 de Septiembre de 2009, 19:29:06 pm »
Hombre, como ejemplo de aplicacion sencilla no esta mal, pero para aplicarlo como foro en alguna web...
Por favor, leete las Normas


Desconectado crunch

  • PHPer@ Fijo
  • ***
  • Mensajes: 168
  • Karma: 1
    • Ver Perfil
Re:[TUTORIAL] Foro sencillo By Masato
« Respuesta #7 en: 15 de Septiembre de 2009, 19:58:39 pm »
Hombre, como ejemplo de aplicacion sencilla no esta mal, pero para aplicarlo como foro en alguna web...
Ya lo dice en el tutorial.
Citar
/** ESTE SISTEMA DE FOROS ES ÚNICAMENTE CON EL FIN DE EXPLICAR PHP A LOS NOVATOS **/

--
Buen aporte =)
¿Alguien lo instaló? me gustaría ver como es, curiosidad mas que otra cosa.

Desconectado Masato

  • PHPero Avanzado
  • ****
  • Mensajes: 480
  • Karma: 12
  • Sexo: Masculino
  • <?php echo "Solo quiero aprender php"; ?>
    • Ver Perfil
    • Masato Design!
Re:[TUTORIAL] Foro sencillo By Masato
« Respuesta #8 en: 16 de Septiembre de 2009, 20:27:27 pm »
Acá unas capturas:

Vista de todos los mensajes:


Vista de los mensajes:


Vista de Agregar/Responder mensaje:

Desconectado naveda

  • Administrador General
  • PHPero Master
  • *****
  • Mensajes: 2.282
  • Karma: 165
  • Sexo: Masculino
    • Ver Perfil
    • naveda.me
Re:[TUTORIAL] Foro sencillo By Masato
« Respuesta #9 en: 16 de Septiembre de 2009, 21:24:28 pm »
Ya lo dice en el tutorial.
--
Buen aporte =)
¿Alguien lo instaló? me gustaría ver como es, curiosidad mas que otra cosa.

Se lo que pone, simplemente doy mis puntos de vista, como buen lugar de opinión es este, ¿no te parece?
Por favor, leete las Normas


Desconectado Siquillote

  • PHPero Master
  • ******
  • Mensajes: 4.229
  • Karma: 179
  • Sexo: Masculino
    • Ver Perfil
Re:[TUTORIAL] Foro sencillo By Masato
« Respuesta #10 en: 13 de Noviembre de 2009, 14:51:15 pm »
Perdón por responder fuera de tiempo pero tengo una duda u opinión. Haber este foro no esque tenga diseño pero por programación está bastante bien

Masato ¿por que no haces que se muestren awars? Yo se los voi a poner y gracias por todo :)

#Fdo. Physlet

Desconectado hackerwcb

  • PHPerit@
  • *
  • Mensajes: 1
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil
Re:[TUTORIAL] Foro sencillo By Masato
« Respuesta #11 en: 14 de Abril de 2010, 01:29:13 am »
hola tengo una duda con el foro sencillo que nos enseñaste quiero saber como se hace para que aparezcan todas las respuestas a un tema porque a mi SOLO ME APARECE LA ULTIMA RESPUESTA que toca agregar o que de ante mano se los agradezco

Desconectado Joel

  • PHPer@ Fijo
  • ***
  • Mensajes: 141
  • Karma: 5
    • Ver Perfil
Re:[TUTORIAL] Foro sencillo By Masato
« Respuesta #12 en: 08 de Mayo de 2012, 00:33:00 am »
Oye amigo, tengo un problema en el archivo respuesta.php

Cuando quiero enviar una respuesta, el  boton de envio no funciona, se queda trabado, porque este script lo implemente en un futuro portal que estoy haciendo.. y mejore bastante este script... pero nose porque no me envia el comentario o respuesta..

Intente de varias formas y nada..

Este es un futuro portal que estoy haciendo a partir de este script, algo parecido a taringa, mira metete a un post de ejemplo: http://pixoloo.uni.me/Topic.php?id=7

Y comenta.... no se porque no reacciona el boton de envio :/ pero primero debes ingresar. User: Admin Pass: admin

Desconectado Animus

  • PHPero Avanzado
  • ****
  • Mensajes: 273
  • Karma: 1
  • Sexo: Masculino
  • Aprende a aprender, el resto vendrá solo.
    • Ver Perfil
Re:[TUTORIAL] Foro sencillo By Masato
« Respuesta #13 en: 14 de Mayo de 2012, 12:04:44 pm »
Utiliza el mio, no es un tutorial pero bueno :)


La red social de tus sueños.


Desconectado KevinxD

  • PHPerit@
  • *
  • Mensajes: 45
  • Karma: 1
  • Nuev@ PHPer@
    • Ver Perfil
Re:[TUTORIAL] Foro sencillo By Masato
« Respuesta #14 en: 18 de Junio de 2012, 13:43:02 pm »
Que esto no es un foro es un sistema de comentarios, ya lo probe yo  pero buen aporte