Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] error al actualizar pagina libro visitas

Estas en el tema de error al actualizar pagina libro visitas en el foro de PHP en Foros del Web. Serian tan amable de señalarme por que cuando actualizas o recargas la pagina vuelve a mandar el ultimo mensaje y como corregirlo porfavor Código: CREATE ...
  #1 (permalink)  
Antiguo 21/01/2013, 17:51
Avatar de CMushroom  
Fecha de Ingreso: diciembre-2011
Ubicación: Morelos
Mensajes: 99
Antigüedad: 12 años, 10 meses
Puntos: 1
Pregunta error al actualizar pagina libro visitas

Serian tan amable de señalarme por que cuando actualizas o recargas la pagina vuelve a mandar el ultimo mensaje y como corregirlo porfavor

Código:
CREATE TABLE `firmar` (
`firma_ID` int(11) NOT NULL auto_increment,
`usuario` varchar(25) NOT NULL,
`firma` text NOT NULL,
PRIMARY KEY (`firma_ID`)
) ENGINE=MyISAM ;
Código PHP:
<?php
$link 
mysql_connect('localhost''root''');

if(!
$link
    {
    die(
"Error al intentar conectar: ".mysql_error());
    }
$db_link mysql_select_db('libro_visitas'$link);

if(!
$db_link
    {
    die(
"Error al intentar seleccionar la base de datos"mysql_error());
    }

if(isset(
$_POST['enviar']) && $_POST['enviar'] == 'Enviar')
    {
    if(!empty(
$_POST['usuario']) && !empty($_POST['firma']))
        {
        
$usuario htmlentities(trim($_POST['usuario']));
        
$firma htmlentities(trim($_POST['firma']));

        
$sqlInsert mysql_query("INSERT INTO firmar (usuario, firma)
        VALUES ('$usuario', '$firma')"
$link)
        or die(
mysql_error());
        }
    else
        {
        echo 
"Debe llenar todos los campos";
        }
    }

$sqlQuery mysql_query("SELECT * FROM firmar"$link)
or die(
mysql_error());
$totalFirmas mysql_num_rows($sqlQuery);

if(
$totalFirmas == 0)
    {
    echo 
"Nadie ha firmado";
    }

else
    {
    while(
$row mysql_fetch_array($sqlQuery))
        {
        echo 
"<p><b>$row[usuario]</b> dijo:<br />"nl2br($row['firma']) ."</p><hr />";
        }
    }
?>

<form name="html" action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
    <p>
    Usuario:<br />
    <input type="text" name="usuario" />
    </p>
    <p>
    Firma:<br />
    <textarea name="firma" cols="35" rows="7"></textarea>
    </p>
    <input type="submit" name="enviar" value="Enviar" />
</form>
  #2 (permalink)  
Antiguo 21/01/2013, 20:08
Avatar de jcMouse  
Fecha de Ingreso: noviembre-2009
Ubicación: Bolivia
Mensajes: 116
Antigüedad: 15 años
Puntos: 9
Respuesta: error al actualizar pagina libro visitas

o.O

porque cuando "actualizas o recargas la pagina" se vuelve a ejecutar el POST

solucion

1. puedes utilizar AJAX
2. puedes utilizar un captcha para evitar el spam


se malo
__________________
Problem?
Estoy aquí
Foro Code Army
  #3 (permalink)  
Antiguo 21/01/2013, 20:13
Avatar de CMushroom  
Fecha de Ingreso: diciembre-2011
Ubicación: Morelos
Mensajes: 99
Antigüedad: 12 años, 10 meses
Puntos: 1
Pregunta Respuesta: error al actualizar pagina libro visitas

oye te conozco tu tienes una pagina de bolivia con muchisimo de programacion en java no?¿ me a servido mucho .Bueno gracias entonces es la unica forma de componer esto o quiza deveria comprobar que no sea igual el mensaje antes de ejecutar el insert
  #4 (permalink)  
Antiguo 21/01/2013, 20:42
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: error al actualizar pagina libro visitas

Si usas un:

Código PHP:
Ver original
  1. header('location: pagina.php');

Después de insertar, no te volverá a insertar después de actualizar la página.

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #5 (permalink)  
Antiguo 22/01/2013, 14:07
Avatar de CMushroom  
Fecha de Ingreso: diciembre-2011
Ubicación: Morelos
Mensajes: 99
Antigüedad: 12 años, 10 meses
Puntos: 1
Respuesta: error al actualizar pagina libro visitas

Gracias siempre se aprende algo nuevo
  #6 (permalink)  
Antiguo 22/01/2013, 15:44
Avatar de CMushroom  
Fecha de Ingreso: diciembre-2011
Ubicación: Morelos
Mensajes: 99
Antigüedad: 12 años, 10 meses
Puntos: 1
Pregunta Respuesta: error al actualizar pagina libro visitas

Cita:
Iniciado por andresdzphp Ver Mensaje
Si usas un:

Código PHP:
Ver original
  1. header('location: pagina.php');

Después de insertar, no te volverá a insertar después de actualizar la página.

Saludos.
solo una pregunta mas funciono perfecto lo del header pero encontre otro error y no me explico por que.Cuando escribes muchos caracteres en una linea te sales del borde de la pantalla. ejemplo
que nesesito implementar o donde esta el error de logica o programacion
  #7 (permalink)  
Antiguo 22/01/2013, 15:50
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: error al actualizar pagina libro visitas

Puedes usar wordwrap() es una función diseñada precisamente para eso.

Saludos.
  #8 (permalink)  
Antiguo 22/01/2013, 16:25
Avatar de CMushroom  
Fecha de Ingreso: diciembre-2011
Ubicación: Morelos
Mensajes: 99
Antigüedad: 12 años, 10 meses
Puntos: 1
Respuesta: error al actualizar pagina libro visitas

Perfecto bro quedo corregido lo de el problema de que repetia el post cada recarga o pulsando enviar gracias a andresdzphp y gracias a ti gatorV lo del desborde de pagina al hacer mensajes largos gracias. Asi quedo finalmente listo para el css lo maximo el foro.

<?php
$link = mysql_connect('localhost', 'root', '');

$mes = array("Domingo","Lunes","Martes","Miercoles","Juev es","Viernes","Sábado");
$numeroDia = date("d");
$dia = array("","Enero","Febrero","Marzo","Abril","Mayo", "Junio","Julio","Agosto","Septiembre","Octubre","N oviembre","Diciembre");
$año = date("Y");
$hora = date("h").":".date("i");

$fechayhora = $mes[date('w')]." ". $numeroDia." ". $dia[date('n')]." ".$año." ".$hora;

if(!$link)
{
die("Error al intentar conectar: ".mysql_error());
}
$db_link = mysql_select_db('libro_visitas', $link);

if(!$db_link)
{
die("Error al intentar seleccionar la base de datos". mysql_error());
}

if(isset($_POST['enviar']) && $_POST['enviar'] == 'Enviar')
{
if(!empty($_POST['usuario']) && !empty($_POST['firma']))
{
$usuario = htmlentities(trim($_POST['usuario']));
$firma = htmlentities(trim($_POST['firma']));
$sqlInsert = mysql_query("INSERT INTO firmar (usuario, firma, fecha) VALUES ('$usuario', '$firma', '$fechayhora')", $link)
or die(mysql_error());
header('location: librovisitas.php');
}
else
{
echo "Debe llenar todos los campos";
}
}

$sqlQuery = mysql_query("SELECT * FROM firmar", $link)or die(mysql_error());
$totalFirmas = mysql_num_rows($sqlQuery);

if($totalFirmas == 0)
{
echo "Nadie ha firmado";
}

else
{
while($row = mysql_fetch_array($sqlQuery))
{
$newtext = wordwrap($row['firma'], 8, "\n", true);
echo"<p><b>$row[fecha]</b><br /><b>".nl2br($row['usuario'])."</b> dijo:<br />".$newtext."</p><hr />";
}
}
?>

<form name="html" action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
<p>
Usuario:<br />
<input type="text" name="usuario" />
</p>
<p>
Firma:<br />
<textarea name="firma" cols="35" rows="7"></textarea>
</p>
<input type="submit" name="enviar" value="Enviar" />
</form>

Última edición por CMushroom; 22/01/2013 a las 16:37

Etiquetas: html, libro, mysql, select, sql
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 12:57.