Foros del Web » Programando para Internet » PHP »

Problemas de principiante

Estas en el tema de Problemas de principiante en el foro de PHP en Foros del Web. Hola! soy nuevo por aqui i me parece que nos veremos bastante tiempo ;) mi problema es que estoy iniciando un pequeño código que se ...
  #1 (permalink)  
Antiguo 25/06/2011, 07:04
 
Fecha de Ingreso: junio-2011
Mensajes: 11
Antigüedad: 12 años, 10 meses
Puntos: 0
Información Problemas de principiante

Hola! soy nuevo por aqui i me parece que nos veremos bastante tiempo ;)

mi problema es que estoy iniciando un pequeño código que se encarga de obtener un dato de un formulario y después de darle a Enviar en la misma página obtienes el mensaje Hola "nombre de alguien"
pero no me sale todavía

Código:
<?php
$variable= "Bienvenido a Link Studios\n";
//Comentario XD
echo "Accede a la web <br>";
echo $variable;
echo "<BR>";

if($enviar){

echo "Hola". $user . "<br>\n";}
else {
	echo <<< HTML
	<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type = "text" name ="user" />
<input type = "submit" value="Submit" name="enviar"/>
</form>
HTML;
	}
?>
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /Applications/XAMPP/xamppfiles/htdocs/archivo.php on line 16

la línea 16 es la que dice
Código:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
pero tambíen lo probe poniendo <?php echo PHP_SELF ?> y nada, este me genera algo tipo "error ocurrido" y arriva en la barra de direcciones algo como "/localhost/<php%20%echo..."
vamos que estoy un poco perdido.
Agradecería ayuda ;)
  #2 (permalink)  
Antiguo 25/06/2011, 07:28
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 13 años, 1 mes
Puntos: 16
Respuesta: Problemas de principiante

si quieres recargar en la misma pagina porq no pones el nombre directo?
  #3 (permalink)  
Antiguo 25/06/2011, 07:30
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 13 años, 1 mes
Puntos: 16
Respuesta: Problemas de principiante

en que momento le asignas a la variable $enviar la data del input text?? o es que no pusiste el codigo completo???? otra cosa. si la variable se creea despues de hacer el envio por post. creo seria mejor colocarle un isset al if para validar que se haya creado.
  #4 (permalink)  
Antiguo 25/06/2011, 14:06
Avatar de Aaronus23  
Fecha de Ingreso: diciembre-2010
Ubicación: https://home
Mensajes: 81
Antigüedad: 13 años, 4 meses
Puntos: 4
Respuesta: Problemas de principiante

Código PHP:
<?php
$variable
"Bienvenido a Link Studios\n";
//Comentario XD
echo "Accede a la web <br>";
echo 
$variable;
echo 
"<BR>";

if(
$enviar){

echo 
"Hola"$user "<br>\n";}
else {
    echo 
'
    <form action="$_SERVER["PHP_SELF"] " method="post">
<input type = "text" name ="user" />
<input type = "submit" value="Submit" name="enviar"/>
</form>'
;
    }
?>
simplemente te faltaron unas comillas en el echo :P
  #5 (permalink)  
Antiguo 25/06/2011, 20:11
 
Fecha de Ingreso: noviembre-2010
Ubicación: mexico
Mensajes: 7
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Problemas de principiante

igual es de esta forma no se si es lo que quieres pruebalo

Código PHP:
<?php
$variable
"Bienvenido a Link Studios\n";
//Comentario XD
echo "Accede a la web <br>";
echo 
$variable;
echo 
"<BR>";

if(!isset(
$enviar)){

echo 
"Hola<br>".$_POST['user'] . "<br>\n";}
else {
    echo 
'
    <form action="foro.php " method="post"> <--! lo del foro.php es el nombre que yo le puse al archivo  -->
<input type = "text" name ="user" />
<input type = "submit" value="Submit" name="enviar"/>
</form>'
;
    }
?>
  #6 (permalink)  
Antiguo 26/06/2011, 10:38
 
Fecha de Ingreso: junio-2011
Mensajes: 11
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Problemas de principiante

Cita:
Iniciado por macu123 Ver Mensaje
igual es de esta forma no se si es lo que quieres pruebalo

