Foros del Web » Programando para Internet » PHP »

problema de nuevo con foro en php

Estas en el tema de problema de nuevo con foro en php en el foro de PHP en Foros del Web. ya adelante algo del foro gracias a un usuario que me dio unos consejos aunque tuve que darle mas retoques a mi código ahora cuando ...
  #1 (permalink)  
Antiguo 30/01/2013, 22:48
(Desactivado)
 
Fecha de Ingreso: mayo-2012
Mensajes: 58
Antigüedad: 11 años, 11 meses
Puntos: 0
problema de nuevo con foro en php

ya adelante algo del foro gracias a un usuario que me dio unos consejos aunque tuve que darle mas retoques a mi código ahora cuando trato de enviar una peticion me da error dice intento de hacking

este lo guardo como post.php

Código:
<?php session_start();
require("vars.php");
require("functions.php");
function textFilter($str) {
global $badWordFilter;
if ($badWordFilter) {
$str = htmlspecialchars( $str );
$result = mysql_query( "SELECT word FROM
badwords" ) or
error( mysql_error() );
while($row = mysql_fetch_array( $result ))
$str = eregi_replace( $row['word'], "", $str );
return $str;
}
}
if(($_SESSION['security_code'] == $_POST['security_code']) && (! empty($_SESSION['security_code'])) )
{ dbConnect();
$ip = $_SERVER['REMOTE_ADDR'];
$ip = addslashes(textFilter($ip));
$eip = explode(".", $ip);
if( count($eip) != 4) error("Intento de
hacking!");
$autor = $_POST["name"];
$mail = $_POST["email"];
$tema = $_POST["topic"];
$mensaje = $_POST["msg"];
$parent = $_POST["pid"];
$mensaje = nl2br($mensaje);
if(!empty($autor) and !empty($mail) and
!empty($tema)) {
$autor = trim($autor);
$mail = trim($mail);
$tema = trim($tema);
$mensaje = trim($mensaje);
$tema = htmlentities($tema);
$tema = addslashes($tema);
$autor = htmlentities($autor);
$autor = addslashes($autor);
$mail = addslashes($mail);
$mensaje = addslashes($mensaje);
$tema = ereg_replace( "<", "<", $tema );
$autor = ereg_replace( "<", "<", $autor );
$mail = ereg_replace( "<", "<", $mail );
$tema = ereg_replace( ">", ">", $tema );
$autor = ereg_replace( ">", ">", $autor );
$mail = ereg_replace( ">", ">", $mail );
$autor = strip_tags($autor);
$mail = strip_tags($mail);
$tema = strip_tags($tema);
$mensaje = strip_tags($mensaje, "<br />");
} 
else
{
if(empty($autor)) $autor = "Anonimo";
if(empty($mail)) $mail = "[email protected]";
if(empty($tema)) $tema = "Tema Nuevo";
}
if(empty($mensaje)) error("Es que no quieres
escribir nada?");
else $mensaje = textFilter($mensaje);
if(!eregi( "[a-z0-9].", $tema )) error( "Que
diablos pones como tema?");
else $tema = textFilter($tema);
if(!eregi( "[a-z0-9].", $autor )) error( "Nombre
invalido, pon algo coherente");
else $autor = textFilter($autor);
if(!eregi( "^([._a-z0-9-]+[._a-z0-9-]*)
@(([a-z0-9-]+\.)*([a-z0-9-]+)(\.[a- z]{2,3})?)$",
$mail)) error( "Pon un correo valido, o si no,deja el que esta" );
else $mail = textFilter($mail);
$sql = "INSERT INTO forum (pid, user, mail,
asunto, texto, fecha, ip) ";
$sql.= "VALUES ('$parent','$autor','$mail',
'$tema','$mensaje', NOW(), '$ip')";
$rs = mysql_query($sql) or die("Error al grabar
un mensaje: ".mysql_error);
Header("Location: foro.php");
unset($_SESSION['security_code']);
} else {
Header("Location: foro.php");
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
</body>
</html>
este como foro.php
Código:
<?php session_start();?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>
<body>
<form method=post action=post.php>
<input type=hidden name=pid value=0>
<a name=postnew>
<table border=0 cellpadding=0 cellspacing=2 width=430>
<tr>
<td width=80 height=18><b>Asunto:</b></td>
<td width=430 height=18><input type=text name=topic size = 40 maxlength=50></td>
</tr>
<tr>
<td width=80 height=18><b>Nombre:</b></td>
<td width=430 height=18><input type=text name=name size=20 maxlength=20 value='Anonimo'></td>
</tr>
<tr>
<td width=80 height=18><b>E-mail:</b></td>
<td width=430 height=18><input type=text name=email size=40 maxlength=40 value='anonimo@anonimo.
com'></td>
</tr>
<tr>
<td width=80 valign='top'><b>Mensaje:</b><br><input type=submit value="Enviar"></td>
<td width=430><textarea style='width:100%;' name=msg rows=10 maxlength=2000></textarea></td>
</tr>
<tr><center><td><p align=><img src="CaptchaSe
curityImages.php" /></p></td></center></tr>
<tr>
<td width=80 height=18></td>
<td width=430 height=18 align="center"><b>Introduzca el codigo de seguridad:&nbsp;</b><input
id="security_code" name="security_code" type="text" size=6/></td>
</tr>
</table>
</form>
<?php
require("vars.php");
require("functions.php");
dbConnect();
global $maxThread;
$page = $_GET["page"];
if ( !$page ) $page = 1;
$rst = mysql_query("SELECT COUNT(*) FROM forum WHERE pid=0;") or
die( mysql_error() );
$row = mysql_fetch_row( $rst );
$totalRows = $row[0];
$pages = intval($totalRows / $maxThread) + 1;
echo "<p align=left><b>Pagina:</b>&nbsp;";
for ($i = 1; $i <= $pages; $i++) {
if ($i == $page) echo "<b>[".$i."]</b>&nbsp;";
else echo "<a href=\"./foro.php?page=".$i."\">[".$i."]</
a>&nbsp;";
}
echo "<a href=#postnew>< Nuevo mensaje ></a>";
echo "<hr size=1 color=#01a9c0 width=100%>";
findposts(0, 0, $page);
?>
</body>
</html>
este como reply.php

Código:
<?php session_start();?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>
<body>
<form method=post action=post.php>
<input type=hidden name=pid value=<?php echo $row["id"] ?>>
<table border=0 cellpadding=0 cellspacing=2 width=430>
<tr>
<td width=80 height=18><b>Asunto:</b></td>
<td width=430 height=18><input type=text
name=topic size=40 maxlength=50
value="RE: <?php echo $row["asunto"]; ?>">
</tr>
<tr>
<td width=80 height=18><b>Nombre:</b></td>
<td width=430 height=18><input type=text name=name size=20
maxlength=20 value='Anonimo'></td>
</tr>
<tr>
<td width=80 height=18><b>E-mail:</b></td>
<td width=430 height=18><input type=text name=email size=40
maxlength=40 value='[email protected]'></td>
</tr>
<tr>
<td width=80 valign='top'><b>Mensaje:</b><br>
<input type=submit value="Enviar"></td>
<td width=500><textarea style='height:auto;'
name=msg rows=10 cols=46 maxlength=2000>
</textarea></td>
</tr>
<tr>
<td width=80 height=18></td>
<td width=430 height=18><input type=hidden
name=getmail value=no></td>
</tr>
<tr>
<td width=80 height=18></td>
<td width=430 height=18 align="center">
<b>Introduzca el codigo de seguridad:&nbsp;
</b><input id="security_code" name="security_code"
type="text" size=6/></td>
</tr>
</table>
</form>
<?php
require(“functions.php”);
$id = $_GET["id"];
dbConnect();
$result = mysql_query("SELECT * FROM forum WHERE id='$id'", $con);
if(mysql_num_rows($result) == 1) {
$row = mysql_fetch_assoc($result);
echo "<table border=0 cellpadding=0 cellspacing=0 width=80%>\n";
echo "<tr><td><b>DE:</b> ".$row["user"]. "</td></tr>\n";
echo "<tr><td><b>ASUNTO:</b> ".$row["asunto"]. "</td></tr></table>\n";
echo "<p><b>MENSAJE:</b></p>\n";
echo "<p align=\"center\"><pre>";
echo $row["texto"];
echo "</pre></p>\n";
}
?>
<H5>Respuestas:</H5>
<?php
if (!findposts($id, 0, 1)) echo "<H6> Vacio </H6>\n";
?>
<?php
require(“vars.php”);
require(“functions.php”);
function findposts($PID, $sp = 0, $pagina) {
global $maxThread;
dbConnect();
$n = 0;
$n1 = ($pagina - 1) * $maxThread;
$n2 = $maxThread;
$res = mysql_query("SELECT * FROM forum WHERE pid='$PID'
ORDER BY id DESC LIMIT $n1,$n2", $con);
$num = mysql_num_rows($res);
if (!$num) {
mysql_free_result($res);
return FALSE;
}
for ($num--; $num >= 0; $num--) {
$tam = $sp * 8;
echo "<p>";
for($i = 0; $i < $tam; $i++) echo "&nbsp;";
$row = mysql_fetch_array($res);

$n += 1;
$ttime = date("F j, Y, g: i", $row["fecha"]);
echo $n.". <a href=\"reply.php?id=".$row["id"].
"\">".$row["asunto"]."</a> [De: ".$row["user"]. "],
<small>(".$row["fecha"].")</small></p>\n";
findposts($row["id"], $sp + 1, 1);
}
mysql_free_result($res);
return TRUE;
}
?>
</body>
</html>]
este como vars.php

Código:
<?php session_start();?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>
<body>
<!--Listado uno-->
<!--[vars.php]-->
<?php
$dbHost = "localhost"; // Servidor MySQL
$dbName = "foro"; // Base de datos
$dbUser = "root"; // Usuario
$dbPasswd = ""; // Contraseña
$badWordFilter = 0; // ¿Filtrado de palabras?
$banIP = 1; // ¿Banear IP's?
$emailAdmin = 1; // ¿Enviar posts?
$adminEmail = "[email protected]"; // Email administrador
$maxThread = "20"; // Posts por página
?>
<!--[fin vars.php]-->
</body>
</html>
y este como functions.php

Código:
<?php session_start();?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>
<body>
<!--listado dos-->
<!--[functions.php]-->
<?php
require("vars.php");
function dbConnect() {
global $dbHost, $dbUser, $dbPasswd, $dbName;
@mysql_connect("localhost","root","","foro")
or error(mysql_error());
mysql_select_db($dbName);
}
function error( $error ) {
echo "<html><head></head><body>";
echo " <center><h4><font color=#FF0000>
Error:$error</font></h4></center>
<p align=center>
<a href=javascript:history.back();
>Regresar</a></p>";
echo "</body></html>";
exit;
}
?>
<!--[fin functions.php]-->
</body>
</html>
y mas abajito sin enviar peticion me sale esto

Cita:
Fatal error: Call to undefined function findposts()
  #2 (permalink)  
Antiguo 31/01/2013, 07:09
 
Fecha de Ingreso: agosto-2012
Mensajes: 12
Antigüedad: 11 años, 8 meses
Puntos: 4
Respuesta: problema de nuevo con foro en php

revisa bien tus archivos por que en ninguno de los que destacaste aqui vi la función "findpost()" solo vi donde la ocupas que es casi al final de reply.php

saludos !

Etiquetas: foro, mysql, programacion
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 15:49.