Foros del Web » Programando para Internet » PHP »

problemas con las variables

Estas en el tema de problemas con las variables en el foro de PHP en Foros del Web. Saludos. He instalado Php, MySQL y Apache en mi pc y no me funciona co es debido. Os explico resulta que a la hora de ...
  #1 (permalink)  
Antiguo 10/05/2004, 06:02
 
Fecha de Ingreso: mayo-2004
Mensajes: 5
Antigüedad: 13 años, 7 meses
Puntos: 0
problemas con las variables

Saludos. He instalado Php, MySQL y Apache en mi pc y no me funciona co es debido. Os explico resulta que a la hora de enviar desde una pagina HTML a un script PHP una serie de valores recogidos desde una serie de variables me pasa lo siguiente:

- Por un lado la variables se muestran en la barra de direcciones, con lo que quiere decir( o eso creo) que llegan al script pero no me las muestra el condenado.
- Por otro lado cuando vuelvo hacia atras la pagina que se llamaba formulario cambia de nombre y se convierte en una paigna temporal llamada TMp65893.html o algo parecido.

He comprobado si podia ser de las variables globales pero estan activadas.

No se que mas hacer si me podeis hechar una mano os lo agradeceria.

Un saludo a toda la comunidad.
  #2 (permalink)  
Antiguo 10/05/2004, 09:23
Avatar de jarabas
Usuario no validado
 
Fecha de Ingreso: abril-2004
Mensajes: 111
Antigüedad: 13 años, 7 meses
Puntos: 0
Buenas.
Si pones el codigo con el que envias las variables y el codigo php que, supuestamente, las recoge, creo que te podamos ayudar mejor.

Un saludo.
  #3 (permalink)  
Antiguo 12/05/2004, 07:02
 
Fecha de Ingreso: mayo-2004
Mensajes: 5
Antigüedad: 13 años, 7 meses
Puntos: 0
El problema que tengo es que con cualquier formulario, y creo que en general con cualquier variables, es que no se que tengo que hacer para que las pase desde la pagina hasta el script. Te explico:
-Tenemos un simple formulario en el que metemos los datos de una persona, aqui te muestro el codigo:
<HTML>

<BODY>

<FORM METHOD="post" ACTION="mis_datos.php">

<input type="hidden" name="edad" value="55">

<p>Tu nombre <input type="text" name="nombre" size="30" value="jose"></p>

<p>Tu sistema favorito

<select size="1" name="sistema">

<option selected value="Linux">Linux</option>

<option value="Unix">Unix</option>

<option value="Macintosh">Macintosh</option>

<option value=&qmargin-left: 75"><option value="Windows">Windows</option>

</select></p>

<p>¿Te gusta el futbol ? <input type="checkbox" name="futbol" value="ON"></p>

<p>¿Cual es tu sexo?</p>

<blockquote>

<p>Hombre<input type="radio" value="hombre" checked name="sexo"></p>

<p>Mujer <input type="radio" name="sexo" value="mujer"></p>

</blockquote>

<p>Aficiones</p>

<p><textarea rows="5" name="aficiones" cols="28"></textarea></p>

<p><input type="submit" value="Enviar datos" name="enviar">

<input type="res-left: 50"> <input type="reset" value="Restablecer" name="B2"></p>

</FORM>

</BODY>

<HTML>



Cuando envio los datos al script cuyo codigo es este:

<?PHP;

if ($enviar) {

echo "Hola <b>" . $nombre . "</b> que tal estás<BR>\n";

echo "Eres " . $sexo . "<BR>\n";

echo "Tienes " . $edad . "<BR>\n";

echo "Tu sistema favorito es " . $sistema . "<BR>\n";

if ($futbol) {

echo "Te gusta el futbol <BR>\n";

} else odigo" style="margin-left: 50">} else {

echo "NO te gusta el futbol <BR>\n";

}

if ($aficiones != "") {

echo "Tus aficiones son: <BR>\n";

echo nl2br($aficiones);

} else {

echo "NO tienes aficiones <BR>\n";

}

}

echo "<a href='formulario.htm'>VOLVER AL FORMULARIO</a>"

?>

REsulta que en vez de enseñarme los valores que le pase pues me muestra esto:

