Foros del Web » Programando para Internet » PHP »

Problema con el bucle if de gestion de errores

Estas en el tema de Problema con el bucle if de gestion de errores en el foro de PHP en Foros del Web. Estoy haciendo un formulario simple de envio de noticia a mi base de datos. Lo he extradido de webtaller. Todo parece ir correctamente pero me ...
  #1 (permalink)  
Antiguo 30/06/2006, 00:02
Avatar de tomerqueves  
Fecha de Ingreso: marzo-2005
Ubicación: algeciras (cadiz)
Mensajes: 200
Antigüedad: 19 años
Puntos: 7
Problema con el bucle if de gestion de errores

Estoy haciendo un formulario simple de envio de noticia a mi base de datos. Lo he extradido de webtaller. Todo parece ir correctamente pero me da error. En apariecina es un error muy simple y profundamente puede que lo sea más todavía, pero si son tan amables de evaluar cual es el fallo quizás no les sea muy dificil ayudarme con una corrección.

He creado una base de datos llamada webdb con una tabla noticias que contiene los campos titulo y contenido

Son dos archivos cuyo código:
form.html
Código:
<html><body>

<form name="webtaller" action="insertar_datos.php" method="post">
Título: <input type="text" name="titulo"><br>
Contenido: <textarea name="contenido"></textarea><br>
<input type="submit" value="Envia">
</form>
</body></html>
insertar_datos.php
Código:
<?php

// Primero comprobamos que ningún campo esté vacío y que todos los campos existan.


if(isset($_POST['titulo']) && !empty($_POST['titulo']) &&
isset($_POST['contenido']) && !empty($_POST['contenido'])) {



// Si entramos es que todo se ha realizado correctamente



$link = mysql_connect("localhost","ocultoparaelejemplo","ocultoparaelejemplo");
mysql_select_db("webdb",$link);

// Con esta sentencia SQL insertaremos los datos en la base de datos



mysql_query("INSERT INTO noticias (titulo,contenido)
VALUES ('{$_POST['titulo']}','{$_POST['contenido']}')",$link);

// Ahora comprobaremos que todo ha ido correctamente



$my_error = mysql_error($link);

if(!empty($my_error){

echo "Ha habido un error al insertar los valores. $my_error";
 } else {

echo "Los datos han sido introducidos satisfactoriamente";

}

} else {

echo "Error, no ha introducido todos los datos";

}else{
	echo"que nada que nada";



?>

Y al final al presionar submit me arroja el siguiente error:
Parse error: parse error, unexpected '{' in C:\Archivos de programa\Apache Group\Apache2\htdocs\insertar_datos.php on line 31.


Comprendo que pueda ser un problema con la llave. Me pregunto si no faltará un elseif en lugar de un else.
Yo he hecho varias pruebas: duplicar las llaves, poner ";", incluso poner el contenido del echo entre parentesis ademas de comillas. En conclusion sigo siempre teniendo el mismo error u otro peor. Agradecería que me ayudaran pues me está costando mucho conectar ningun script a mi base de datos, así que me harían un gran favor.
Gracias.
__________________
A todos los moderadores y admiinistradores. Si algun día me banean, por favor devolverme la carita de mi avatar
  #2 (permalink)  
Antiguo 30/06/2006, 00:18
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
Buenos dias,
Código PHP:
// Primero comprobamos que ningún campo esté vacío y que todos los campos existan.
if(isset($_POST['titulo']) && !empty($_POST['titulo']) && isset($_POST['contenido']) && !empty($_POST['contenido'])) {
// Si entramos es que todo se ha realizado correctamente
$link mysql_connect("localhost","ocultoparaelejemplo","ocultoparaelejemplo");
mysql_select_db("webdb",$link);
// Con esta sentencia SQL insertaremos los datos en la base de datos
mysql_query("INSERT INTO noticias (titulo,contenido)
VALUES ('{$_POST['titulo']}','{$_POST['contenido']}')"
,$link);
// Ahora comprobaremos que todo ha ido correctamente
$my_error mysql_error($link);
    if(!empty(
$my_error){
    echo 
"Ha habido un error al insertar los valores. $my_error";
    } else {
    echo 
"Los datos han sido introducidos satisfactoriamente";
    }
} else {
echo 
"Error, no ha introducido todos los datos";

el ultimo else q tienes no ser porque lo tienes puesto. en todo caso esto ya te funcionaria... y si el ultimo else sirve para algo, te faltaria cerrar el '}'
pero poner dos else en el mismo bucle... mejor un else if y depuras mas el error!

y otra cosa q he visto ahora... tu sentencia sql... te funciona correctamente?
Código PHP:
mysql_query("INSERT INTO noticias (titulo,contenido)
VALUES ('{$_POST['titulo']}','{$_POST['contenido']}')"
,$link); 
Código PHP:
$titulo=$_POST['titulo'];
$contenido=$_POST['contenido'];
mysql_query("INSERT INTO noticias (titulo,contenido)
VALUES ('$titulo','$contenido')"
,$link); 
Saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier

Última edición por sergi_climent; 30/06/2006 a las 00:30
  #3 (permalink)  
Antiguo 30/06/2006, 00:34
Avatar de tomerqueves  
Fecha de Ingreso: marzo-2005
Ubicación: algeciras (cadiz)
Mensajes: 200
Antigüedad: 19 años
Puntos: 7
Lo siento pero me sigue dando exactamente el mismo error. Respecto a la sentencia sql... he tenido en cuenta la aportación y más o menos llego a entender el significado de la modificación pero el error sigue siendo el mismo:

Parse error: parse error, unexpected '{' in C:\Archivos de programa\Apache Group\Apache2\htdocs\insertar_datos.php on line 14

Perdonad porque aparezcan cosas raras en mi código; el ultimo else es verdad que no sirve para nada. No lo tengan en cuenta porque ya lo he eliminado, osea el de "nada que nada"

Gracias de todos modos por la respuesta
__________________
A todos los moderadores y admiinistradores. Si algun día me banean, por favor devolverme la carita de mi avatar

Última edición por tomerqueves; 30/06/2006 a las 00:46
  #4 (permalink)  
Antiguo 30/06/2006, 00:51
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
tambien falta un parentesis en este if
Código PHP:
if(!empty($my_error)){ 
    echo 
"Ha habido un error al insertar los valores. $my_error"
    } else { 
    echo 
"Los datos han sido introducidos satisfactoriamente"
    } 
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #5 (permalink)  
Antiguo 30/06/2006, 00:57
Avatar de tomerqueves  
Fecha de Ingreso: marzo-2005
Ubicación: algeciras (cadiz)
Mensajes: 200
Antigüedad: 19 años
Puntos: 7
Vaya sergi, me siento un poco avergonzado de mi incapacidad para encontrar errores. Es verdad, el problema era ese parentesis.
Se ha solucionado el problema, gracias.
__________________
A todos los moderadores y admiinistradores. Si algun día me banean, por favor devolverme la carita de mi avatar
  #6 (permalink)  
Antiguo 30/06/2006, 01:11
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
lo q hago yo para evitar esa clase d errores, es cuando abro al corxete, parentesis, llave, ya directamente lo cierro y luego escribo la sentecia q quiero en el medio...si el codigo tiene muchas llaves... lo q hago es ponerle comentarios al lado, diciendome q es lo q cierran!
siempre te puede ir bien!
Saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
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 18:24.