Foros del Web » Programando para Internet » PHP »

consulta

Estas en el tema de consulta en el foro de PHP en Foros del Web. como se daran cuenta recien acabo de empezar con php y tenia ganas de escribir un foro, asiq aqui se los muestro. me gustaria recibir ...
  #1 (permalink)  
Antiguo 31/07/2011, 22:16
 
Fecha de Ingreso: julio-2011
Mensajes: 29
Antigüedad: 12 años, 9 meses
Puntos: 1
consulta

como se daran cuenta recien acabo de empezar con php y tenia ganas de escribir un foro, asiq aqui se los muestro.

me gustaria recibir 1)opiniones 2) formas de mejorarlo 3) si ta mal hecho 4) por supuesto como deberia hacerse un foro bien!!!

saludos...!


los archivos son 4:

Index.php

<html>
<head>
<title>Problema</title>
</head>
<body>
<?php
$servidor = 'localhost';
$usuario_mysql = 'root';
$contraseña_mysql= '';
$base_de_datos_mysql= 'miforo';

$conn = @mysql_connect($servidor, $usuario_mysql, $contraseña_mysql)
or die('Error: no se pudo conectar a la bd: '.mysql_error());

mysql_select_db(miforo, $conn)
or die('Error: no se pudo conectar a la bd: '.mysql_error());


$registros=mysql_query("select * from topicos",$conn) or
die("Problemas en el select:".mysql_error());





while ($reg=mysql_fetch_array($registros))
{ $id = $reg['id'];
echo "<table>";

echo "<tr><td>nro de topico</td><td>".$reg['id']."</td></tr><br>";
echo "<tr><td>Autor:</td><td>".$reg['autor']."</td></tr><br>";
echo "<tr><td>Titulo:</td><td>".$reg['titulo']."</td><br></tr>";
echo "<tr><td>Mensaje:</td><td>".$reg['mensaje']."<td></tr><br>";
echo "<tr><td>fecha:</td><td>".$reg['fecha']."</td></tr><br>";
echo "<tr><td>Ultima respuesta:</td><td>".$reg['ultima_respuesta']."</td></table><br>";
echo "<tr><td><form action='respuestas.php' method='post'><input type='hidden' name='id' value='$id'><input type='submit' value='ver + respuestas'></form></td></tr>";}

echo "<br>";
echo "<hr>";

mysql_close($conn);
?>
<form action="insert.php" method="POST">
<input type="hidden" value=
E-mail: <input type="text" name="e_mail">
Autor:<input type="text" name="autor">
Titulo (topic): <input type="text" name="titulo">
Descripcion: <input type="text" name="mensaje">
<input type="hiddepn" value="">
<input type="submit" value="enviar">
</form>

</body>
</html>


insert.php
<?php
$servidor = 'localhost';
$usuario_mysql = 'root';
$contraseña_mysql= '';
$base_de_datos_mysql= 'miforo';

$conn = @mysql_connect($servidor, $usuario_mysql, $contraseña_mysql)
or die('Error: no se pudo conectar a la bd: '.mysql_error());

mysql_select_db(miforo, $conn)
or die('Error: no se pudo conectar a la bd: '.mysql_error());

mysql_query("insert into topicos (autor,titulo,mensaje,fecha) values
('$_REQUEST[autor]','$_REQUEST[titulo]','$_REQUEST[mensaje]','$_REQUEST[fecha]')",
$conn) or die("Problemas en el select".mysql_error());


echo "gracias por su mensaje!";
echo "<a href='index.php'>home</a>";
?>

graciasxtumsg.php

<?php
$comentario=$_POST['comentario'];
// Escribo en el archivo de opiniones lo que el usuario dijo:
$id=$_POST['id'];
$archivo=fopen ("$id.txt","a+","a") or die ("No se pudo guardar su opinion"); // Abro el archivo
fputs ($archivo,"Nombre del visitante: $_POST[nombre]"); // Escribo el nombre del visitante
fputs ($archivo,"\n"); // Dejo una linea de salto
fputs ($archivo,"E-Mail del visitante: $_POST[mail]"); // Escribo el email del visitante
fputs ($archivo,"\n"); // Dejo una linea de salto
fputs ($archivo,"Comentario: $_POST[comentario]"); // Pongo de titulo la palabra "opinion:" antes de lo que dijo el visitante.
fputs ($archivo,"\n"); // Linea de salto
fputs ($archivo,"$comentario"); // Escribo la opinion
fputs ($archivo,"\n"); // Linea de salto
fputs ($archivo,"<hr>"); // Separo una opinion de otra
fputs ($archivo,"\n"); // Y dejo otra linea de salto.
fclose ($archivo); // Cierro el archivo

echo "<h1>Gracias! por el comentario
$_POST[nombre] </h1>
"; // Damos el mensaje de exito y despedimos al visitante
echo '<a href="index.php">Regresar a la pagina principal</a>'; // Finalizamos la consulta php.
?>

respuestas.php

<?php
$servidor = 'localhost';
$usuario_mysql = 'root';
$contraseña_mysql= '';
$base_de_datos_mysql= 'miforo';

