Problema con Variables PHP

Iniciado por iMarcSpS, 15 Abril 2012, 15:48 PM

0 Miembros y 1 Visitante están viendo este tema.

iMarcSpS

He creado un formulario vía HTML, haciendo que los datos de esta variable vayan a parar a otro documento llamado saludo.php. Éste es el codigo de los dos documentos, el primero HTML no hay ningun problema, pero al segundo me dice el siguiente error de variables:

Notice: Undefined variable: nombre in C:\xampp\htdocs\saludo.php on line 8

Notice: Undefined variable: apellido in C:\xampp\htdocs\saludo.php on line 8
¡Bienvenido a la página de antiguos alumnos del colegio maravillas!.
Notice: Undefined variable: nacimiento in C:\xampp\htdocs\saludo.php on line 10


Éste es el codigo HTML:

<!- bienvenida.html ->
<html>
<head>
<title>Bienvenida</title>
</head>
<body bgcolor="#FFFFFF">
<div align="center">
<form action="saludo.php" method="post">
<p>&nbsp;</p>
<p><b>Bienvenido a mi p&aacute;gina Web</b></p>
<form name="form1">
<p>Nombre: <input type="text" name="nombre"><BR></p>
<p>Apellido: <input type="text" name="apellido"><BR></p>
<p>A&ntilde;o en que naciste: <input type="text" name="nacimiento"><BR></p>
<input type="submit" value="enviar"></p>
</form>
</div>
</body>
</html>

Y éste es el siguiente codigo PHP:

<!- saludo ->
<html>
<head>
<title>saludo</title>
</head>
<body>
<?
echo "¡Bienvenido $nombre $apellido a la página de antiguos alumnos del colegio maravillas!. ";
$año = 2012;
$edad = $año - $nacimiento;
if ( $edad == 33)
{
echo "Tú y yo fuimos a la misma clase. Porfavor, escríbeme a ricardo@maravillas.com.";
}
elseif ($edad <=23)
{
echo " Eres demasiado joven para haber asistido al colegio Maravillas. Lo siento, esta página no es de tu interés.";
}
elseif ($edad == 34)
{
echo "Tú y todos los de tu curso siempre fuisteis un atajo de matones. Fuera de mi página inmediatamente!";
}
?>
</body>
</html>


Gracias

Marc

javirk

Hola, los datos de un formulario pasan a la página donde quieres interpretarlos a través de $_POST, de la siguiente manera:
Código (php) [Seleccionar]
$_POST["nombre_campo_de_la_otra_pagina"]

Así, para recuperar los datos que pasas por el formulario tienes que usar eso, en vez de "inventarte" variables:
Código (php) [Seleccionar]
<?php 
$nombre 
$_POST["nombre"];
$apellido $_POST["apellido"];
echo 
"¡Bienvenido $nombre $apellido a la página de antiguos alumnos del colegio maravillas!. ";
?>


Un saludo!

iMarcSpS

#2
Muchas Gracias ya esta todo Gracias :)

iMarcSpS

Cita de: javirk en 15 Abril 2012, 16:16 PM
Hola, los datos de un formulario pasan a la página donde quieres interpretarlos a través de $_POST, de la siguiente manera:
Código (php) [Seleccionar]
$_POST["nombre_campo_de_la_otra_pagina"]

Así, para recuperar los datos que pasas por el formulario tienes que usar eso, en vez de "inventarte" variables:
Código (php) [Seleccionar]
<?php 
$nombre 
$_POST["nombre"];
$apellido $_POST["apellido"];
echo 
"¡Bienvenido $nombre $apellido a la página de antiguos alumnos del colegio maravillas!. ";
?>


Un saludo!

