Maestros del Web


Estás en Inicio / Editorial / Desarrollo Web

17.06.2003

Crear un foro en PHP y Mysql

En este tutorial crearemos un foro desde cero aprendiendo a separar la programación del diseño, y modularizando nuestra aplicación para que sea simple de configurar y de adaptar.

La Estructura

Primero y antes que nada, debemos preparar la tabla en la base de datos que
contendrá todos los temas de nuestro foro. Lo que esta tabla tendrá, es la información
de nuestros mensajes, el autor del mismo, y otros datos que servirán para identificar
a que Tema pertenece un mensaje. Pero mejor, veamos la estructura propuesta:

CREATE TABLE `foro` (
  `id` int(7) NOT NULL auto_increment,
  `autor` varchar(200) NOT NULL default '',
  `titulo` varchar(200) NOT NULL default '',
  `mensaje` text NOT NULL,
  `fecha` datetime NOT NULL default '0000-00-00 00:00:00',
  `respuestas` int(11) NOT NULL default '0',
  `identificador` int(7) NOT NULL default '0',
  `ult_respuesta` datetime default NULL,
  KEY `id` (`id`)
) TYPE=MyISAM;

Veamos en detalle que campos tendrá nuestra tabla de Foros:

  • id: Será el identificador
    principal de la tabla. Sirve para diferenciar cada uno de los mensajes.
  • autor: El autor del
    mensaje.
  • titulo:
    El titulo que tendrá el mensaje. Si este mensaje es el iniciador de un tema,
    será el que mostrará en el home del Foro.
  • mensaje:
    El mensaje en si mismo.
  • fecha:
    Un campo DATETIME que indicará en que fecha se ha publicado este mensaje.
  • respuestas:
    Si este mensaje es el iniciador de un tema, aquí se acumularán la
    cantidad de respuestas que reciba.
  • identificador:
    Este campo guarda el valor del id del mensaje que se está respondiendo.
    Si el mensaje es iniciador de un tema, entonces este campo valdrá cero.
  • ult_respuesta:
    Si el mensaje es iniciador de tema, aqui se actualizará valor de acuerdo
    con la fecha de la última respuesta que haya recibido. Sirve para poder
    mantener un orden en los foros.

La sentencia SQL anterior,
pueden guardarla en un archivo.sql y correrla en su base de datos desde el href="http://phpmyadmin.sourceforge.net/">phpMyAdmin,
o si lo prefieren, pueden ingresarla línea por línea en un cliente
de texto de mySQL ( como el mySQL monitor). Una vez que hayan creado la tabla
en su base de datos, entonces podemos avanzar al siguiente paso.

Antes de ponernos a programar cualquier parte del foro, vamos a encargarnos
de hacer un pequeño script que realice una tarea que vamos a repetir mucho,
y que es conectarnos a la base de datos. Este script lo incluiremos en cada
página en la que tengamos que acceder a la base de datos:

Ejemplo de la pagina de configuracion.php

<?php
$bd_host = "localhost";
$bd_usuario = "user";
$bd_password = "password";
$bd_base = "nuestra_bd";

$con = mysql_connect($bd_host, $bd_usuario, $bd_password);
mysql_select_db($bd_base, $con);
?>

Cómo vemos, no hay gran ciencia en este script, tan solo
unas variables conteniendo la configuración de nuestra base de datos, y el código
mínimo y necesario para conectarnos y guardar el recurso de conexión en una
variable $con que luego utilizaremos cuando
hagamos nuestras consultas.

Los Templates

Antes de dar un paso más en la explicación, quiero hacerles unos comentarios
respecto al "simple" sistemita de templates que utilizaremos en el foro. Primero,
para aquellos que no sepan que es un Template, les recomiendo que lean los artículos
de href="http://www.zonaphp.com/index.php?modulo=articulo&accion=leer&id=9">Nok y de href="http://www.zonaphp.com/index.php?modulo=articulo&accion=leer&id=16">Luigi en nuestra sección de Templates de href="http://www.zonaphp.com/">Zonaphp.com,
por lo menos para que tomen una idea de que son y para que sirven.

Ahora, mi idea al utilizar templates, fue la de que los usuarios, pudieran modificar
a su gusto el aspecto del foro, sin por ello tener que tocar el código de la
aplicación. Esto es algo que el tutorial anterior no tenía en cuenta e incluía
todo el código HTML de salida dentro del código mismo del foro, lo cual no es
siempre recomendable. Lo que haremos en este caso es utilizar archivos .html
que dentro contendrán solo diseño ( o sea, código HTML ) y en los lugares en
los que deseemos colocar contenido "dinámico", utilizaremos el formato simple
para mostrar el contenido de variables, esto es : <?=$variable?>.

Para "interpretar" un template, primero lo leemos en memoria utilizando
la función file() y luego utilizaremos una
simple función a la que le pasaremos como parámetro el template y las variables
que hay que reemplazar. Para muestra, basta un botón:

Ejemplo de la pagina de ejemplo.html

Nombre: <b><?=$nombre?></b><br>
Edad : <b><?=$edad?></b><br>
Domicilio : <?=$domicilio?>
<hr>

Ejemplo de la pagina de ejemplo.php

<?php
function mostrarTemplate($tema, $variables)
{
    //var_dump($variables);
    extract($variables);
    eval("?>".$tema."<?");
}

$agenda = array(
    "0" => array("nombre"=>"Marcelo", "edad"=>"25", "domicilio"=>"VeraCRuz 342"),
    "1" => array("nombre"=>"Alejandra", "edad"=>"18", "domicilio"=>"Los Olmos 67"),
    "2" => array("nombre"=>"Micaela", "edad"=>"23", "domicilio"=>"Prof. Mariño 8")
);
$tpl = implode("", file("ejemplo.html"));
foreach($agenda as $registro)
{
    mostrarTemplate($tpl, $registro);
}
?>

Aquí vemos como, partiendo de los datos que tenemos en
un array, los mostramos basándonos en un simple template. La función mostrarTemplate toma como parámetros el contenido del template y un array asociativo con los
valores a reemplazar. La función de PHP extract() se encarga de pasar estos valores al ámbito en el que se llama la función, en
este caso, el ámbito de la función. Por lo que si tenemos un arreglo del tipo $a = array("clave" => "valor"), al ejecutar extract($a), entonces pasaremos a tener
una variable disponible, de nombre $variable y con "valor" como contenido. Luego, la función eval() se encarga del resto, o sea, de ejecutar todo el código (el del Template) que
se le pasa como parámetro.

Algunos se preguntarán, porqué no hacemos simplemente un "include"
? La respuesta es muy siemple. Eficiencia. La función include implica un acceso
a disco, lo cual la hace bastante "costosa" en términos de eficiencia. Así que
leyendo el template 1 sola vez en memoria, y luego utilizándolo varias veces,
hacemos un mejor uso de los recursos.

Teniendo estos temas en cuenta, es que podemos seguir ahora con el desarrollo
el Foro.

Un Tema por vez

Ya teniendo las bases de nuestro foro, el diseño de la tabla en la base de datos
y conociendo como funciona nuestro sistema de templates, podemos comenzar a
crear la primera página, en la que mostraremos todos los temas del foro:

Ejemplo de la pagina de index.php

<?php
require('configuracion.php');
require('funciones.php');
include('header.html');
/* Pedimos todos los temas iniciales (identificador==0)
* y los ordenamos por ult_respuesta */
$sql = "SELECT id, autor, titulo, fecha, respuestas, ult_respuesta ";
$sql.= "FROM foro WHERE identificador=0 ORDER BY ult_respuesta DESC";
$rs = mysql_query($sql, $con);
if(mysql_num_rows($rs)>0)
{
    // Leemos el contenido de la plantilla de temas
    $template = implode("", file("temas.html"));
    include('titulos.html');
    while($row = mysql_fetch_assoc($rs))
    {
        $color=($color==""?"#5b69a6":"");
        $row["color"] = $color;
        mostrarTemplate($template, $row);
    }
}
include(’footer.html’);
?>