" . $nombre . " que tal estás
\n"; echo "Eres " . $sexo . "
\n"; echo "Tienes " . $edad . "
\n"; echo "Tu sistema favorito es " . $sistema . "
\n"; if ($futbol) { echo "Te gusta el futbol
\n"; } else odigo" style="margin-left: 50">} else { echo "NO te gusta el futbol
\n"; } if ($aficiones != "") { echo "Tus aficiones son:
\n"; echo nl2br($aficiones); } else { echo "NO tienes aficiones
\n"; } } echo "VOLVER AL FORMULARIO" ?>

Es decir en vez de enseñarme los valores de las variables me enseña parte del codigo. No se pq. puede ser, soy novato en esto. Tb. he probado con printf. Con un GET en vez de un POST me muestra las variables en la barrra del navegador pero el resultado en el mismo solo que con el get no me muestra nada de nada, es como si las variables vinieran vacias.

Muchas gracias por vuestra ayuda. un saludo.
  #4 (permalink)  
Antiguo 12/05/2004, 09:36
Avatar de jarabas
Usuario no validado
 
Fecha de Ingreso: abril-2004
Mensajes: 111
Antigüedad: 13 años, 7 meses
Puntos: 0
Si el codigo que has puesto es exacto al que tu estás probando,el fallo es por errores de sintaxis.

El codigo que te pongo es el tuyo pero con alguna corrección.
Lo he probado y funciona.

form.htm
<BODY>

<FORM METHOD="post" ACTION="envia.php">

<input type="hidden" name="edad" value="55">

<p>Tu nombre <input type="text" name="nombre" size="30" value="jose"></p>

<p>Tu sistema favorito

<select size="1" name="sistema">

<option selected value="Linux">Linux</option>

<option value="Unix">Unix</option>

<option value="Macintosh">Macintosh</option>

<option value="qmargin-left: 75"><option value="Windows">Windows</option>

</select></p>

<p>¿Te gusta el futbol ? <input type="checkbox" name="futbol" value="ON"></p>

<p>¿Cual es tu sexo?</p>

<blockquote>

<p>Hombre<input type="radio" value="hombre" checked name="sexo"></p>

<p>Mujer <input type="radio" name="sexo" value="mujer"></p>

</blockquote>

<p>Aficiones</p>

<p><textarea rows="5" name="aficiones" cols="28"></textarea></p>

<p><input type="submit" value="Enviar datos" name="enviar">

<input type="res-left: 50"> <input type="reset" value="Restablecer" name="B2"></p>

</FORM>

</BODY>


envia.php
Código PHP:
<?PHP

if ($enviar) {
    echo 
"Hola <b>" $nombre "</b> que tal estás<BR>\n";
    echo 
"Eres " $sexo "<BR>\n";
    echo 
"Tienes " $edad "<BR>\n";
    echo 
"Tu sistema favorito es " $sistema "<BR>\n";
    if (
$futbol) {
        echo 
"Te gusta el futbol <BR>\n";
    } else {
        echo 
"NO te gusta el futbol <BR>\n";
    }
    if (
$aficiones != "") {
        echo 
"Tus aficiones son: <BR>\n";
        echo 
nl2br($aficiones);
    } else {
        echo 
"NO tienes aficiones <BR>\n";
    }

}
echo 
"<a href='form.htm'>VOLVER AL FORMULARIO</a>"
?>
Pruebalo y nos cuentas.

Un saludo.
  #5 (permalink)  
Antiguo 12/05/2004, 09:50
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 6 meses
Puntos: 16
Hola,

Sacando mi bola de cristal:

- ¿Usas Dreamweaver para el diseño? ¿Usas la "vista previa" para ejecutar el formulario (F11 o F12, creo recordar)? (por lo del nombre TMp65893.html )

- ¿En la barra de direcciones del navegador la direccion es del tipo "c:\directorio\pagina.php" o "file:/c:/directorio/pagina.php"? (porque parece que no se ejecuta por PHP, sino que intenta visualizarlo como HTML)

Si la contestacion a ambas preguntas es SI, prueba a abrir una ventana del navegador y poner http://localhost/dir/pagina.html (por supuesto, dir y pagina correspondientes a tu formulario) y prueba.

De todas formas, este script solo funcionara si la directiva register_globals esta a ON.

Saludos.

PD: Doy por supuesto que tu Apache+PHP esta correctamente configurado. Revisa http://www.maestrosdelweb.com/editorial/phpmysqlap/ para comparar tu configuracion.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #6 (permalink)  
Antiguo 12/05/2004, 10:22
 
Fecha de Ingreso: mayo-2004
Ubicación: españa
Mensajes: 45
Antigüedad: 13 años, 7 meses
Puntos: 0
Código PHP:
 if($_POST['enviar']) 
valla programadores, para leer las variables de un formulaio necesitamos $_POST['nombre']
__________________
a por todassss
  #7 (permalink)  
Antiguo 12/05/2004, 11:14
 
Fecha de Ingreso: mayo-2004
Mensajes: 5
Antigüedad: 13 años, 7 meses
Puntos: 0
Saludos a todo. He probado lo que me habeis dicho unos y otros. Y hoy voy a probar una cosa antes de nada, seguir las recomendaciones del amigo Josemi y revidar a conciancia lo que el amigo Josemi da por supuesto y yo tambien daba (que tengo bien configurado mi apache/php).
Lo dicho he probado lo que me habeis dicho en tres navegadores distintos.

Con opera el resultado es que me muestra el codigo de enviar.php tal cual lo he escrito. ¿podeis decirme pq?

El segundo Nestscape, me da el mismo resultado que os he puesto arriba, esto es:

" . $nombre . " que tal estás
\n"; echo "Eres " . $sexo . "
\n"; echo "Tienes " . $edad . "
\n"; echo "Tu sistema favorito es " . $sistema . "
\n"; if $_POST['futbol'] { echo "Te gusta el futbol
\n"; } else { echo "NO te gusta el futbol
\n"; } if ($_POST['aficciones'] != "") { echo "Tus aficiones son:
\n"; echo nl2br($aficiones); } else { echo "NO tienes aficiones
\n"; } } echo "VOLVER AL FORMULARIO" ?>

Por ultimo he probado en el de nuestro amigo Billi y este me da un error:

HTTP 500 - Error interno del servidor


Internet Explorer

Con respecto a las preguntas del amigo Josemi, te dire que si uso Dreamweaver, que si pruebo las paginas desde este, pero que tb. lo hago desde el navegador. Con respecto a como referencia mi pagina, te digo que lo hago asi:

http://localhost/directorio/archivo_a_visualizar

Tb. tengo las variables globales activadas.

Por ultimo y con respecto a la respuesta del amigo alkañon creo que a lo que te refieres a que las referencie asi:

if ($_POST['futbol']) donde futbol es el nombre de la variable.

Lo siento pero no he entendido bien tu respuesta.

Lanzo ahora una serie de preguntas:

¿Que editor usais o recomendais par trabajar con php?.
¿Cual es la diferencia entre referencial a la variable con un $_POST y hacerlo directamente por el nombre de la variable?.

Aguardo impaciente vuestras respuestas. Un saludo a toda la comunidad.
  #8 (permalink)  
Antiguo 12/05/2004, 12:58
Avatar de jarabas
Usuario no validado
 
Fecha de Ingreso: abril-2004
Mensajes: 111
Antigüedad: 13 años, 7 meses
Puntos: 0
respuesta a alkañon

si tan fino eres porque no has contestado antes?
Como eres tan bueno que te atreves a desprestigiar a la gente,
poorque no le dices la solucion.
Con compañeros como tú para que queremos enemigos.
De los errores se aprende,rectificar es de sabios y la prepotencia es como las imprudencias, que se pagan cada vez más.

Un saludo.
  #9 (permalink)  
Antiguo 12/05/2004, 18:13
 
Fecha de Ingreso: mayo-2004
Mensajes: 5
Antigüedad: 13 años, 7 meses
Puntos: 0
Amigo jarabas siento no haberme referido a ti y te agradezco que me hayas contestado pues ademas has sido el primero en hacerlo. Si te he ofencido te pido mil disculpas. No me referi a ti por la simple razon de que no tengo problemas unicamente con ese trozo de codigo, sino que me pasa con cualquier codigo en el que pase variables desde cualquier formulario, tu me diste una buena solucion, y te lo agradezco pero yo lo que buscaba es una pequeña explicacion de pq. me pasaba eso.
Con respecto a lo de que si tan fino soy porque no conteste antes, te dire que es simplemente es porque tengo que trabajar y no tengo todo el dia para mira el foro, solo lo puedo hacer a ciertas horas y no dependen de mi sino que dependen del trabajo que haya.
Con respecto a lo de desprestigiar a la gente, te dire que en ningun momento me he dirigido a ti en actitud despectiva y repito que si lo he hecho no ha sido mi intencion.

Un saludo a todos los del foro y en especial al amigo jarabas al que siento haber desprestigiado.
  #10 (permalink)  
Antiguo 13/05/2004, 03:26
Avatar de jarabas
Usuario no validado
 
Fecha de Ingreso: abril-2004
Mensajes: 111
Antigüedad: 13 años, 7 meses
Puntos: 0
vgacard

No tienes porque disculparte porque lo que puse fué para alkañon,ahora el que tengo que pedirte disculpas soy yo por el mal entendido.

jarabas dijo:
Cita:

respuesta a alkañon
si tan fino eres porque no has contestado antes?
Como eres tan bueno que te atreves a desprestigiar a la gente,
poorque no le dices la solucion.
Con compañeros como tú para que queremos enemigos.
De los errores se aprende,rectificar es de sabios y la prepotencia es como las imprudencias, que se pagan cada vez más.

Un saludo.
  #11 (permalink)  
Antiguo 13/05/2004, 03:58
 
Fecha de Ingreso: mayo-2004
Ubicación: españa
Mensajes: 45
Antigüedad: 13 años, 7 meses
Puntos: 0
e vengaaaa
chicos que era broma
si yo soy de lo peor amos no os enfadeis
lo siento
__________________
a por todassss
  #12 (permalink)  
Antiguo 13/05/2004, 06:09
 
Fecha de Ingreso: mayo-2004
Mensajes: 5
Antigüedad: 13 años, 7 meses
Puntos: 0
Sonrisa

Saludos a todos. Una vez esta todo aclarado y nos hemos disculpado los unos con los otros, centremosnos en lo que hemos venido a hacer tratar de aprender. un saludo a todos vosotros.
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 02:45.