Gracias por el aporte anterior, a proposito tengo otro problema :(

Se trata de un formulario el cual se ingresa el nombre, etc... Y se crea un usuario a la base de datos:

<!- alta.php ->
<html>
<head>
<title> Añadir un nuevo alumno </title>
</head>
<body>
<?php
if ($submit):
$dbcnx mysql_connect("localhost""root""tubititu");
mysql_select_db("alumnos");
$sql "INSERT INTO alumnos SET 
mobre = "
$nombre",
apellido = "
$apellido",
nacimiento = "
$nacimiento",
email = "
$email"  ";
if (
$mysql_query($sql)) {
echo(
"<p>Alta dada satisfactoriamente</p>");
} else {
echo(
"<p>Error al darse de alta.: " mysql_error() . "</p>");
}
?>

<p><a href="<?=$PHP_SELF?>">Añadir un nuevo alumno.</a></p>
<?php
else:
?>

<form action="<?=$PHP_SELF?>" method="post">
<p>Introduzca sus datos:<br />
Nombre: <input type="text" name="nombre" size="20" maxlength="255" /><br />
Apellido: <input type="text" name="apellido" size="20" maxlength="255" /><br />
Fecha de nacimiento (aaaa/mm/dd): <input type="text" name="nacimiento" size="20" maxlength="255" /><br />
Email: <input type="text" name="email" size="20" maxlength="255" /><br />
<input type="submit" name="submit" value="ALTA" /></p>
</form>
<?php endif; ?>
</body>
</html>


Y se me muestra el siguiente error, nuevamente de variables :(

Parse error: syntax error, unexpected T_VARIABLE in C:\xampp\htdocs\alta.php on line 12
Parse error: syntax error, unexpected T_VARIABLE in C:\xampp\htdocs\alta.php on line 13
Parse error: syntax error, unexpected T_VARIABLE in C:\xampp\htdocs\alta.php on line 14
Parse error: syntax error, unexpected T_VARIABLE in C:\xampp\htdocs\alta.php on line 15

javirk

Es como lo de antes, ten en cuenta que no puedes poner comillas dobles dentro de otras comillas dobles, si ya tienes dobles, tienes que poner comillas simples:
Código (php) [Seleccionar]
$sql = "INSERT INTO alumnos SET
mobre = '$nombre',
apellido = '$apellido',
nacimiento = $nacimiento,
email = '$email'  ";


Creo que es por eso, prueba y me dices, porque no he usado nunca lo de SET.

Un saludo!

iMarcSpS

Cita de: javirk en 15 Abril 2012, 16:47 PM
Es como lo de antes, ten en cuenta que no puedes poner comillas dobles dentro de otras comillas dobles, si ya tienes dobles, tienes que poner comillas simples:
Código (php) [Seleccionar]
$sql = "INSERT INTO alumnos SET
mobre = '$nombre',
apellido = '$apellido',
nacimiento = $nacimiento,
email = '$email'  ";


Creo que es por eso, prueba y me dices, porque no he usado nunca lo de SET.

Un saludo!

Sii deacuerdo demomento funciona (El formulario), pero en el codigo:

if ($submit):
En la linea 8

Me dice lo siguiente:

Notice: Undefined variable: submit in C:\xampp\htdocs\alta.php on line 8

EFEX

Cita de: iMarcSpS en 15 Abril 2012, 16:56 PM
Sii deacuerdo demomento funciona (El formulario), pero en el codigo:

Código (php) [Seleccionar]
if ($submit):
En la linea 8
Me dice lo siguiente:
Notice: Undefined variable: submit in C:\xampp\htdocs\alta.php on line 8

Tenes que abrir el corchete, esos dos puntos estan de mas.
Código (php) [Seleccionar]
if ($submit){
GITHUB 

satu

Hola

Prueba con:
Código (php) [Seleccionar]

if(!empty($_POST['submit']))


Y quita los dos puntos ( : ) de detrás del if, los de detrás del else y el endif ambién sobra. Recuerda que en PHP los delimitadores son { y }

Saludos


Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.
Breakbeat como forma de vida

iMarcSpS

Cita de: satu en 15 Abril 2012, 17:00 PM
Hola

Prueba con:
Código (php) [Seleccionar]

if(!empty($_POST['submit']))


Y quita los dos puntos ( : ) de detrás del if, los de detrás del else y el endif ambién sobra. Recuerda que en PHP los delimitadores son { y }

Saludos


Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.

He quitado los dos puntos , me sale el mismo error en el "else":

Parse error: syntax error, unexpected T_ELSE in C:\xampp\htdocs\alta.php on line 24


javirk

Hola,
Prueba poniendo:
Código (php) [Seleccionar]
}else{

En vez de los dos puntos.

Un saludo