Código PHP:
<?php
$variable
"Bienvenido a Link Studios\n";
//Comentario XD
echo "Accede a la web <br>";
echo 
$variable;
echo 
"<BR>";

if(!isset(
$enviar)){

echo 
"Hola<br>".$_POST['user'] . "<br>\n";}
else {
    echo 
'
    <form action="foro.php " method="post"> <--! lo del foro.php es el nombre que yo le puse al archivo  -->
<input type = "text" name ="user" />
<input type = "submit" value="Submit" name="enviar"/>
</form>'
;
    }
?>
hice esto último ya que la respuesta anterior me dava problemas, cuando enviava la señal enviar se quedava en error y arriba en la barra direcciones ponia loclahost/_server blablabla

y este ultimo no me da error, pero el problema es que no me sale nunca la ventana de formulario para poner mi opcion, y si cambio !isset por isset me sale siempre el formularo, asi que no se que hacer, por cierot para que sirve isset?¿ :)
  #7 (permalink)  
Antiguo 26/06/2011, 12:39
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 2 meses
Puntos: 58
Respuesta: Problemas de principiante

¿No será esto lo que quieres?

Código PHP:
<?php
$variable
"Bienvenido a Link Studios\n";
//Comentario XD
echo "Accede a la web <br>";
echo 
$variable;
echo 
"<BR>";

$enviar $_POST[enviar];
$user $_POST[user];

if (isset(
$enviar)){
   echo 
"Hola ".$user."<br>\n";}
else {
?>  
   <form action="<?php $_SERVER[PHP_SELF]?>" method="post">
     <input type="text" name="user" />
     <input type="submit" value="Submit" name="enviar" />
   </form>
<?php }?>
Es mejor poner la parte de html fuera del php, en vez de intentar imprimirla con echos porque te vas a liar menos. Si aun así prefieres usar echo para imprimir el html tienes que intentar simplificar, procurando no mezclar comillas dobles y simples. Una forma sería esta:

Código PHP:
<?php
$variable
"Bienvenido a Link Studios\n";
//Comentario XD
echo "Accede a la web <br>";
echo 
$variable;
echo 
"<BR>";

$enviar $_POST[enviar];
$user $_POST[user];

if (isset(
$enviar)){
   echo 
"Hola ".$user."<br>\n";}
else {
  echo 
"
   <form action='$_SERVER[PHP_SELF]' method='post'>
     <input type='text' name='user' />
     <input type='submit' value='Submit' name='enviar' />
   </form>"
;
 }
 
 
?>
Otra cosa, no se pueden usar las variables $enviar y $user como las habías puesto tú. De la forma que las habías puesto tú no tienen nada, están vacías. Tienes que asignarles valores antes de usarlas. Fíjate como lo he puesto yo para que vayas aprendiendo.


EDITO:
me acabo de dar cuenta de la forma que habías empleado para imprimir el html. También vale esa forma, pero tenías varios errores de sintaxis. La forma correcta sería:

Código PHP:
Ver original
  1. echo <<< HTML
  2.     <form action="$_SERVER[PHP_SELF]" method="post">
  3. <input type="text" name="user" />
  4. <input type="submit" value="Submit" name="enviar"/>
  5. </form>
  6. HTML;

Última edición por Nexus10; 26/06/2011 a las 12:44
  #8 (permalink)  
Antiguo 26/06/2011, 12:46
 
Fecha de Ingreso: junio-2011
Mensajes: 11
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Problemas de principiante

Resolví el problema
Po si a alguien le interesa:
El error estaba en no declarar las variables con import_request_variables
Para solucionarlo utilize este tutorial que recomiendo, es muy bueno, y se basa en usar ejemplos para enseñar: uca.es/softwarelibre/publicaciones/apuntes_php

Código:
<?php
$variable= "Bienvenido a Link Studios\n";
//Comentario XD
echo "Accede a la web <br>";
echo $variable;
echo "<BR>";
import_request_variables("pg","f_");
if(!empty($f_enviar)){

echo "Hola ". $f_user . "<br>\n";}
else {
	echo '
	<form action=" toni.php" method="post">
<input type = "text" name ="user" />
<input type = "submit" value="Submit" name="enviar"/>
</form>';

	}
