Foros del Web » Programando para Internet » PHP »

algunos errores!!!

Estas en el tema de algunos errores!!! en el foro de PHP en Foros del Web. que tal, tengo algunas dificultades con el siguiente script, este me permite agregar informacion a una db. <? include("../config.php") ; if($enviar) $fecha = time() ; ...
  #1 (permalink)  
Antiguo 14/12/2004, 03:35
 
Fecha de Ingreso: noviembre-2002
Mensajes: 96
Antigüedad: 15 años
Puntos: 0
algunos errores!!!

que tal, tengo algunas dificultades con el siguiente script, este me permite agregar informacion a una db.

<?
include("../config.php") ;
if($enviar)
$fecha = time() ;
$usuario = $_POST['usuario'];
$titulo = $_POST['titulo'];
$noticia = $_POST['noticia'];
mysql_query("insert INTO tabla (fecha,usuario,titulo,noticia) values ('$fecha','$usuario','$titulo','$noticia')") ;
echo "noticia enviada";
?>
------------------------ aqui el formulario -------------------------
asi como esta agrega, pero se ve en forma permanente
--> echo "noticia enviada";
si yo actualizara la pagina, vuelve a "grabar" la misma informacion
y si aun estando vacio, actualizaria, grabaria en blanco, pero grabaria en fin.
probe en cerrar de esta forma la coneccion
mysql_close($conectar) ;
pero recibo este mensaje en pantalla
Warning: mysql_close(): supplied argument is not a valid MySQL-Link resource in on line 11.
quizas no sea la forma...
hable con el soporte del hosting, y me comento algo hacerca de la version del php (?)
antiguamente y en otro hosting, tenia este codigo que pego abajo y que es el original que funcionaba a la perfeccion

<?
if($enviar) {
include("../config.php") ;
$fecha = time() ;
mysql_query("insert INTO noticias (fecha,usuario,titulo,noticia) values ('$fecha','$usuario','$titulo','$noticia')") ;
echo " se a enviado con éxito." ;
mysql_close($conectar) ;
}
?>
agradecere a quien me pueda dar una mano con esto.
__________________
el chute
  #2 (permalink)  
Antiguo 14/12/2004, 03:43
 
Fecha de Ingreso: septiembre-2004
Ubicación: Viviendo en Manresa(Barcelona)
Mensajes: 230
Antigüedad: 13 años, 2 meses
Puntos: 0
Y si haces un header dirigido a otra pagina? Asi donde alli muestres solo la informacion sin tener el codigo de actualizar? Preubalo.
  #3 (permalink)  
Antiguo 14/12/2004, 03:46
 
Fecha de Ingreso: noviembre-2002
Mensajes: 96
Antigüedad: 15 años
Puntos: 0
mira, probe de remplazar echo por un heard, mas o menos asi
Header( "Location: " . "noticia_agregada.php");
pero me da tambien error (no recuerdo cual exactamente )
echo deberia funcionar como siempre o no ?
__________________
el chute
  #4 (permalink)  
Antiguo 14/12/2004, 03:51
 
Fecha de Ingreso: septiembre-2004
Ubicación: Viviendo en Manresa(Barcelona)
Mensajes: 230
Antigüedad: 13 años, 2 meses
Puntos: 0
Ok, luego en la pagina que redireccionas, tendrias que volver a acceder a tu bbdd y recojer tu nueva informacion y luego hacer el echo, ya que al canviar de pagina, pierdes la informacion.
  #5 (permalink)  
Antiguo 14/12/2004, 03:56
 
Fecha de Ingreso: noviembre-2002
Mensajes: 96
Antigüedad: 15 años
Puntos: 0
Warning: Cannot modify header information - headers already sent by (output started at /webcp/docs/webs/xxxxxxxxxxxx) in /webcp/docs/webs/mipagina.php on line 10
noticia enviada

por supuesto que la line 10 se refiere al header
__________________
el chute
  #6 (permalink)  
Antiguo 14/12/2004, 04:25
 
Fecha de Ingreso: noviembre-2002
Mensajes: 96
Antigüedad: 15 años
Puntos: 0
alguna otra sugerencia ?
__________________
el chute
  #7 (permalink)  
Antiguo 14/12/2004, 04:35
 
Fecha de Ingreso: septiembre-2004
Ubicación: Viviendo en Manresa(Barcelona)
Mensajes: 230
Antigüedad: 13 años, 2 meses
Puntos: 0
Tambien, en vez de poner un header, poner un link dond ponga por ejemplo "Ver Resultado" que linke a otra pagina y en esa haces lo anterior qu he dicho, es decir, mostrar la nueva informacion si hacer un header.
  #8 (permalink)  
Antiguo 14/12/2004, 04:37
 
Fecha de Ingreso: noviembre-2002
Mensajes: 96
Antigüedad: 15 años
Puntos: 0
te agradesco, pero creo que lo logico seria hacer funcionar ese codigo como el php manda!!!
__________________
el chute
  #9 (permalink)  
Antiguo 14/12/2004, 04:42
 
Fecha de Ingreso: septiembre-2004
Ubicación: Viviendo en Manresa(Barcelona)
Mensajes: 230
Antigüedad: 13 años, 2 meses
Puntos: 0
Pero a ver exactamente que es lo que quieres hacer?Que seguramente te entendi mal
  #10 (permalink)  
Antiguo 14/12/2004, 04:46
 
Fecha de Ingreso: noviembre-2002
Mensajes: 96
Antigüedad: 15 años
Puntos: 0
mira, es simple
modificar o reformar (como prefieras ) el 1° codigo que pegue, para que agrege informacion a la db y a continuacion cierre la coneccion con la misma (db) de esa forma, si altualizara (F5) no volveria a grabar nuevamente la misma informacion
__________________
el chute
  #11 (permalink)  
Antiguo 14/12/2004, 05:17
 
Fecha de Ingreso: septiembre-2004
Ubicación: Viviendo en Manresa(Barcelona)
Mensajes: 230
Antigüedad: 13 años, 2 meses
Puntos: 0
Pues antes de insetar comprueba que ese campo no este introducido en la bbdd y si lo esta (caso de que recargen la pagina) muestra un mensaje de error. Con un simple if y else se podria hacer.
  #12 (permalink)  
Antiguo 14/12/2004, 05:19
 
Fecha de Ingreso: noviembre-2002
Mensajes: 96
Antigüedad: 15 años
Puntos: 0
ok, ¿como? podrias medificar mi codigo ?
__________________
el chute
  #13 (permalink)  
Antiguo 14/12/2004, 05:24
 
Fecha de Ingreso: septiembre-2004
Ubicación: Viviendo en Manresa(Barcelona)
Mensajes: 230
Antigüedad: 13 años, 2 meses
Puntos: 0
Código PHP:
<?
include("../config.php") ;
if(
$enviar
$fecha time() ;
$usuario $_POST['usuario'];
$titulo $_POST['titulo'];
$noticia $_POST['noticia'];
//aqui accedes a tu base de datos y haces un select de algun campo para verificar si existe y luego por ejemplo:
if($titulo!=$row['titulo']){ //donde row['titulo'] es lo que cojes d la bbdd
mysql_query("insert INTO tabla (fecha,usuario,titulo,noticia) values ('$fecha','$usuario','$titulo','$noticia')") ;
echo 
"noticia enviada";
}else{
echo 
"Ese titulo/noticia/etc... ya existe";
?>
Es decir cojes un campo o varios campos de tu bbdd y los comparar con los recojidos por el formulario y si en caso de que no existen los inserta, pero si ya existen das el mensaje de error.
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 00:36.