¿Eso es todo? Si, eso es todo. Ahora revisemos paso a
paso lo que hace el script. Primero tenemos una serie de requires
e includes.
El primero incluye el primer Script que hicimos, que realiza la conexión a la
base de datos. El segundo, incluye un archivo.php que contiene funciones importantes
del foro, como por ejemplo, mostrarTemplate.
El tercero, incluye un header genérico que utilizaremos para darle a todas nuestras
páginas, un diseño similar. Allí podremos colocar un logo del sitio, links importantes,
banners, etc.

$sql = "SELECT id, autor, titulo, fecha, respuestas, ult_respuesta ";
$sql.= "FROM foro WHERE identificador=0 ORDER BY ult_respuesta DESC";
$rs = mysql_query($sql, $con);
if(mysql_num_rows($rs)>0)
{

Aquí lo que hacemos es ejecutar un query en la
base de datos, que nos traerá todos los mensajes que son iniciadores de un tema,
o sea, cuyo identificador esté en cero. El resto de los mensajes, que sean respuestas
a un tema en particular, tendrán en el campo identificador el valor del mensaje
al que responden. A estos temas, le pedimos a la base que los ordene por la
fecha de última respuesta, de manera descendente, así en nuestro foro, tendremos
los mensajes más recientes primero. También realizamos una decisión, solo mostraremos
los temas de nuestro Foro si la cantidad de filas recuperadas desde la base,
son mayores a 0.

Luego, dentro del While principal del programa, hacemos toda la "magia" :

// Leemos el contenido de la plantilla de temas
    $template = implode("", file("temas.html"));
    include('titulos.html');
    while($row = mysql_fetch_assoc($rs))
    {
        $color=($color==""?"#5b69a6":"");
        $row["color"] = $color;
        mostrarTemplate($template, $row);
    }

Aquí comenzamos a trabajar por primera vez con
los templates. Primero leemos el contenido del template en memoria y lo guardamos
dentro de la variable $template. También
incluimos un archivo, que contiene una fila de la tabla de Temas, con los títulos
de las celdas. EL resto ya lo vimos anteriormente, llamando a la función mostrarTemplate mostramos los datos de cada tema.

Finalmente, solo agregamos otro archivo HTML, con el código para cerrar la página
y mostrar algún que otro mensaje de Copyright (o lo que queramos poner).
Con esto ya tenemos nuestra página inicial del Foro, mostrando los temas que
haya. Ahora, vamos a crear el formulario necesario para ingresar nuevos temas
o para responder algún tema existente.

Participar es la Base

El ahorro es la base de la fortuna, suelen decir, y esto se aplica a casi todo.
Así que, haciendo caso al dicho, podemos utilizar el MISMO formulario para crear
un nuevo tema y para contestar un tema en particular. Esto lo vamos a lograr,
pasando una variable por el URL, indicando que estamos citando un mensaje anterior,
sacando de la base de datos el mensaje que citaremos, y completando el formulario
con esos datos. Si la variable no está presente, entonces no hacemos nada y
mostramos el formulario.

Ejemplo de la pagina de respuesta.php

<?php
require('funciones.php');
$id = $_GET["id"];
$citar = $_GET["citar"];
$row = array(”id” => $id);
if($citar==1)
{
    require(’configuracion.php’);
    $sql = “SELECT titulo, mensaje, identificador AS id “;
    $sql.= “FROM foro WHERE id=’$id’”;
    $rs = mysql_query($sql, $con);
    if(mysql_num_rows($rs)==1) $row = mysql_fetch_assoc($rs);
    $row["titulo"] = “Re: “.$row["titulo"];
    $row["mensaje"] = “[citar]“.$row["mensaje"].”[/citar]“;
    if($row["id"]==0) $row["id"]=$id;
}
$template = implode(”", file(’formulario.html’));
include(’header.html’);
mostrarTemplate($template, $row);
include(’footer.html’);
?>

En el script vemos como primero capturamos de la URL,
las variables $id y $citar,
y si ésta última es igual a 1, entonces consultamos en la base de datos toda
la información del tema que estamos citando, para agregarlo en el arreglo $row,
que luego será pasado al template. Noten como al titulo del mensaje, le anteponemos
la cadena "Re:", indicando que es una respuesta, y como al cuerpo del mensaje,
si estamos citando, lo rodeamos por un tag [citar] y [/citar]. Esto lo veremos más adelante.

Ejemplo de la pagina de formulario.html

<table width="90%" border="0" cellspacing="2" cellpadding="2">
<form name="f" action="agregar.php" method="post">
    <input type="hidden" name="identificador" value="<?=$id?>">
    <tr>
      <td width="30%" align="right">Autor </td>
      <td><input type="text" name="autor"></td>
    </tr>
    <tr>
      <td width="30%" align="right">Titulo</td>
      <td><input type="text" name="titulo" value="<?=$titulo?>"></td>
    </tr>
    <tr>
      <td width="30%" align="right">Mensaje</td>
      <td><textarea name="mensaje" cols="50" rows="5"><?=$mensaje?></textarea></td>
    </tr>
    <tr>
      <td colspan="2" align="center"><input type="submit" name="Submit" value="Enviar Mensaje"></td>
    </tr>
  </form>
</table>

Aquí vemos como colocamos las variables dentro
de los atributos "value" de los inputs y el textarea. También podemos ver como
tenemos un campo escondido, llamado "identificador", que solo tendrá un valor
asignado, cuando estemos respondiendo a un mensaje, pero que no existirá cuando
sea un mensaje nuevo. Solo queda ver el script que se encarga de grabar el mensaje
en la base de datos, agregar.php.

Ejemplo de la pagina de agregar.php

<?php
require('configuracion.php');
$autor = $_POST["autor"];
$titulo = $_POST["titulo"];
$mensaje = $_POST["mensaje"];
$ident = $_POST["identificador"];

//Hacemos algunas validaciones
if(empty($autor)) $autor = “Anónimo”;
if(empty($titulo)) $titulo = “Sin título”;
//Evitamos que el usuario ingrese HTML
$mensaje = htmlentities($mensaje);

// Grabamos el mensaje en la base.
$sql = “INSERT INTO foro (autor, titulo, mensaje, identificador, fecha, ult_respuesta) “;
$sql.= “VALUES (’$autor’,'$titulo’,'$mensaje’,'$ident’,NOW(),NOW())”;
$rs = mysql_query($sql, $con) or die(”Error al grabar un mensaje: “.mysql_error);
$ult_id = mysql_insert_id($con);

/* si es un mensaje en respuesta a otro
   actualizamos los datos */
if(!empty($ident))
{
    $sql = “UPDATE foro SET respuestas=respuestas+1, ult_respuesta=NOW()”;
    $sql.= ” WHERE id = ‘$ident’”;
    $rs = mysql_query($sql, $con);
    Header(”Location: foro.php?id=$ident#$ult_id”);
    exit();
}
Header(”Location: index.php”);
?>

En este script, luego de tomar las variables desde el
formulario (con el método POST), primero verificamos que exista un nombre de
autor y el título del mensaje, caso contrario le asignamos un valor por defecto.
También utilizamos la función de PHP htmlentities() para convertir todos los caracteres especiales ( >, <, ", &, etc )
en sus respectivas entidades HTML ( &gt;, &lt;, &quote;, &amp;).
Con esto evitamos que un usuario ingrese código HTML en nuestro Foro (con la
respectiva vulnerabilidad que este implica).

A continuación, grabamos el mensaje en la base, y obtenemos, mediante la función mysql_insert_id(), el último id autoincremental
que le corresponde a este registro. ¿Para qué? Simple. Si este mensaje que acabamos
de grabar es el primero del tema, no necesitamos hacer nada, pero si es un mensaje
en respuesta a otro ( esto lo averiguamos preguntando por el valor de $identificador),
entonces tenemos que actualizar ese primer mensaje, indicando que tiene una
respuesta más, y cambiando la fecha y hora del último mensaje. De esa manera,
nos aseguramos que tenemos bien ordenado el foro, con los temas con nuevos mensajes
primero. Finalmente, dependiendo del caso, redirigimos al usuario al home del
foro, o a la respuesta que acaba de ingresar.

Miles de posibilidades

Ya solo nos queda un último paso, y es el de crear la página que mostrara un
tema y todas las respuestas que haya en él. Para ello, vemos como en el home
del foro, llamamos a un script foro.php y le pasamos el id del tema que queremos ver. Luego, solo tenemos que obtener
de la base el o los temas, en los que el id sea igual al que pasamos, o que
el identificador (el campo que indica que ese mensaje es en respuesta a cierto
tema) sea igual al identificador, los ordenamos por fecha y listo, foro al dente.

En este caso, el template que utilizaremos para mostrar cada uno de los mensajes,
será una tabla con todos los datos necesarios: el autor del mensaje, el título,
la fecha del mensaje, el mensaje en si mismo. Pero también agregaremos dos detalles.
Primero, un link hacia el formulario que creamos antes, de modo que un usuario
pueda citar un mensaje en particular, y segundo, un Anchor (o Ancla) para que
al responder a un mensaje, se pueda acceder directamente al mismo por su id
en la base de datos.

Ejemplo de la pagina de post.html

<table width="90%" border="0" align="center" cellpadding="2" cellspacing="2">
	<tr bgcolor="<?=$color?>">
		<td width="25%" valign="top">
		<b><a name="<?=$id?>"><?=$autor?></a></b><br>
		<font size="-2">Enviado el : <?=$enviado?></font>
		</td>
		<td>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><strong><font size="-1">
<?=$titulo?>
</font></strong> </td>
<td width="10%" align="right"> [ <a href="respuesta.php?id=<?=$id?>&citar=1">CITAR</a> ]</td>
</tr>
</table>
<hr align=”center” width=”100%” size=”2″ noshade>
<?=$mensaje?></td>
</tr>
<tr>
<td colspan=”2″ height=”5″></td>
</tr>
</table>

Ahora, veamos el código PHP que utilizaremos para "parsear" este template:

Ejemplo de la pagina de foro.php

<?php
require('configuracion.php');
require('funciones.php');
$id = $_GET["id"];
if(empty($id)) Header(”Location: index.php”);

$sql = “SELECT id, autor, titulo, mensaje, “;
$sql.= “DATE_FORMAT(fecha, ‘%d/%m/%Y %H:%i:%s’) as enviado FROM foro “;
$sql.= “WHERE id=’$id’ OR identificador=’$id’ ORDER BY fecha ASC”;
$rs = mysql_query($sql, $con);
include(’header.html’);
if(mysql_num_rows($rs)>0)
{
    include(’titulos_post.html’);
    $template = implode(”", file(’post.html’));
    while($row = mysql_fetch_assoc($rs))
    {
        $color=($color==”"?”#5b69a6″:”");
        $row["color"] = $color;
        //manipulamos el mensaje
        $row["mensaje"] = nl2br($row["mensaje"]);
        $row["mensaje"] = parsearTags($row["mensaje"]);
        mostrarTemplate($template, $row);
    }
}
include(’footer.html’);
?>

Como siempre, incluimos la conexión a la base de
datos, el archivo de funciones y validamos de que exista la variable $id,
ya que de lo contrario, nada podríamos hacer y nuestro foro fallaría en el Query.
Hablando del Query, podemos ver como utilizamos la función de mySQL DATE_FORMAT() para convertir el formato por defecto del tipo datetime (’AAAA-MM-DD hh:mm:ss’) en algo que sea más común para nuestro idioma (’DD/MM/AAAA
hh:mm:ss’). Si quieren más información sobre esta función, pueden visitar y
consultar el manual de
mySQL
.

Lo más destacado en este script que podemos ver, son dos transformaciones que
le hacemos al mensaje, antes de enviarlo al template. Como vemos, primero utilizamos
la función de PHP nl2br(), que convierte
todos los saltos de linea, en tags <br />,
de esa manera, los saltos que un usuario ingrese en el textarea, serán agregados
correctamente al mostrar el mensaje. Luego, vemos como llamamos a la función parsearTags(). ¿Qué hace esta función? Veamos:

Ejemplo de la pagina de funciones.php

<?php
function parsearTags($mensaje)
{
    $mensaje = str_replace("[citar]“, “<blockquote><hr width=’100%’ size=’2′>”, $mensaje);
    $mensaje = str_replace(”[/citar]“, “<hr width=’100%’ size=’2′></blockquote>”, $mensaje);
    return $mensaje;
}
?>

Dentro de esta función, podemos agregar todas las modificaciones
que queremos realizarle al mensaje, antes de mostrarlo en el Foro. En el ejemplo,
vemos como hemos implementado el uso de un tag propio, [citar].
El mismo, dentro de la función, será reemplazado por el código HTML necesario
para destacar el citado de un mensaje, todo esto gracias a la función str_replace() de PHP (más info en el manual). Este es el tag [citar] que se agrega automáticamente, y que notamos cuando respondíamos un mensaje.

Esta función, pueden personalizarla de la manera que deseen, agregando todos
los tags que quieran, para ofrecerles a sus usuarios la libertad de darle formato
a sus mensajes. Podrían, por ejemplo, agregar un nuevo tag, para poner palabras
en negritas, o quizás alguna expresión regular que convierta automáticamente
cualquier URL presente en el mensaje, en un link. Los límites son los de su
imaginación.

Misión Cumplida

Cómo intenté demostrarles en este pequeño artículo, realizar nuestro primer
foro es algo completamente sencillo, si sabemos utilizar mínimamente mySQL y PHP (más bien, algunas funciones más que
útil del PHP). En estas pocas líneas aprendimos:

  • Crear
    una tabla en MySQL para que contenga los datos de nuestro foro.
  • A conectarnos
    a MySQL desde nuestro script PHP.
  • A utilizar
    un sistema de templates casero y simple.
  • La utilización
    de funciones de PHP como: extract(); eval(); implode();
    file(); nl2br(); mysql_insert_id(); str_replace();
  • La utilización
    de la función DATE_FORMAT() de MySQL.
  • Cómo
    trabajar de manera segura con la directiva Register_Globals
    en OFF, tomando uno a uno los contenidos de las variables, desde sus respectivos
    arrays $_POST y $_GET.

Y varios conceptos
más a la hora de programar nuestros scripts. Ahora, este sistema es muy básico,
como simple. Así que de ahora en más, es campo fértil para que Uds. mismos puedan
agregarle todas las características y funcionalidades que deseen, personalizando
el foro a su gusto. Como ideas, puedo mencionarles algunas:

  • Agregar
    más tags para que sus usuarios puedan dar formato a sus mensajes.
  • Incorporarle un
    sistema de usuarios.
  • Contadores de visualizaciones
    de un tema, para hacer un Ranking de temas más vistos.
  • La posibilidad
    de que los usuarios puedan utilizar firmas.

Y seguro que a uds. mismos
se les deben estar ocurriendo otras muchas buenas ideas para mejorar el Foro.
Para aquellos usuarios que sean vagos y no quieran estar un rato con el Copy&Paste,
les dejo el código completo del foro href="http://www.maestrosdelweb.com/editorial/util/foro.zip">para
que lo descarguen. Por lo pronto, espero que hayan disfrutado este tutorial,
y sigan programando simple, seguro, pero ante todo, bonito :D.

Califica esta nota:

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (32 votos, promedio: 4.19 de 5)
Loading ... Loading ...
Pablo Rigazzi

Sobre el autor

Pablo Rigazzi
Creador de varios sitios web, entre ellos WebStudio para Tutoriales Photoshop, ZonaPHP con artículos sobre este lenguaje y RuidoDigital, blog de información tecnológica en general.

Si eres nuevo en Maestros del Web y te agradan nuestras publicaciones, te invitamos a suscribirte a nuestro Feed.

Sindícanos en: Google Reader, Bloglines, My Yahoo o My MSN | ¿Qué es el Feed?

Comentarios

482 comentarios en total.

Páginas: « 1 [2] 3 4 5 »

  1. No Registrado 18.10.2004 - 02:15 - #

    Echo de menos la explicción de como incluir el tema de usuarios.
    Te animo a ello.
    Gracias.

  2. BinaryBlast 11.11.2004 - 17:23 - #

    Muy buen tutorial, la verdad está bastante completo y me ha servido de mucho. Pero quería molestarte un poco más. Mis conocimientos en PHP/MySQL no son tan amplios como quisiera, he aprendido a fuerza de tutoriales a crear un sistema de registro y reconocimiento de usuarios usando sesiones y me gustaría utilizar este sistema de foros pues está muy completo, con mi sistema de usuarios, de modo que en el campo “autor” el script coloque el nombre de usuario que el autor ingresó al registrarse (el cual está en la tabla users de mi db). De antemano gracias por la ayuda que puedas brindarme.

  3. pilucho 28.11.2004 - 12:29 - #

    HOLA: Por Pablo Rigazzi

    Exelente FORo te felicito gracias por brindarnos este espacio a todos que recien empesamos en el mundo de la web, esta muy bueno el foro, espero pronto tambien coloquen sistema de registro de usuarios ya que ingrese aqui y me gustario descargarlo tambien pero no sale esa opcion aun me sale errores en ello pero ese es otro tema, bueno gracias por el foro

  4. pilucho 28.11.2004 - 12:37 - #

    Gracias es un exelente Foro me funciono muy bien felicidades sigue con mas novedades

  5. blanca miragaya 06.01.2005 - 19:57 - #

    Hola

    He descargado el tutorial sobre creación de foros y al probarlo me da los siguientes errores:

    en index.php:
    Undefined variable: color in index.php on line 17

    Al pulsar en nuevo tema desde index.php:

    Undefined index: id in respuesta.php on line 3
    Undefined index: id in respuesta.php on line 4

    en el campo titulo:

    Notice: Undefined variable: titulo in
    funciones.php(6) : eval()’d code on line 10

    y en mensaje:

    Notice: Undefined variable: mensaje in
    funciones.php(6) : eval()’d code on line 14

    Al pulsar desde titulos.html

    Undefined variable: color in foro.php on line 18

    mientras tengo respuesta de estos errores, intentaré de arreglarlo por mi cuenta, aunque tu ayuda será de gran estima.

    Saludos

  6. pppkkkk 12.01.2005 - 17:35 - #

    Me gustaria si a la persona que le andubo bien el foro no le gustaria publicarlo asi todos podriamos solucionar los errores que tiene y si alguin conoce otro foro para descargar que pongan el link.
    Solo espero que nos ayudemos entre nosotro yo soy nuevo en esto pero tengo ganas de aprender, pero es un problema cuando las cosas tiran errores y no estan tan bien explicadas..
    bueno desde ya muchas gracias y si alguien tiene el foro funcionando bien me gustaria contactarme con el..

    mail: elplatenseporsiempre@hotmail.com

  7. azhton 13.01.2005 - 10:49 - #

    tengo un problemita cada vez qe quiero ver un link de los temas creados se me crea automaticamente otro sin nada y asi sucesivamente en otras palabras no puedo responderle no puedo entrar al link del tema =S
    gracias de antemano si me dicen en qe ando mal

  8. Matthew_182 18.01.2005 - 13:56 - #

    a mi me sale un error en la linea 8. No soy el unico q e tenido este error hay algo malo

    code:

    if(mysql_num_rows($rs)>0)
    {
    $template = implode(”", file(”temas.html”));

    a q se debe

  9. No Registrado 26.02.2005 - 16:56 - #

    yo he estado probando y no me funciona, talvez alguien me pueda ayudar
    mi correo es: michael.mayorga@gmail.com, y me manda esto a la pantalla

    Warning: main(header.html): failed to open stream: No such file or directory in d:\program files\easyphp1-7\www\index.php on line 12

    Warning: main(): Failed opening ‘header.html’ for inclusion (include_path=’.;D:\Program Files\EasyPHP1-7\php\pear\’) in d:\program files\easyphp1-7\www\index.php on line 12

    Warning: main(footer.html): failed to open stream: No such file or directory in d:\program files\easyphp1-7\www\index.php on line 30

    Warning: main(): Failed opening ‘footer.html’ for inclusion (include_path=’.;D:\Program Files\EasyPHP1-7\php\pear\’) in d:\program files\easyphp1-7\www\index.php on line 30

  10. Aelx 11.03.2005 - 10:48 - #

    Es un buen tutorial.. pero no es desde cero!! me refiero a nivel basico

  11. Tavo Reyes 23.03.2005 - 06:16 - #

    Tengo una gran duda, porke al instalarlo me slae el error de “mysql_num_rows()”

    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/tavoreto/public_html/foro/index.php

    ese php es para lynux o win? o porke me sale ese mensaje, lo he intentado en 3 servidores y los 3 me mandaron lo mismo…
    GRACIAS

  12. Daniargen 07.04.2005 - 09:07 - #

    Me da el siguiente error :Fatal error: Call to undefined function: mysql_fetch_assoc() in c:\archivos de programa\apache group\apache\htdocs\ejemplos\foro\index.php3 on line 15.
    No se si tendré que cambiar la versión de php o mySql ¿que versión usa?
    Si alguien sabe la respuesta que me la facilite..
    e-mail: esquel55@hotmail.com

  13. Miguel Tantas 08.04.2005 - 15:54 - #

    Me parece Muy Bueno este tutorial,que se publiquen mas.

  14. No Registrado 13.04.2005 - 15:40 - #

    quisiera saber el numero de permiso de la pagina cuando also la pagina porfavor me sale

    Warning: mysql_connect(): Access denied for user ‘usuario’@'localhost’ (using password: YES) in /home/yacareho/public_html/foro/configuracion.php on line 7

    Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in /home/yacareho/public_html/foro/configuracion.php on line 8
    El Foro de ZonaPHP
    [ Inicio ] [ Nuevo Tema ]

    Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/yacareho/public_html/foro/index.php on line 9

    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/yacareho/public_html/foro/index.php on line 10
    Foro de ZonaPHP - Bajo licencia GPL

    Quisiera saber si alguien tiene una respuesta a esto.. les agradecere

  15. crosas_72 20.04.2005 - 18:27 - #

    La Molina, 20 de Abril de 2004.

    Señores:
    Foro Internet PHP
    Presente.

    Asunto: Fatal error: Call to undefined function mysql_connect() in c:\AppServ\www\web\index.php on line ?..?.

    Queridos y queridas amigos(as) del Foro:

    Les escribo porque necesito ayuda sobre un código de PHP lo más pronto posible porque no veo la solución ni de lejos.

    La cuestión es la siguiente: Yo he estado trabajando con ?The AppServ Open Project - 2.4.2 for Windows?, todo estaba bien hasta que me pase a ?The AppServ Open Project - 2.5.2 for Windows?.

    Ahora me sale error cuando quiero abrir una base de datos, el código que utilizo que me funciona en la versión 2.4.2 del Appserv perfectamente pero no en la versión 2.5.2. Es el siguiente:

    < ?php
    function conexion_bd($base,$host,$usuario,$clave)
    {
    if (!mysql_connect($host,$usuario,$clave) || !mysql_select_db($base))
    {return(false);}
    else
    {return(true);}
    }
    function desconexion_bd()
    {
    //mysql_free_result();
    mysql_close();
    return(true);
    }
    if (conexion_bd(”base”,”localhost”,”",”"))
    {

    }
    ?>

    El texto del error es el subsiguiente: ?Fatal error: Call to undefined function mysql_connect() in c:\AppServ\www\web \index.php on line ?..?. He probado en la instrucción ?mysql_connect? como usuario: ?root?, también con un nuevo usuario y clave en ?phpMyAdmin 2.6.0-pl2?? pero nada. He intentado a su vez con la nueva instrucción mysql_pconnect y todo sigue en las mismas. Obviamente la base de datos llamada existe. No he intentado ?ahorcar los hábitos? en el archivo php.ini porque no se que cambiar. Que yo sepa es el unico problema que he tenido en esta ultima versión del APPSERV, ojala sea asi, sino me las ?rebano??..caray.. (mentira, son bien presiadas).

    Los datos de mi PHP son:
    The AppServ Open Project - 2.5.2 for Windows

    phpMyAdmin Database Manager Version 2.6.0-pl2
    PHP Information Version 5.0.2
    Perl Version 5.8.4

    Agradeceria a quien me de la solucion…….. porfis.

    Atentamente;

    Carlos Edu
    Web Designer
    Crosas_72@hotmail.com
    http://carlosrosas.8m.net

    Nota: Uso bastante a parte de PHP, WORD-XP, por eso quizás la inercia me lleva a escribir todo como una carta?.

    :pensando:

  16. No Registrado 01.05.2005 - 18:16 - #

    que buen foro este y no es tan complicado de subirlo,pero me gustaria saber si hay la posibilidad de que a determinado numero de respuestas digamos 30 o 40 pase ala pagina 2 y asi cosecutivamente ala 2 y 3, si hay alua forma Gracias pues asi quedaria mas completo, no es mas lo que pido enverdad

  17. Ferran_IIS 19.05.2005 - 10:09 - #

    Phantasma__,

    Notice: undefined index id in c:…….\respuesta.php
    Notice: undefined index citar in c:…….\respuesta.php

    Saludos

    Gracias por el manual y felicidades por las críticas

  18. Saldu 21.05.2005 - 13:06 - #

    Qué tengo q poner,para qué en vez de Autor,directamente funcione con la coockie depositada en su computadora? se entiende? para que directamente reconozca al usuario qué esta por escribir…porque si no,no puedo regir un cierto control,en la pagina…muchas gracias..

  19. No Registrado 24.05.2005 - 09:39 - #

    Quisiera saber si me pueden ayudar a resolver mi problemita que tengo con el codigo del foro….. Se los voy agrader muchisimo

    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/claperc/public_html/cosaes/foro/index.php on line 10

    Por lo que he visto a varios les sale este mismo error…

    Mi email es : brenda_vla@hotmail.com

    Gracias

  20. ricardojoc1 30.05.2005 - 17:43 - #

    Notice: Undefined index: id in d:\Inetpub\wwwroot\foro\foro.php on line 4

    Warning: Cannot modify header information - headers already sent by (output started at d:\Inetpub\wwwroot\foro\foro.php:4) in d:\Inetpub\wwwroot\foro\foro.php on line 5
    El Foro de ZonaPHP
    [ Inicio ] [ Nuevo Tema ]

    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in d:\Inetpub\wwwroot\foro\foro.php on line 12
    Foro de ZonaPHP - Bajo licencia GPL
    no se poruqe me salen todos estos mensajes…si alguien pudiera ayudarme..
    los archivos que van dentro de require() donde los debo poner..??

  21. ricardojoc1 30.05.2005 - 18:27 - #

    este foro esta lleno de principiantes como yo,,, pero a nadie le da la gana de responder alguna consulta…lo mismo que nada.. entonces,…la verdad no entiendo.. me sales un monton de warnings. y pareciera que nadie sabe el motivo…

  22. danielunerg 15.06.2005 - 15:15 - #

    miren el detalle que tienes es que las versiones de mysql sus hosting son diferentes lo que para algunas funcionan para otras no tomen esta sentencias y prueben

    $sql =”SELECT *FROM usuario where usuario=’$usu’ and contrasena =’$cont’”;
    $consulta= mysql_query($sql);
    if($filas=mysql_fetch_array($consulta)) // SI EL USUARIO EXISTE
    {
    do
    {
    $codusuario = $filas['codusu'];
    $nom = $filas['nombre'];
    $ape = $filas['apellido'];
    $ced = $filas['cedula'];
    $ed = $filas['edad'];
    $us = $filas['usuario'];

    }while($filas =mysql_fetch_array($consulta));
    $sql= “SELECT *FROM nivel where cedula=’$ced’”;
    $consulta1=mysql_query($sql);
    if ($filas=mysql_fetch_array($consulta1))
    {
    do
    {
    $nivel= $filas['nivel'];
    }while($filas=mysql_fetch_array($consulta1));
    }

  23. usuarionuevo 16.06.2005 - 11:07 - #

    Me pasa lo mismo que a ti lo sabes ya por que no te funcionaba

  24. No Registrado 18.06.2005 - 11:52 - #

    Como es posible que la pàgina: respuestas.php hayan dos variables del tipo GET sin un formulario en una página anterior? A mi precisamente por ello me da errores y no puedo ejecutar correctamente el foro.

  25. wlasdimir 23.06.2005 - 11:11 - #

    a mi no me funciona el foro, me sale este error Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /w
    ww/www/foro/index.php on line 10, q puede ser??

    porfavor si pueden mandarme una respuesta a mi correo se los agradeceria ya q lo necito para una tarea grax de antemanos

    cray73@hotmail

  26. No Registrado 15.07.2005 - 17:56 - #

    Hola necesito un poco de ayuda, No logro hacer que mi foro funcione, ya esta todo instalado, pero mi base de datos la hice con “phpmyadmin” pero todo igual, ya configure el archivo “configuracion.php” y nada mas no logro agregar ningun tema, oh tengo que crear uno en la base de datos, agrege unos datos a la base, pero no se muestran en el foro, si alguin puede ayudarme lo agradecere!
    mi email es afelipelc@yahoo.com.mx y mi foro esta en plnetxochiltepec@sytes.net/foro atte Felipe

  27. talibancito 20.07.2005 - 06:54 - #

    oie,, muy bueno el aporte,, pero tengo una pregunta,, ya echo el foro,,, no se le puede aplicar un ” hide ” ke es para obligar al usuario a postear para ver el mensaje.,,,
    agradeceria su respuesta

  28. Nxxs 23.07.2005 - 18:38 - #

    Esta muy bueno el tutorial, lo estoy estudiando y agregando cosas nuevas, seria bueno q pusieran un tutorial asi de practico para hacer un MINIPORTAL, el procedimiento a seguir la actualizacion , con un ejemplo sencillo pero potente para el aprendizaje , estare atento para ver ese tuto.gracias.

  29. No Registrado 04.08.2005 - 14:14 - #

    Hola por favor ayudenme que significa Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in

  30. No Registrado 05.08.2005 - 19:47 - #

    Hola.
    Antes que nada, gracias por el tutorial. Está muy bien hecho. Pero el foro tiene un pequeño problema:

    Cuando se pone una respuesta sobre otra respuesta, es decir:
    Supongamos que el tema principal es:
    ‘tutorial php’
    y yo opino sobre ese enlace con el título:
    ‘re: tutorial php’
    Si alguien hace alguna anotación sobre mi título, esa última respuesta no es posible que sea vista por nadie. En la base de datos queda todo registrado, mi título aparecerá con un respuesta, pero en la interfaz (explorador) no se ve.
    Así que tengan cuidado.
    Suerte

  31. shen 16.08.2005 - 18:11 - #

    Hola la verdad que muy bueno el foro tengo unas consultas:

    1) como hago para que se pueda responder sin el citar ya que es la unica forma de responder los mensajes

    2) para poder dividir en varios sub foros como es que tengo que hacer ( agrandar la base de datos )

    3) como hago para que los usuarios puedan poner iconos en los mensajes

  32. //\\//\\arco's 06.09.2005 - 17:11 - #

    Excelente tutorial, en lo personal recien me estoy inicando en esto,y quería agradecerte porq es un ejemplo sencillo y practico q me “habrio la cabeza”, desde mis felicitaciones y espero en un futuro no muy lejano hacer algun q otro aporte..Salud2

    //\\//\\arco’s

  33. roxx 19.09.2005 - 12:28 - #

    Hola que tal….
    Tengo un problemita con php y mysql trato de realizar un logeo mediante sesiones pero me marca errores que no he podido solucionar por eso necesito de tu ayuda, a ver si alguien me pudiera dar informacion sobre esto…..a qui envio lo errores que me marca.

    Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at d:\inetpub\wwwroot\sesion\comprueba.php:1) in d:\inetpub\wwwroot\sesion\comprueba.php on line 2

    Warning: Cannot modify header information - headers already sent by (output started at d:\inetpub\wwwroot\sesion\comprueba.php:1) in d:\inetpub\wwwroot\sesion\comprueba.php on line 20

    Espero alguien me auxilie…..!!! bye bye saluditos

  34. Someonex 26.09.2005 - 08:50 - #

    El Tuto esta como bueno y simple, pero aclaro que para algunos usuaris que usamos php5 (o por lo menos a mi y algunos otros) la función n12br() no funciona, por eso aveces me toca usar
    $cadenasaltos=str_replace(”\n”,”
    ,$cadena);
    funciona igual y nos evitamos el n12br();

    se me hace extraño que no funcione, alguno sabe que paso de la versión 4 a la 5?

  35. No Registrado 26.09.2005 - 09:20 - #

    tengo el mismo problema, please enviame la solucion a mi email: dianarivero@yahoo.com

    ‘[iNFeRNo, ']Por cierto, se me olvidaba.. Estoy probando los archivos bajados con PHP 4.3.2 y MySQL 4.0.14a Bajo windows con Xitami como server (por si tiene que ver algo de todo esto con mi problema).
    Bien, a la hora de probar todo, a la hora de exponer un nuevo tema me da estos dos errores:
    Notice: Undefined index: id in C:\Xitami\webs\php_nono\foro_nono\respuesta.php on line 4

    Notice: Undefined index: citar in C:\Xitami\webs\php_nono\foro_nono\respuesta.php on line 5

    Y los campos del formulario me aparecen otrs errores (que ya he corregido con un else a la buena de dios…)

    La cuestion es, ¿falla por algo de lo que uso, tengo ke configurar algo mas a parte del PHP y de MySQL?¿o es solo un fallo del navegador?

    Como editor uso el HomeSite 5.2, con el mapping de servidores activado correctamente…

    Gracias

  36. No Registrado 26.09.2005 - 16:25 - #

    Hola, yo tb estoy haciendo un foro php y tengo algunas dudas:
    http://england.webcindario.com/
    a)Como puedo hacer que entienda el código html por ejemplo un url.
    b)Que puedo hacer para que si alguien le da a actualizar no se me vuelva a añadir el mensaje.

    Muchas gracias

  37. No Registrado 29.09.2005 - 09:11 - #

    Alguine me podría facilitar alguna dir. o lugar de donde sacar de crear un foro en ASP?.
    Muchas Gracias. Matias

  38. No Registrado 09.10.2005 - 05:50 - #

    donde esta el admin.php ? :S

  39. ligthy_xd 21.10.2005 - 20:27 - #

    muchas gracias, estoy haciendo un curso de php y espero ke esto me sirva. byes!.
    no entiendo mucho hajajajaja:no:

  40. Carlos026 26.10.2005 - 00:25 - #

    HOLA QUE TAL TENGO UNA OAGINA DE INTERNET Y AL MOMENTO DE PASAR LOS ARCHIVOS AL SERVIDOR ME APARECEN ERRORES.

    si tengo un dominio, que debo poner en la parte de localhost?
    que usuario y contraseña debo utilizar?
    que tipo de bd debo utilizar y que estension debe tener ( puedo usar Acces?)

    ESTE ES EL ERROR ……..
    Warning: mysql_connect(): Access denied for user: ‘usuario@localhost’ (Using password: YES)
    foro/configuracion.php on line 7
    Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource
    foro/configuracion.php on line 8
    Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource
    foro/index.php on line 9
    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource
    foro/index.php on line 10
    Foro de ZonaPHP - Bajo licencia GPL

    !!!!!!!!!!!!! AGRADECERIA MUCHO SI ME RESPONDIERAN NECESITO AYUDA!!!!!!!

    GRACIAS ATTE:JUAN CARLOS

  41. No Registrado 09.11.2005 - 00:43 - #

    Estimados amigos, realmente muy bien lograda la explicacion en general y en especial la de los templates ya que a diario noto como los programadores dejan de lado el tema de los recursos.

    Por otra parte hasta donde he leido (recien lo bajo) el codigo, hay varios bugs en donde se puede lograr una inyeccion SQL, ni bien modifique esos bugs se los Envio.

    Atte Pablo Gonzalez de Tandil Bs As Argentina
    http://www.neotandil.com.ar

  42. No Registrado 09.11.2005 - 00:49 - #

    Juan Carlos, lo que sucede es que el config esta configurado basicamente para trabajar en forma local con un server de prueba tipo apache, la gente que confecciono el foro, lo hizo pensando en forma exploratoria y generica, pero es cierto que no esta aclarado este punto…
    En criollo, lo que tenes que hacer es abrir el archivo configuracion.php y cambiarle los valores que tiene por lo que te asigno el que te dio web host, ya que el usuario localhost es solo para usar localmente y equibale al tcp/ip 127.0.0.1, ahora tendras que poner ahi el user que te asignaron los del webhost.
    Lo mismo con los demas campos, es desir que tenes que verificar cual es el nombre de contraseña y de DB que tenes vos personalmente.

    espero te sirva la ayuda, trate de ser lo mas simple posible.

    Atte Pablo Gonzalez (SrNeo) tandil bs as argentina
    http://www.neotandil.com.ar

  43. No Registrado 20.11.2005 - 03:39 - #

    Hola saludos, si alguien podria mandarme el Apache y el php ya configurados y listos para correr los dos lo agradeceria de todo corazon, he leido 26245645 manuales y no logro hacerlos funcionar en serio, seria algo ke agradeceria muchisimo.Bueno mi correo es pherny1@gmail.com ahi si pueden mandenme ya los 2 progs configurados por favor.

  44. jam1138 20.11.2005 - 05:45 - #

    ¬¬ Pués esperando vuelvas a leer el foro… Hay aplicaciones prefabricadas conocidas como WAMP (suponiendo trabajas bajo Windows) que te intalan todo lo necesario para trabajar con PHP y te faciltan la configuración y administración de tu servidor.

    Yo te recomendaria usar EasyPHP, pero igual tienes appserv, WAMP5, PHPTriad… entre muchos otros; son los que se me vienen a la mente ahora.

    :adios:

  45. No Registrado 09.01.2006 - 17:14 - #

    Queria escribir para felicitarte por es buen tutorial acerca de crear un foro con php y mysql. muy bueno. queria darme el trabajito de agradecerte por compartir la información.
    bye

  46. vivian alfato 16.01.2006 - 09:29 - #

    Queria escribir para felicitarte por es buen tutorial acerca de crear un foro con php y mysql. muy bueno. queria darme el trabajito de agradecerte por compartir la información.
    bye
    20/11/05 05:45:13Hola saludos, si alguien podria mandarme el Apache y el php ya configurados y listos para correr los dos lo agradeceria de todo corazon, he leido 26245645 manuales y no logro hacerlos funcionar en serio, seria algo ke agradeceria muchisimo.Bueno mi correo es pherny1@gmail.com ahi si pueden mandenme ya los 2 progs configurados por favor.

  47. gducos 17.01.2006 - 18:31 - #

    hola, estoy haciendo un fotolog, y quiero como esta en este foro que se puedan insertar caritas, alguien me puede pasar el codigo, mi email es gducos@gducos.com.ar, al que me lo pase, le doy 20 mb de web php sin publicidad Gracias Ejemplo de lo que quiero :policia: :policia: :si: :si:

  48. tuppax 18.01.2006 - 00:56 - #

    Muy bueno el ejempl, gracias me ayudo bastante!!!!

    Pregunta: En necesarioa crear tantos archivos!?????????

  49. Ferguer 18.01.2006 - 22:00 - #

    Hola, la verdad es que este manual es genial, funciona perfectamente, lo revisare un poco y si puedo pues cambiare unas cosillas para personalizarlo. Pero tengo una pregunta. Me encantaria poder poner firmas en los post, pero no he podido dar con la tecla. Me gustaria saber si alguien lo ha podido hacer y que me ayude si es posible. Muchas gracias. Mi correo electronico es: fergueras@hotmail.com. Ta luego y felicidades por todo esto.

  50. Basher 26.01.2006 - 06:39 - #

    Antes de nada decirte que esta muy completo y bien explicado aunque no consegui que funcionaran 3 lineas de INDEX.PHP en concreto y te expongo los cambios.

    $sql = “SELECT id, autor, titulo, fecha, respuestas, ult_respuesta “;
    $sql.= “FROM tabla WHERE identificador=0 ORDER BY ult_respuesta DESC”;
    $rs = mysql_query($sql, $con);

    Por estas que si me funcionaron:

    $sql = ‘SELECT * FROM `tabla` ORDER BY fecha LIMIT 0, 30 ‘; (O por otras reglas de clasificacion)

    $rs = mysql_query($sql); (no necesita el $con puesto que usa el require configuracion al inicio)

    Por ultimo os pongo la version en la cual los he ejecutado MySQL 3.23.58

    Un saludo.

  51. Marcelo Gracia 15.02.2006 - 06:13 - #

    HOla, pablo, queira feliciarte por el artículo, es excelente para los que recien comenzamos con esto.
    Mi pregunta es si sabes como puedo adaptar la función MostrarTemplate() para que la pueda utilizar con ADODB y no con mysql_fetch_array().
    Gracias !!!
    Un abrazo.

  52. No Registrado 16.02.2006 - 15:01 - #

    Muy bueno el ejemplo… Aunque no se por qué no me muestra la información del foro.
    La información ingresada si la está guardando en la BD, pero a la hora de mostrarmela en el index, muestra los campos vacíos; si son 2 temas, muestra dos espacios vacíos y si son 4, muestra 4 espacios vacíos…

    o sea, si está leyendo la info, pero no me la muestra me pueden ayudar???

    ahhhh estoy utilizando, WAMP5 (php5, Apache2, MySQL5). Será problema de la configuracion???

    Gracias por la Ayuda!!!

  53. yrelys 28.03.2006 - 15:23 - #

    Excelente el ejemplo… Aunque no se por qué no me muestra la información del foro.

    La información ingresada si la está guardando en la BD, pero a la hora de mostrarmela en el index, muestra los campos vacíos; si son 2 temas, muestra dos espacios vacíos y si son 4, muestra 4 espacios vacíos…

    o sea, si está leyendo la info, pero no me la muestra me pueden ayudar?

  54. rakshaka 05.04.2006 - 23:29 - #

    soy mas que nuevo, y quiero saber bien como funciona esto. estoy utilizando
    MySQL-Front para armar las tablas, pero, no se donde meter los archivos php, los subo por ftp?
    de ser ese el caso, porque no me funcionan???

  55. reivaJ y GRAFFico 30.04.2006 - 11:40 - #

    Hola,
    lo primero decir que me parece un muy buen manual para principiantes, aunque no para tan principiantes desde 0.

    Lo segundo es preguntar una cosa que ya he visto escrita pero no respondida,
    Cómo puedo hacer para que en el index, las fechas sean dd/mm/aa como en los mensajes y no aa/mm/dd como aparece.

    Y por último algo más complicado (eso creo), cómo hacer que se presenten “x” mensajes por páginas, es decir que haya varias páginas con mensajes no solo una interminable.

    Les agradecería que me respondieran.

  56. juliocsg54 13.05.2006 - 21:22 - #

    Hola Amigo,
    el tutoria es Bastante sencillo y practico.. para mi fue como anillo al dedo por q nose nada de php y se me hiso muy sencillo..

    pero me da un error y no se por ni como arreglarlo, busque informacion para q funcionaran mysql y php 5 en conjunto pero aun asi no logro q funcione..

    Fatal error: Call to undefined function mysql_connect() in C:\Program Files\Apache Group\Apache2\htdocs\foro\configuracion.php on line 7

    Gracias
    Julio C.
    juliocsg54@hotmail.com

  57. No Registrado 14.05.2006 - 18:14 - #

    juliocsg54, Hola Amigo,
    el tutoria es Bastante sencillo y practico.. para mi fue como anillo al dedo por q nose nada de php y se me hiso muy sencillo..

    pero me da un error y no se por ni como arreglarlo, busque informacion para q funcionaran mysql y php 5 en conjunto pero aun asi no logro q funcione..

    Fatal error: Call to undefined function mysql_connect() in C:\Program Files\Apache Group\Apache2\htdocs\foro\configuracion.php on line 7

    Gracias
    Julio C.
    juliocsg54@hotmail.com

    ya configuere php5 y se conecta pero cuando quiero agregar un tema de un error Error al grabar un mensaje: .. q puedo hacer?

  58. amaro 24.05.2006 - 10:07 - #

    como le se pone un limite a los mensajes? que no escriban tanto texto los usuarios, solo un minino de caracteres?

  59. Willian 25.05.2006 - 09:36 - #

    Esta excelente el tutorial, el foro funciona a la perfección… Solo que tienen que hacerle ajustes a su manera para que les funcione bien perfectamente..

  60. ulises 26.05.2006 - 15:15 - #

    no se como aser para distribuir los mensajes nuevo sin que se mesclen con los viejos , bueno pues mas que nada como hacerle para distribuirlos en bloques , espero una respuesta pronto porfis………

  61. No Registrado 28.05.2006 - 21:41 - #

    Hola baje el Zip del foro y no me aparece lo de mostrartemplate() y al momento de ejecutar una llamada a PHP me aparece el Dialogo de Abrir, Guardar o Cancelar. Que puedo hacer

    Disculpen las molestias

  62. Yahir Abril 29.05.2006 - 20:53 - #

    Me sale un error en el formulario agregar.php

    Error al grabar un mensaje:mysql_error

    no se que pueda ser, cuando le doy en enviar mensaje en el index.php me aparece ese error, por favor colaborme con ese error

  63. Erwin 30.05.2006 - 19:22 - #

    Gracias…ojala me resulte

  64. martitaa 01.06.2006 - 02:46 - #

    Ola! cuando ejecuto el foro me da dos errores en respuestas.php

    Notice: Undefined variable: id in c:\archivos de programa\easyphp1-7\www\respuesta.php on line 5

    Notice: Undefined variable: citar in c:\archivos de programa\easyphp1-7\www\respuesta.php on line 6

    son las dos variables que recibe por $get e estado leyendo todo el codigo y todos los posts y no encuentro forma de solucionarlo, si alguien sabe algo que me ayude por favor! gracias

    besoss

  65. Pardolis 02.06.2006 - 03:30 - #

    Hola amigos, no tengo ni idea de crear webs ni de PHP ni de Mysql, pero necesito crear un foro… ¿podriais indicarme donde debo escribir esas lineas de programación?

  66. Eduardo 02.06.2006 - 07:47 - #

    Hola, he segui paso a paso el tutorial, pero aun no compredo bien lo de los template, y cuando he terminado de hacer lo del manual, solo e aparece el header.html y el footer.html, me podrian ayudar?
    Mucha gracias

  67. Jacob 02.06.2006 - 21:36 - #

    Como puedo dividir los mensajes en diferentes paginas

  68. rom 05.06.2006 - 19:14 - #

    Este es mi comentario

  69. Sete 06.06.2006 - 10:06 - #

    No si interesante es, pero creo que es un tutorial para usuarios avanzados. Porque yo que estoy empezando con el PHP, no me aclaro a hacerlo…

  70. mm 06.06.2006 - 15:31 - #

    vacano men

  71. leo 08.06.2006 - 02:27 - #

    no tuve tiempo de leerlo pero mañan fijo lo leo y lo hago

  72. yo 09.06.2006 - 15:23 - #

    muy buen tutorial!!

  73. Richard 09.06.2006 - 16:17 - #

    Muy buena la aplicacion del foro. ahora voy a tratar de hacer uno yo para aprender ….
    Probe el tuyo y funciono la raja, ahora kiero probar poniendole codigo de usuarios para k pueda registrar a la gente, asi no es no escriban tonterias

  74. Draink 11.06.2006 - 04:51 - #

    donde consigo el mysql y el php?

  75. Jdizio 12.06.2006 - 10:18 - #

    De verdad excelete tu tutorial!. Te felicito por tus habilidades y pasciencia para escribir el tutorial!

  76. Leonor 12.06.2006 - 18:57 - #

    Me gusto mucho lo estoy aplicando aver ke sale

  77. rafas 13.06.2006 - 00:12 - #

    muy bueno, muchas gracias,
    me despierta la curiosidad por aprender mas

  78. Jdizio 15.06.2006 - 07:42 - #

    Hola, excelente el tutorial pero tengo un problema que me dice:
    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/xtrategi/public_html/forox/index.php on line 10

    La BD esta bien, pq la he revisado, no se que pueda ser… por favor alguien que me ayude!!!!

    Gracias

  79. Pipo 01.07.2006 - 17:44 - #

    Excelenta artículo. Justo lo que necesitaba

  80. gaspar 04.07.2006 - 01:41 - #

    muy bueno el tutorial pero el archivo de descarga no me lo da, no se si lo habran quitado o ke onda, pero ante todo gracias por hacer tutoriales tan bien realizados

  81. gaspar 04.07.2006 - 01:55 - #

    ya se que es querer todo peladito y a la boca pero si ya bajamos el foro.zip esos archivos que? los trepa uno no mas a su pagina y deberian de jalar? no entiendo cree mi base de datos en sql pero y despues si trepo todo lo demas ya deberia quedar por realizado el foro etre comillas o estoy mal?

  82. andres 04.07.2006 - 17:04 - #

    en realidad no entendi mucho ya que no conosco muchos de los terminos que se utilizan….si tienen alguna forma de ayudarme se los agradeseria mucho porfavor mi mail es andres.and.che@gmail.com

  83. paula 04.07.2006 - 21:28 - #

    Ta bueno..me dio largo pero bueno lindo..besos!
    Quiero hacerme un foro..ah!

    Dsp..paula_2590@hotm

  84. Javier 06.07.2006 - 12:23 - #

    gracias por el tutorial tratare de ponerlo en practica

  85. migue 06.07.2006 - 16:30 - #

    esta pagina es excelente

  86. ricocorte 10.07.2006 - 11:24 - #

    muy buen editorial me sirvio de mucho gracias por compartirlo en la web

  87. Josh 11.07.2006 - 17:18 - #

    Gracias por guiarme

  88. Edgar Tavares 12.07.2006 - 12:45 - #

    Si se graban los datos en la base local pero no puedo visualizarlos por que?

  89. ??? 14.07.2006 - 19:35 - #

    ta chido eejejje

  90. paty 18.07.2006 - 11:16 - #

    Hola, sabes yo tengo un problema, en el archivo de configuration.php no se como vincular la bd con el servidor

  91. ktm 18.07.2006 - 15:12 - #

    no me gusto tu tutorial, no me sirve

  92. mauricio 19.07.2006 - 12:01 - #

    funciona terrible bien !!
    felicitaciones

  93. mario 19.07.2006 - 15:43 - #

    me parec buena la idea me va a servir de mucho

  94. mario 19.07.2006 - 15:44 - #

    me parec buena la idea me va a servir de mucho

  95. sere yo?? 20.07.2006 - 17:22 - #

    esta genial el foro, me a servido arto y lo mejor de todo es que ya lo empece a modificar. :D

    gracias por el tutorial

  96. jose 24.07.2006 - 01:31 - #

    esta teso su informe

  97. berni 28.07.2006 - 13:47 - #

    Me ha ayudado mucho

  98. henry 29.07.2006 - 00:55 - #

    buena

  99. D. Vivallo 29.07.2006 - 16:34 - #

    Primero que nada muy buen tutorial.

    Hay varios que tienen el mismo problema, yo tambien y nadie contesta. Por favor ayuda
    Warning: mysql_connect(): Access denied for user: ‘usuario@localhost’ (Using password: YES)
    foro/configuracion.php on line 7
    Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource
    foro/configuracion.php on line 8
    Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource
    foro/index.php on line 9
    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource
    foro/index.php on line 10

    He intentado todo lo que se, quizas no se mucho.
    Saludos

  100. edblood 31.07.2006 - 12:22 - #

    saludos, esta genial este tutorial!!! solo me queda una duda,,, ¿como puedo borrar los mensajes publicados?

Trackbacks

1 trackbacks en total.

  1. Crear un foro con PHP y Mysql
Deja tu Comentario


Maestros del Web se reserva el derecho de moderación de los comentarios. Evita utilizar palabras soeces, ataques directos, descalificativos, insultos, de lo contrario tu comentario será eliminado.


-


Maestros del Web es el punto de encuentro para los entusiastas de la red.

Creative Commons by-nc-sa 3.0 | Política de Privacidad | CMS: Wordpress