Si de aqui cargo 3 modulos...($foro, $guardar y $escribir) y luego de haberlos cargado compruebo si no estàn vacios, y muestro los datos de la clase "lista.php"...
index.php
Código:
Al clickar cualquiera de los foros de abajo que en ves de ser:<html> <head> <meta http-equiv="pragma" content="no-cache"> <title>Foro PWeb</title> </head> <body> <? $foro = $_GET["foro"]; $guardar = $_GET["guardar"]; $escribir = $_GET["escribir"]; include 'conexion.php'; if ($guardar != '')include 'guardar.php'; if ($escribir != '')include 'escribir.php'; if ($foro != '')include 'foro.php'; if (($guardar == '') && ($escribir == '') && ($foro == ''))include 'lista.php'; ?> </body> </html>
<a href="foro1.php">Foro1</a> (no hace falta decir que el archivo foro1.php no existe)
acà la magia de poner: <a href="?foro=loqueseteocurra"></a> crea una instancia y la guarda en la base de datos creando una secciòn del foro a partir del "nombre de la url" [glow=red,2,300](si alguien sabe mejor como funciona que lo explique por favor)
[/glow]
lista.php
Código:
"foro.php" cargado como el modulo $foro en el index junto con $escribir y $guardar y la clase lista que tiene los links y es llamado con el atributo o lo que sea "?foro=" (creo XD)...<a href="?foro=foro1">Foro 1</a> <a href="?foro=otroforoinventado>Otro foro</a>
El "foro.php" se crea una tabla con 2 celda horizontales.
la celda de arriba tiene el titulo y debajo el cuerpo del post.
la celda de abajo tiene recibe un link "?escribir="...puntos suspensivos..XD>escribir mensaje</a> con el nombre del foro seguido automaticamente en la url delante del signo de igual(=) y te envia a "escribir.php"
foro.php
Código:
aqui se crea un form con el "method="POST" que supuestamente al clicarlo lo va a crear al post en una instancia tomando la url de arriba (creo) y de ahi llama a $guardar que se encarga de guardarlo en la base de datos.<table border="1" cellpadding="2" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1"> <? $sql = "SELECT * FROM foro WHERE foro = '".$foro."' ORDER BY id DESC"; $res=mysql_query($sql,$db); while ($row=mysql_fetch_array($res)){ $rows = 1; ?><tr> <td width="82%" colspan="2"><font face="Verdana" size="2"><b><? echo $row["autor"]; ?></b><br /> <? echo htmlentities($row["mensaje"]); ?><br /> </font><b><font face="Verdana" size="2"> <a href="?foro=<? echo $row["id"]; ?>"><? echo mysql_result(mysql_query("SELECT COUNT(id) FROM foro WHERE foro = '".$row["id"]."'",$db),0); ?> respuestas</a></font></b></td> </tr><? } if($rows == ''){ ?><tr> <td width="82%" colspan="2"><font face="Verdana" size="2">No hay mensajes en este foro</font></td> </tr><? } ?><tr> <td width="82%" colspan="2"><font face="Verdana" size="2"><b><a href="?escribir=<? echo $foro; ?>">Escribir mensaje</a><? $arriba = @mysql_result(mysql_query("SELECT foro FROM foro WHERE id = '".$foro."'",$db),0); if($arriba != '')echo ' | <a href="?foro='.$arriba.'">Volver</a>'; else echo ' | <a href="?foro=">Volver</a>'; ?></font></b></td> </tr> </table>
luego se crea un campo de texto para el titulo, con la fuente verdana y de tamaño "2", con la etiqueta "nick" y se le da un valor:
[ [glow=red,2,300]value="<? echo $_POST["nick"];[/glow] ]
no se cual es el valor de $_POST aunque intuyo que lo obtiene de lo que se haya escrito en la caja de texto con la etiqueta nick (que quiera correjir mis animaladas de programaciòn serà bien recibido en los comentarios) luego se crea el "textarea" que recibira el cuerpo del post.
entonces... verdana "2"... aparece el mismo metodo usado arriba
<? echo $_POST["texto"];
y el boton de enviar que ejecuta este codigo:
"?guardar=<? echo $escribir; ?>"
escribir.php
Código:
guardar.php llamada anteriormente por el codigo ?guardar=<? echo $escribir; ?> <form method="POST" action="?guardar=<? echo $escribir; ?>"> <p><b><font size="2" face="Verdana">Nick:<br /> </font></b><font face="Verdana"><b><input type="text" name="nick" size="20" value="<? echo $_POST["nick"]; ?>"/></b></font></p> <p><b><font face="Verdana" size="2">Texto:<br /> <textarea rows="6" name="texto" cols="62"><? echo $_POST["texto"]; ?></textarea></font></b></p> <p><input type="Submit" value="Enviar" /></p> </form>
comprueba si el valor de $_post de nick (o algo asì) y si esta vacio muestra un mensaje,
y el $escribir = $guardar ni idea que hace en realidad.
abajo pasa lo mismo con el cuerpo del post, y aqui:
$sql = "INSERT into foro (autor,mensaje,foro) VALUES ('".$_POST["nick"]."','".$_POST["texto"]."','".$guardar."')";
mysql_query($sql,$db);
$foro = $guardar;
se inserta en la base de datos si alguien puede explicar como interpreta este codigo
con el temita de los $_POST y su valor no muy claro al igual que el $foro= $guardar
guardar.php
Código:
eso es todo no crei importante el postear la base de datos (el que la quiera mande mp)<? if($_POST["nick"] == ''){ echo '<font color="#ff0000">Pon un nombre de usuario</font>'; $escribir = $guardar; } elseif($_POST["texto"] == ''){ echo '<font color="#ff0000">Escribe un texto</font>'; $escribir = $guardar; } else { $sql = "INSERT into foro (autor,mensaje,foro) VALUES ('".$_POST["nick"]."','".$_POST["texto"]."','".$guardar."')"; mysql_query($sql,$db); $foro = $guardar; } ?>
lo que desconozco lo deje comentado claramente entre mis animaladas explicativa acerca de como interpreto yo el funcionamiento del code.