$conn = @mysql_connect($servidor, $usuario_mysql, $contraseña_mysql)
or die('Error: no se pudo conectar a la bd: '.mysql_error());

mysql_select_db(miforo, $conn)
or die('Error: no se pudo conectar a la bd: '.mysql_error());
$id=$_POST['id'];
$registros=mysql_query("select * from topicos where id='$id'",$conn) or die("Problemas en el select:".mysql_error());

if ($reg=mysql_fetch_array($registros)){

echo "mensaje de:".$reg['autor']."<br>";
echo $reg['fecha']."<br>";
echo "titulo:".$reg['titulo']."<br>";
echo "mensaje:".$reg['mensaje']."<br><br><br><br><br>";}

$fp=fopen("$id.txt","a+");
if (empty($fp)){echo "no hay comentarios";}
else { while (!feof($fp))
{
$linea=fgets($fp);
$lineasalto=nl2br($linea);
echo $lineasalto; }}
?>

<html>
<head>
</head>
<body>
<form action='graciasxtumsg.php' method='post'>
<table>
<tr>
<th>Nombre: </th><td>
<input type='text' name='nombre' />
</td>
</tr>
<tr><th>
Email: </th><td>
<input type='text' name='mail' /></td>
</tr>
<tr>
<th>
Comentario:</th><td>
<textarea name='comentario' rows='10' cols='40'></textarea></td>
</tr><tr>
<th>
</th><td><input type='submit' value='Enviar comentario-->' /></td></tr>
<input type="hidden" name=id value="<?php echo $id; ?>"></form>
</table>
</div>


<div id="footer">

<table width="780" border="0" cellspacing="0" cellpadding="0" height="15" bgcolor="#6699CC">
<tr>
<td>&nbsp;</td>

</tr>
</table>
<table width="780" border="0" cellspacing="0" cellpadding="5">
<tr>
<td>
<div align="right" class="es08p"> ... &copy;2005 www.icheckyou.com.ar ...<br>
Dise&ntilde;o del sitio Web: DiNMarc</div>
</td>

</tr>
</table>

</div>

</div>

</center>
</body>
</html>
  #2 (permalink)  
Antiguo 31/07/2011, 22:21
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: consulta

espero que lo tomes como criticas constructivas:

1- usa adecuadamente la herramienta del foro highlight para mostrar código
2- no hay una estructura o patrón de diseño modular: redundancia de código, los datos de acceso a la DB están en cada archivo
3- no hay correlación entre el layout del sitio y la información expuesta: imprimes código fuera de la estructura de un documento HTML
4- usas archivos y base de datos, ¿no es mejor decidirse por uno?
5- ¿donde está definido el modelo de datos?
6- ¿no has considerado usar un foro prefabricado: para que reinventar la rueda?
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...

Última edición por maycolalvarez; 31/07/2011 a las 22:27
  #3 (permalink)  
Antiguo 31/07/2011, 22:43
 
Fecha de Ingreso: julio-2011
Mensajes: 29
Antigüedad: 12 años, 9 meses
Puntos: 1
Respuesta: consulta

Cita:
Iniciado por maycolalvarez Ver Mensaje
3- no hay correlación entre el layout del sitio y la información expuesta: imprimes código fuera de la estructura de un documento HTML
5- ¿donde está definido el modelo de datos?
el foro prefabricado me lo baje (phpbb3), lo mire archivo x archivo y no entendi un cacahuate, y no te me enojes q soy un bebe en la programacion. te agradezco por leerlo y te haria una pregunta: me gustaria saber q se entiende por estas dos pregs que cite. saludos!
  #4 (permalink)  
Antiguo 31/07/2011, 22:53
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: consulta

Cita:
Iniciado por el_entrepreneur Ver Mensaje
el foro prefabricado me lo baje (phpbb3), lo mire archivo x archivo y no entendi un cacahuate, y no te me enojes q soy un bebe en la programacion. te agradezco por leerlo y te haria una pregunta: me gustaria saber q se entiende por estas dos pregs que cite. saludos!
tranquilo, que en ningún momento escribí con enojo , pero quise ser lo más objetivo posible

con respecto a tu pregunta:

3- en el archivo respuestas.php imprimes el contenido fuera de la estructura del HTML, cosa que no pasa en index.php

cada archivo consta de un layout propio, imagina que quieras cambiarlo ¿tienes que repetir el mismo código para todos?: no digo que llegues a un patrón MVC, pero al menos puedes separar esas partes y añadirlas con include() dinámicamente, así como lo debes de hacer en el caso de los datos de conexión

5- me refiero a tu estructura de base de datos, básicamente las tablas y campos que la componen, además veo que usas archivos por otra parte, aunque no sean parte de la base de datos forman parte de tu "modelo de datos del negocio", porque en ellos se almacenan datos

puede que tengas otros archivos como configuración, pero ellos no almacenan datos correspondentes a tu negocio, es decir a lo que está destinada tu aplicación: un foro, en ese caso dichos archivos no son parte de tu modelo de datos.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...

Etiquetas: html, mysql, registro, sql, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:29.