Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/09/2012, 21:41
Avatar de g0rd0inf0rmatic0
g0rd0inf0rmatic0
 
Fecha de Ingreso: agosto-2012
Ubicación: Las Piedras
Mensajes: 2
Antigüedad: 11 años, 8 meses
Puntos: 0
Información como se interpretan estas funciones habitales en php?

necesito ayuda con la interpretacion de este codigo para sacarme la duda sobre un par de funciones habituales:

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:
<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>
Al clickar cualquiera de los foros de abajo que en ves de ser:
<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:
<a href="?foro=foro1">Foro 1</a>
<a href="?foro=otroforoinventado>Otro foro</a>
"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)...

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:
<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>
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.
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:
	<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>
guardar.php llamada anteriormente por el codigo ?guardar=<? echo $escribir; ?>
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:
<?
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;
}
?>
eso es todo no crei importante el postear la base de datos (el que la quiera mande mp)
lo que desconozco lo deje comentado claramente entre mis animaladas explicativa acerca de como interpreto yo el funcionamiento del code.