?>
  #9 (permalink)  
Antiguo 26/06/2011, 12:47
 
Fecha de Ingreso: junio-2011
Mensajes: 11
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Problemas de principiante

Cita:
Iniciado por Nexus10 Ver Mensaje
¿No será esto lo que quieres?

Código PHP:
<?php
$variable
"Bienvenido a Link Studios\n";
//Comentario XD
echo "Accede a la web <br>";
echo 
$variable;
echo 
"<BR>";

$enviar $_POST[enviar];
$user $_POST[user];

if (isset(
$enviar)){
   echo 
"Hola ".$user."<br>\n";}
else {
?>  
   <form action="<?php $_SERVER[PHP_SELF]?>" method="post">
     <input type="text" name="user" />
     <input type="submit" value="Submit" name="enviar" />
   </form>
<?php }?>
Es mejor poner la parte de html fuera del php, en vez de intentar imprimirla con echos porque te vas a liar menos. Si aun así prefieres usar echo para imprimir el html tienes que intentar simplificar, procurando no mezclar comillas dobles y simples. Una forma sería esta:

Código PHP:
<?php
$variable
"Bienvenido a Link Studios\n";
//Comentario XD
echo "Accede a la web <br>";
echo 
$variable;
echo 
"<BR>";

$enviar $_POST[enviar];
$user $_POST[user];

if (isset(
$enviar)){
   echo 
"Hola ".$user."<br>\n";}
else {
  echo 
"
   <form action='$_SERVER[PHP_SELF]' method='post'>
     <input type='text' name='user' />
     <input type='submit' value='Submit' name='enviar' />
   </form>"
;
 }
 
 
?>
Otra cosa, no se pueden usar las variables $enviar y $user como las habías puesto tú. De la forma que las habías puesto tú no tienen nada, están vacías. Tienes que asignarles valores antes de usarlas. Fíjate como lo he puesto yo para que vayas aprendiendo.


EDITO:
me acabo de dar cuenta de la forma que habías empleado para imprimir el html. También vale esa forma, pero tenías varios errores de sintaxis. La forma correcta sería:

Código PHP:
Ver original
  1. echo <<< HTML
  2.     <form action="$_SERVER[PHP_SELF]" method="post">
  3. <input type="text" name="user" />
  4. <input type="submit" value="Submit" name="enviar"/>
  5. </form>
  6. HTML;
Muchas Gracias, me di cuenta tarde de tu respuesta y encontré otro método, pero voy a probar este que me das
  #10 (permalink)  
Antiguo 26/06/2011, 12:57
 
Fecha de Ingreso: junio-2011
Mensajes: 11
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Problemas de principiante

problemas que recibo usando las comillas ' ', en cambio si uso las "" me da un error distinto pero provcado porque envia la información a la direccion S_Server... vamos que ese problema no es importante porque significa que la declaración es incorrecta:

<form action='$_SERVER[PHP_SELF]' method="post">

Parse error: syntax error, unexpected T_VARIABLE, expecting ',' or ';' in /blabla/blabla/blabla/blabla/toni.php on line 16
  #11 (permalink)  
Antiguo 26/06/2011, 13:36
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 2 meses
Puntos: 58
Respuesta: Problemas de principiante

No he entendido bien lo que has querido decir en tu último post. Los dos códigos completos que te he puesto funcionan bien.
El código completo utilizando la última forma sería:

Código PHP:
<?php
$variable
"Bienvenido a Link Studios\n";
//Comentario XD
echo "Accede a la web <br>";
echo 
$variable;
echo 
"<BR>";

$enviar $_POST[enviar];
$user $_POST[user];

if (isset(
$enviar)){
   echo 
"Hola ".$user."<br>";
}
else {
  echo <<< HTML
    <form action="$_SERVER[PHP_SELF]" method="post">
      <input type="text" name="user" />
       <input type="submit" value="Submit" name="enviar" />
    </form>
HTML;
}
?>
Ten en cuenta que para que te funcione esta última forma, el finalizador HTML; debe aparecer en una sola línea sin espacios en blanco antes ni después. Puede que haya sido por eso el error que te sale.

Etiquetas: principiante
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 05:44.