Foros del Web » Programando para Internet » PHP »

Error en el formulario de resultados

Estas en el tema de Error en el formulario de resultados en el foro de PHP en Foros del Web. Hola buenas :) He metido un Script de resultado de formularios en la carpeta www de mi EasyPHP pero tras varios intentos y pruebas siempre ...
  #1 (permalink)  
Antiguo 10/03/2005, 17:25
 
Fecha de Ingreso: diciembre-2002
Mensajes: 132
Antigüedad: 15 años
Puntos: 0
Error en el formulario de resultados

Hola buenas :)
He metido un Script de resultado de formularios en la carpeta www de mi EasyPHP pero tras varios intentos y pruebas siempre me da error mostrando en http://localhost lo siguiente:

Parse error: parse error in c:\archivos de programa\easyphp1-8\www\form_results.php3 on line 9

El script es el siguiente:

<html>
<head>
<title>Resultados del formulario</title>
</head>
<body>
<h2>Abajo están los resultados del envío del formulario</h2>
<?php
print("<p>Nombre: <b>$first_name</b>\n);
print("<br>Apellidos: <b>$last_name</b>\n);
print("<br>Dirección: <b>$address</b>\n);
print("<br>Ciudad: <b>$city</b>\n);
print("<br>Estado: <b>$state</b>\n);
print("<br>Código Postal: <b>$zip</b>\n);
print("<br>Teléfono: <b>$home_phone</b>\n);
?>
</body>
</html>


NO encuentro el error en el código, ¿alguien sabe que puede ser?.
Un saludo.
:)
  #2 (permalink)  
Antiguo 10/03/2005, 18:20
Avatar de erichfrom  
Fecha de Ingreso: octubre-2004
Mensajes: 147
Antigüedad: 13 años, 1 mes
Puntos: 1
Lo que sucede es que no se utiliza print
intenta con el codigo siguiente estoy seguro que va a funcionar, en caso de
que no envies lo datos con POST entonces cambia por GET

<html>
<head>
<title>Resultados del formulario</title>
</head>
<body>
<h2>Abajo están los resultados del envío del formulario</h2>
<p>Nombre: <b><?php echo $_POST[' $first_name'] ?></b>
<br>Apellidos: <b><?php echo $_POST[' $last_name'] ?></b>
<br>Dirección: <b><?php echo $_POST[' $address'] ?></b>
<br>Ciudad: <b><?php echo $_POST[' $city'] ?></b>
<br>Estado: <b><?php echo $_POST[' $state'] ?></b>
<br>Código Postal: <b><?php echo $_POST[' $zip'] ?></b>
<br>Teléfono: <b><?php echo $_POST[' $home_phone'] ?></b>
</body>
</html>
  #3 (permalink)  
Antiguo 10/03/2005, 18:27
Avatar de jmn2k1  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires...
Mensajes: 489
Antigüedad: 16 años, 1 mes
Puntos: 2
No cerraste las comillas que abriste en el print....

Agregado: Je...Te me adelantaste... esa seria la forma mas correcta de hacerlo, pero es bueno indicarle donde estaba el error.
__________________
JmN

Última edición por jmn2k1; 10/03/2005 a las 18:30
  #4 (permalink)  
Antiguo 10/03/2005, 18:34
Avatar de Niconirva  
Fecha de Ingreso: marzo-2005
Mensajes: 119
Antigüedad: 12 años, 9 meses
Puntos: 0
Pues si Milhouse tiene razon (jeje, sin ofender!), te aconsejo que ya que tienes el Easyphp aproveches los errores descriptivos que te tira!.., como te dice en la linea nueve, si cuentas las lineas veras que el error esta en la linea que empieza el print (en la nueve).., mirando un poquito veraz que efectivamente faltan las comillas que la sentencia requiereee, saludos!
__________________
"Quien no peca contra la ciencia no descubre nada"
Albert Einstein
  #5 (permalink)  
Antiguo 11/03/2005, 01:47
 
Fecha de Ingreso: diciembre-2002
Mensajes: 132
Antigüedad: 15 años
Puntos: 0
Parece que con las comillas no basta

Lo primero de todo gracias a todos por las respuestas :).
He probado con las comillas ahora da otro error en todas las líneas que comienzan por print. Estoy pensando que este script lo he sacado de un manual que quizás sea muy antiguo, es una "Guía esencial de PHP" del año 2001. El resultado que me da el script en http://localhost/form_results.php
es este:

Abajo están los resultados del envío del formulario

Notice: Undefined variable: first_name in c:\archivos de programa\easyphp1-8\www\form_results.php on line 8

Nombre:
Notice: Undefined variable: last_name in c:\archivos de programa\easyphp1-8\www\form_results.php on line 9

Apellidos:
Notice: Undefined variable: address in c:\archivos de programa\easyphp1-8\www\form_results.php on line 10

Dirección:
Notice: Undefined variable: city in c:\archivos de programa\easyphp1-8\www\form_results.php on line 11

Ciudad:
Notice: Undefined variable: state in c:\archivos de programa\easyphp1-8\www\form_results.php on line 12

Estado:
Notice: Undefined variable: zip in c:\archivos de programa\easyphp1-8\www\form_results.php on line 13

Código Postal:
Notice: Undefined variable: home_phone in c:\archivos de programa\easyphp1-8\www\form_results.php on line 14

Teléfono:





Y el Script con las comillas queda así:

<html>
<head>
<title>Resultados del formulario</title>
</head>
<body>
<h2>Abajo están los resultados del envío del formulario</h2>
<?php
print("<p>Nombre: <b>$first_name</b>\n");
print("<br>Apellidos: <b>$last_name</b>\n");
print("<br>Dirección: <b>$address</b>\n");
print("<br>Ciudad: <b>$city</b>\n");
print("<br>Estado: <b>$state</b>\n");
print("<br>Código Postal: <b>$zip</b>\n");
print("<br>Teléfono: <b>$home_phone</b>\n");
?>
</body>
</html>



Voy a probar las otras alternativas que planteasteis quitando Print
Un saludo :)
  #6 (permalink)  
Antiguo 11/03/2005, 02:02
 
Fecha de Ingreso: diciembre-2002
Mensajes: 132
Antigüedad: 15 años
Puntos: 0
El script de ErichFrom tampoco me ha funcionado

El resultado que me ha dado el script de ErichFrom tanto con POST como con GET es:


Abajo están los resultados del envío del formulario
Nombre:
Notice: Undefined index: $first_name in c:\archivos de programa\easyphp1-8\www\form_results.php on line 7

Apellidos:
Notice: Undefined index: $last_name in c:\archivos de programa\easyphp1-8\www\form_results.php on line 8

Dirección:
Notice: Undefined index: $address in c:\archivos de programa\easyphp1-8\www\form_results.php on line 9

Ciudad:
Notice: Undefined index: $city in c:\archivos de programa\easyphp1-8\www\form_results.php on line 10

Estado:
Notice: Undefined index: $state in c:\archivos de programa\easyphp1-8\www\form_results.php on line 11

Código Postal:
Notice: Undefined index: $zip in c:\archivos de programa\easyphp1-8\www\form_results.php on line 12

Teléfono:
Notice: Undefined index: $home_phone in c:\archivos de programa\easyphp1-8\www\form_results.php on line 13



Que duro es ser novato ....
  #7 (permalink)  
Antiguo 11/03/2005, 09:03
Avatar de Niconirva  
Fecha de Ingreso: marzo-2005
Mensajes: 119
Antigüedad: 12 años, 9 meses
Puntos: 0
Exclamación Bueno pero no esta mal!!

Bueno mira, el error que te tira el apache no es para nada grave...!!! solo te dice que las variables no estan definidas!, simplemente eso...!! lo importante aca es ver si anda o no anda..., y eso es lo que te pregunto.. te anda??.
Si quieres que ese error no te aparesca más tienes dos soluciones:

1) Escribir 100% el script, definiendo correctamente las variables.. por ejemplo si a esas variables las capturas con un post! incluye por ejemplo:

$first_name=$_POST['tu_variable_que_envias']; y así para todas
.
.
.
2) Setear el archivo php.ini para que ese tipo de errores (poco graves) no los muestre.., de todas maneras los muestra por que estas en tu pc en modo local (así viene por defecto el Easyphp), pero si lo subes a tus hosting esos errores, por defecto estan desabilitados, asi que en tu pagina no apareceran...!

De todos modos, si esta correcto el Script no apareceria nada, pero a priori te sirve para saber si cumple su función o no, total si una variable esta definida o no, lo puedes arreglar facilmente.
Y recuerda APRENDE A LEER los errores del apache, vas a aprender mucho haciendolo, y te vas a ahorrar muchos dolores de cabeza..., cualquier cosa, avisa!,

pd: si quieres mas ayuda explicamos bien que hace el script, para que sirve y de donde recibe esas variables, así te explico más como definirlas, byeee!
__________________
"Quien no peca contra la ciencia no descubre nada"
Albert Einstein
  #8 (permalink)  
Antiguo 11/03/2005, 09:34
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
El reporte de errores de PHP lo tienes al maximo . .eso quiere decir que te va a mostrar no sólo errores .. sino "avisos" de una "mala" programación...

En realidad .. si tu pretendes acceder a una variable externa a tu scritp (que llega por POST, GET .. etc) deberías verificar su existencia antes de pretender usarla:

Código PHP:
if (isset($_POST['tu_variable_que_envias'])){
// si está definida tu variable (externa) .. la usas ..

Pero si eso te puede resultar "engorroso" hacerlo .. puedes bajar el nivel de reporte de errores de PHP con la función (y en php.ini también):

error_reporting()
www.php.net/error_reporting

Un saludo,
  #9 (permalink)  
Antiguo 16/03/2005, 15:56
 
Fecha de Ingreso: marzo-2005
Mensajes: 4
Antigüedad: 12 años, 8 meses
Puntos: 0
Hola, soy nueva en el foro y en PHP, estoy comenzando un tutorial...
Me aparece el sgte mensaje :
Notice: Undefined index: item in c:\archivos de programa\easyphp1-7\www\pruebas\index.php on line 4
En linea mencionada (4) tengo lo sgte:
$item=$_POST['item'];

El problema es que, independiente del error que despliega acerca de no estar definida la variable, luego me envía el sgte mensaje:

You don't have permission to access /Pruebas/<br /><b>Notice</b>: Undefined variable: PHP_SELF in <b>c:/archivos de programa/easyphp1-7/www/pruebas/index.php</b> on line <b>26</b><br /><br /><b>Notice</b>: Undefined variable: SID in <b>c:/archivos de programa/easyphp1-7/www/pruebas/index.php</b> on line <b>26</b><br /> on this server.

Alguien podria ayudarme, por favor? Gracias.
  #10 (permalink)  
Antiguo 16/03/2005, 19:02
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Bienvenida gratita ... en principio te invito a que para cada "nueva duda" (entiendase fuera del tema tradato en X post) habras un tema nuevo... lo puedes hacer desde la página principal del foro que consultes (donde te despliega los temas, vaya!), en la parte superior derecha... en el enlace que dice: "nuevo tema" (espero no equivocarme )...

... ahora bien, para poder ayudarte sería bueno nos explicaras más de tu problema... ok, por ahí una variable indefinida que ya identificaste pero ¿qué más código manejas que puede darte aquellos otros problemas??' ... así, adivinando... casi seguro que tratas de hacer funcionar un carrito de compras... ... y podrían ser problemas de versiones de PHP...
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #11 (permalink)  
Antiguo 17/03/2005, 06:30
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Iniciado por Cluster
El reporte de errores de PHP lo tienes al maximo . .eso quiere decir que te va a mostrar no sólo errores .. sino "avisos" de una "mala" programación...

En realidad .. si tu pretendes acceder a una variable externa a tu scritp (que llega por POST, GET .. etc) deberías verificar su existencia antes de pretender usarla:

Código PHP:
if (isset($_POST['tu_variable_que_envias'])){
// si está definida tu variable (externa) .. la usas ..

Pero si eso te puede resultar "engorroso" hacerlo .. puedes bajar el nivel de reporte de errores de PHP con la función (y en php.ini también):

error_reporting()
www.php.net/error_reporting

Un saludo,
Si me hacen caso .. podrían ver el link que dejé del manual oficial de PHP...

Además de ver sobre "arrays superglobales" como los que se mencionana en las primeras FAQ's del foro .. que al parecer ya usas $_POST .. pero no para $_SERVER['PHP_SELF'] (parace que usan $PHP_SELF ..) por eso es necesario que cada tema se trate en un hilo nuevo .. Cada caso es particular

Un saludo,
  #12 (permalink)  
Antiguo 19/03/2005, 12:29
 
Fecha de Ingreso: marzo-2005
Mensajes: 4
Antigüedad: 12 años, 8 meses
Puntos: 0
Hola,
Gracias por la recomendaciones.... modifiqué el arch. php.ini para que no enviará los mensajes... Ya no los envía... pero...
Lo que trato de probar es un ejemplo que saqué del tutorial que estoy siguiendo y se relaciona con eliminar un registro de una base de datos que creé, usando MySql.

Pero aun no he conseguido eliminar, debido a que no reconoce la variable que proviene de un archivo externo, el código de éste es el sgte:
<?php
include("ConexBD.phtml");
$link=Conectarse();
$id=$_GET['id'];
mysql_query("delete from cliente where ID_Prueba = $id",$link);
header("Location: index.php");
?>

Y el código del index.php es:
<!-- Manual de PHP de WebEstilo.com -->
<html>
<head>
<title>Elimina Registro de BD de PHP</title>
</head>
<body>
<H1>Ejemplo de uso de bases de datos con PHP y MySQL</H1>

<?php
include("ConexBD.phtml");
$link=Conectarse();
$result=mysql_query("select * from cliente",$link);
?>
<TABLE BORDER=1 CELLSPACING=1 CELLPADDING=1>
<TR><TD> <B>Id Cliente</B></TD> <TD> <B>Nombre</B></TD> <TD> <B>Apellido P.</B> </TD> <TD> <B>Apellido M.</B> </TD><TD> <B>Fono</B></TD> <TD>&nbsp;<B>Borrar</B>&nbsp;</TD></TR>
<?php
while($row = mysql_fetch_array($result)) {
// if (isset($_POST['ID_Prueba'])){
// si está definida tu variable (externa) .. la usas ..

printf("<tr><td>&nbsp;%s</td><td>&nbsp;%s</td><td>&nbsp;%s</td> <td>&nbsp;%s</td><td>&nbsp;%s&nbsp;</td>
<td><a href=\"DelRegBD.phtml?id=%d\">Borra</a></td> </tr>", $row["Id_cliente"], $row["Nombre"], $row["ApellidoP"], $row["ApellidoM"], $row["Fono"],$row["ID_Prueba"]);
// }
}
mysql_free_result($result);
mysql_close($link);

?>
</table>
</body>
</html>

Le agregué la verificación a la variable 'ID_Prueba', que es la que tiene el conflicto, pero así no despliega los registros, debido a que no existe!! Por eso la dejé comentada.

Qué debería revisar y/o cambiar?
Gracias por la ayuda!!!
  #13 (permalink)  
Antiguo 19/03/2005, 15:59
Avatar de Niconirva  
Fecha de Ingreso: marzo-2005
Mensajes: 119
Antigüedad: 12 años, 9 meses
Puntos: 0
Prueba esto....!

Miré tu código así nomás y a simple vista me parece que tienes un error cuando das la condición de borrado (o sea, dices que tal registro se borre, cuando ese registro tenga el campo ID_Prueba igual a tu variable $id).

La condición debería ser: ID_Prueba='$id'---> Finalmente el código quedaría:

Código PHP:
<?php 
include("ConexBD.phtml"); 
$link=Conectarse(); 
$id=$_GET['id']; 
mysql_query("delete from cliente where ID_Prueba = '$id'",$link); 
header("Location: index.php"); 
?>
Fijate, tambien si el archivo index.php pasa correctamente la variable GET. Por ahí puede ser eso tambien...., prueba con esto.., sino ya sabes!, byeee
__________________
"Quien no peca contra la ciencia no descubre nada"
Albert Einstein

Última edición por Niconirva; 19/03/2005 a las 16:01
  #14 (permalink)  
Antiguo 22/03/2005, 09:30
 
Fecha de Ingreso: marzo-2005
Mensajes: 4
Antigüedad: 12 años, 8 meses
Puntos: 0
Hola:
Sigo con el problema para borrar un registro, aun cuando hice el cambio sugerido de las comillas simples... :(

La variable llega en cero, es decir, que la variable GET no está pasando correctamente, lo que suponías Niconirva.

Me siento frustrada después de todos los intentos que he hecho...
  #15 (permalink)  
Antiguo 22/03/2005, 10:55
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
No te compliques con el uso de printf() .. además de consumir más recursos de ejecución de PHP .. también se hace "ilegible" para un editor de HTML visual .. además que complica la existencia ..

esto:
Código PHP:
printf("<tr><td>&nbsp;%s</td><td>&nbsp;%s</td><td>&nbsp;%s</td> <td>&nbsp;%s</td><td>&nbsp;%s&nbsp;</td>
<td><a href=\"DelRegBD.phtml?id=%d\">Borra</a></td> </tr>"
$row["Id_cliente"], $row["Nombre"], $row["ApellidoP"], $row["ApellidoM"], $row["Fono"],$row["ID_Prueba"]); 
Puede quedar:
Código PHP:
?>
<tr><td>&nbsp;%s</td><td>&nbsp;%s</td><td>&nbsp;%s</td> <td>&nbsp;%s</td><td>&nbsp;%s&nbsp;</td>
<td><a href="DelRegBD.phtml?id=<? echo $row['id_cliente'?>">Borra</a><? echo $row["Id_cliente"]." ".$row["Nombre"]." ".$row["ApellidoP"]." ".$row["ApellidoM"]." ".$row["Fono"]." ".$row["ID_Prueba"?></td> </tr>
<?
// resto PHP código
?>
Realmente me hice un lio co la tabla HTML .. pero la filosofía es esa .. "rompe" PHP donde no lo uses y "abre" PHP donde lo uses <? ... ?> Si usas algún editor HTML visual .. veras como te va quedando tu tabla cómodamente para distribuir tus "variables".

Un saludo,
  #16 (permalink)  
Antiguo 22/03/2005, 11:23
Avatar de xyyy7  
Fecha de Ingreso: enero-2004
Ubicación: Maracay.-
Mensajes: 637
Antigüedad: 13 años, 10 meses
Puntos: 5
opino lo mismo, no te compliques con esta funcion printf()
__________________
Maracay Edo Aragua - Venezuela :
Mi Favorita :
http://www.MySQL.Com
  #17 (permalink)  
Antiguo 23/03/2005, 07:24
 
Fecha de Ingreso: marzo-2005
Mensajes: 4
Antigüedad: 12 años, 8 meses
Puntos: 0
Hola.
Ya solucioné el problema!! :)
Pero, lo hice de otra forma! Tendré que investigar lo del traspaso de variables y el uso del GET.

Gracias por todo! Hasta pronto...
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 16:24.