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> </p>
<p><b>Bienvenido a mi pá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ñ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
Hola, los datos de un formulario pasan a la página donde quieres interpretarlos a través de $_POST, de la siguiente manera:
$_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:
<?php
$nombre = $_POST["nombre"];
$apellido = $_POST["apellido"];
echo "¡Bienvenido $nombre $apellido a la página de antiguos alumnos del colegio maravillas!. ";
?>
Un saludo!
Muchas Gracias ya esta todo Gracias :)
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:
$_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:
<?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
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:
$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!
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:
$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
Cita de: iMarcSpS en 15 Abril 2012, 16:56 PM
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
Tenes que abrir el corchete, esos dos puntos estan de mas.
if ($submit){
Hola
Prueba con:
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.
Cita de: satu en 15 Abril 2012, 17:00 PM
Hola
Prueba con:
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
Hola,
Prueba poniendo:
}else{
En vez de los dos puntos.
Un saludo
Mas adelante tenes que quitar el endif; y agregar un corchete final.
<input type="submit" name="submit" value="ALTA" /></p>
</form>
<?php } ?>
</body>
</html>
Algo para agregar, es que se pueden usar los dos puntos con if, como lo explica en php (http://php.net/manual/es/control-structures.alternative-syntax.php)
Pero para usar los dos puntos y corchetes se deve agregar un punto y coma al final del cierre del if{};
if($var):
.
.
if ($mysql_query($sql)) {
echo("<p>Alta dada satisfactoriamente</p>");
} else {
echo("<p>Error al darse de alta.: " . mysql_error() . "</p>");
}; // <---- punto y coma
.
.
else:
echo $otravar;
endif;
No sabía yo eso de los : en los if
Muy bueno EFEX
Cita de: EFEX en 15 Abril 2012, 17:13 PM
Mas adelante tenes que quitar el endif; y agregar un corchete final.
<input type="submit" name="submit" value="ALTA" /></p>
</form>
<?php } ?>
</body>
</html>
Algo para agregar, es que se pueden usar los dos puntos con if, como lo explica en php (http://php.net/manual/es/control-structures.alternative-syntax.php)
Pero para usar los dos puntos y corchetes se deve agregar un punto y coma al final del cierre del if{};
if($var):
.
.
if ($mysql_query($sql)) {
echo("<p>Alta dada satisfactoriamente</p>");
} else {
echo("<p>Error al darse de alta.: " . mysql_error() . "</p>");
}; // <---- punto y coma
.
.
else:
echo $otravar;
endif;
Me sale lo mismo os paso el codigo final que tengo ahora haber si encontramos el fallo:
<title> Añadir un nuevo alumno </title>
</head>
<body>
<?php
if(!empty($_POST['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>");
}; // <---- punto y coma
?>
<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>
Hola, falta el { en el primer if, y el } a la izquierda del else.
Hola
<title> Añadir un nuevo alumno </title>
</head>
<body>
<?php
if(!empty($_POST['submit'])) {
$dbcnx = mysql_connect("localhost", "root", "tubititu");
mysql_select_db("alumnos");
$nombre = $_POST['nombre'];
$apellido = $_POST['apellido'];
$nacimiento = $_POST['nacimiento'];
$email = $_POST['email'];
$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 } ?>
</body>
</html>
Saludos
Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.
Hay quedo mas ordenado por satu ;D
Podes pasar por el sitio oficial de php, tienen documentacion que te interesará.
Estructuras de Control
http://www.php.net/manual/es/language.control-structures.php (http://www.php.net/manual/es/language.control-structures.php)
Hola
Además he añadido algunas cosas porque al solucionar el error de las llaves tiraba errores de variables no inicializadas:
$nombre = $_POST['nombre'];
$apellido = $_POST['apellido'];
$nacimiento = $_POST['nacimiento'];
$email = $_POST['email'];
Saludos
Cita de: satu en 15 Abril 2012, 17:29 PM
Hola
<title> Añadir un nuevo alumno </title>
</head>
<body>
<?php
if(!empty($_POST['submit'])) {
$dbcnx = mysql_connect("localhost", "root", "tubititu");
mysql_select_db("alumnos");
$nombre = $_POST['nombre'];
$apellido = $_POST['apellido'];
$nacimiento = $_POST['nacimiento'];
$email = $_POST['email'];
$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 } ?>
</body>
</html>
Saludos
Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.
Y Que error hay en este me sale esto:
Parse error: syntax error, unexpected $end in C:\xampp\htdocs\queridos.php on line 70
<!- queridos.php ->
<html>
<head>
<title>Votación profesores</title>
</head>
<form action="<?=$PHP_SELF?>" method="post">
<body>
<?php
if ($bueno == "a")
{
$con=mysql_connect("localhost", "root", "tubititu");
mysql_select_db("www");
$sql="UPDATE populares SET votos=votos+1 WHERE ID=1";
if (!mysql_query($sql)) {
echo "Error en la votación. Inténtelo de nuevo.";}
}
if ($bueno == "b")
{
$con=mysql_connect("localhost", "root", "tubititu");
mysql_select_db("www");
$sql="UPDATE populares SET votos=votos+1 WHERE ID=2";
if (!mysql_query($sql)) {
echo "Error en la votación. Inténtelo de nuevo.";}
{
if ($bueno == "c");
{
$con=mysql_connect("localhost", "root", "tubititu");
mysql_select_db("www");
$sql="UPDATE populares SET votos=votos+1 WHERE ID=3";
if (!mysql_query($sql)) {
echo ("Error en la votación. Inténtelo de nuevo.");}
}
?>
<table>
<tr>
<td>¿Quién fue para tí el profesor más querido del Colegio Maravillas?</td>
<td>select name="bueno"><option value = "a">Pablo Partido, "El Leches"<option value = "b">Avelino Puebla "El Fabas"<option value = "c">Cesar Artero "Hermano Artero"
</select></td>
<td colspan=2 align=center>
<input type=submit value "Vota! ">
</td>
</tr>
<br><br><br><br><br>
</table>
</form>
<?php
$bd=@mysql_connect("localhost", "root", "tubititu");
if (!$bd) {
echo "Error, No se puede conectar con la base de datos en este momento. Inténtelo más tarde. ";
exit();
}
$sel=@mysql_select_db("www");
if (!$sel)
{
echo "Error, No se puede acceder a la base de datos en este momento. Inténtelo más tarde.";
exit();
}
$busqueda=@mysql_query("SELECT nombre, apellido, mote, votos FROM populares");
if (!$busqueda)
{
echo ("Error al seleccionar los elementos de la base de datos. Inténtelo más tarde");
exit();
}
while ($row = mysql_fetch_array($busqueda))
{
echo ("<p>" . $row["nombre"]." ".$row["apellido"]." " ."'".$row["mote"]."'"." ".$row["votos"]." votos" . "</p>");
}
?>
</body>
</html>
Revisa el cierre y apertura de los if{}.
Hola
EFEX te ha dicho cómo solucionarlo.
Además en el if de debajo te sobra el ;
Y además sigues teniendo los mismos errores que intento corregirte desde el principio. La variable $bueno no la tienes inicializada.
Además te aconsejo que identes el código con tabuladores para que sea más legible .
Saludos
Cita de: satu en 15 Abril 2012, 17:54 PM
Hola
EFEX te ha dicho cómo solucionarlo.
Además en el if de debajo te sobra el ;
Y además sigues teniendo los mismos errores que intento corregirte desde el principio. La variable $bueno no la tienes inicializada.
Además te aconsejo que identes el código con tabuladores para que sea más legible .
Saludos
Lo solucione! Gracias, al pulsar "Vota!" me dice que no se encuentra la página pero eso ahora mismo no importa porque actualizas la página anterior y se me actualiza el voto, pero lo que no entiendo es porque los votos se me suman solo al ultimo :S
Gracias
Marc
Hola me surguio un problema alguien que pueda ayudarme.
Este es el problema que me sale:
Parse error: syntax error, unexpected 'var' (T_VAR) in C:\xampp\htdocs\email\enviar.php on line 8
mi codigo:
index.php
<div id="content">
<form id="email" method="post" action="enviar.php" enctype="multipart/form-data">
<fieldset>
<p><label>Nombre: <input type="text" name="nombre" id="nombre" /></label></p>
<p><label>Email: <input type="text" name="email" id="email" /></label></p>
<p><label>Asunto: <input type="text" name="asunto" id="asunto" /></label></p>
Comentario:
<p><label><textarea cols="35" rows="10" name="texto" id="texto"></textarea></label></p>
<p><input type="submit" name="enviar" id="enviar" value="Enviar" /></p>
</fieldset>
</form>
</div>
otro codigo:
enviar.php
<?php
if(!empty($_POST)){
if($_POST["nombre"] != "" && $_POST["email"] != "" && $_POST["ausnto"] != "" && $_POST["texto"] != ""){
include("class.phpmailer.php");
$usuarioGmail="mastercar09@gmail.com";
$contraGmail="04chiverio";
var $email = new PHPMailer();
$email->IsSMTP();
$email->SMTPAuth = true;
$email->SMTPSecure = "ssl";
$email->Host = "smtp.gmail.com"
$email->Port = "465";
$email->Username = $usuarioGmail;
$email->Password = $contraGmail;
$email->FromName = $_POST["nombre"];
$email->AddReplyTo($usuarioGmail,"Carlos Valenzuela");
$email->Subject = $_POST["asunto"];
$email->Body = $_POST["texto"];
$email->AddAddress($_POST["email"],$_POST["name"]);
if(!$email->Send()){
print '<p>Error al enviar el mensaje'.$email->ErrorInfo.'</p>';
}else{
print '<p>Mensaje enviado</p>';
}
}
}else{
print '<p>Error del array post</p>';
}
?>
Cita de: mastercar09 en 13 Septiembre 2012, 06:05 AM
Hola me surguio un problema alguien que pueda ayudarme.
Este es el problema que me sale:
Parse error: syntax error, unexpected 'var' (T_VAR) in C:\xampp\htdocs\email\enviar.php on line 8
mi codigo:
index.php
<div id="content">
<form id="email" method="post" action="enviar.php" enctype="multipart/form-data">
<fieldset>
<p><label>Nombre: <input type="text" name="nombre" id="nombre" /></label></p>
<p><label>Email: <input type="text" name="email" id="email" /></label></p>
<p><label>Asunto: <input type="text" name="asunto" id="asunto" /></label></p>
Comentario:
<p><label><textarea cols="35" rows="10" name="texto" id="texto"></textarea></label></p>
<p><input type="submit" name="enviar" id="enviar" value="Enviar" /></p>
</fieldset>
</form>
</div>
otro codigo:
enviar.php
<?php
if(!empty($_POST)){
if($_POST["nombre"] != "" && $_POST["email"] != "" && $_POST["ausnto"] != "" && $_POST["texto"] != ""){
include("class.phpmailer.php");
$usuarioGmail="mastercar09@gmail.com";
$contraGmail="04chiverio";
var $email = new PHPMailer();
$email->IsSMTP();
$email->SMTPAuth = true;
$email->SMTPSecure = "ssl";
$email->Host = "smtp.gmail.com"
$email->Port = "465";
$email->Username = $usuarioGmail;
$email->Password = $contraGmail;
$email->FromName = $_POST["nombre"];
$email->AddReplyTo($usuarioGmail,"Carlos Valenzuela");
$email->Subject = $_POST["asunto"];
$email->Body = $_POST["texto"];
$email->AddAddress($_POST["email"],$_POST["name"]);
if(!$email->Send()){
print '<p>Error al enviar el mensaje'.$email->ErrorInfo.'</p>';
}else{
print '<p>Mensaje enviado</p>';
}
}
}else{
print '<p>Error del array post</p>';
}
?>
var $email = new PHPMailer();
quitale var dejalo asi:
$email = new PHPMailer();
prueba de nuevo :xD
ya le cambie lo que me dijiste y sigue saliendo el mismo error
Parse error: syntax error, unexpected '$email' (T_VARIABLE) in C:\xampp\htdocs\email\enviar.php on line 13
enviar.php
<?php
if(!empty($_POST)){
if($_POST["nombre"] != "" && $_POST["email"] != "" && $_POST["ausnto"] != "" && $_POST["texto"] != ""){
include("class.phpmailer.php");
$usuarioGmail="mastercar09@gmail.com";
$contraGmail="04chiverio";
$email = new PHPMailer();
$email->IsSMTP();
$email->SMTPAuth = true;
$email->SMTPSecure = "ssl";
$email->Host = "smtp.gmail.com"
$email->Port = "465";
$email->Username = $usuarioGmail;
$email->Password = $contraGmail;
$email->FromName = $_POST["nombre"];
$email->AddReplyTo($usuarioGmail,"Carlos Valenzuela");
$email->Subject = $_POST["asunto"];
$email->Body = $_POST["texto"];
$email->AddAddress($_POST["email"],$_POST["name"]);
if(!$email->Send()){
print '<p>Error al enviar el mensaje'.$email->ErrorInfo.'</p>';
}else{
print '<p>Mensaje enviado</p>';
}
}
}else{
print '<p>Error del array post</p>';
}
?>
Cita de: arthusu en 13 Septiembre 2012, 06:41 AM
var $email = new PHPMailer();
quitale var dejalo asi:
$email = new PHPMailer();
prueba de nuevo :xD
ya le quite eso y sigue saliendo el mismo error :S
Cita de: mastercar09 en 13 Septiembre 2012, 06:51 AM
ya le quite eso y sigue saliendo el mismo error :S
intenta utilizando eso en un servidor gratuito y no en tu localhost no se si php mailer necesite de servidor smtp y ssl o si tengas abierto el puerto necesario, por lo que mejor es probarlo en un servidor bien configurado como uno gratuito de 000webhost y probar :) :xD