Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-06-2003
vecino vecino is offline
Miembro
 
Registrado: may 2003
Ubicación: Málaga (España)
Posts: 36
Poder: 0
vecino Va por buen camino
Pasar variables del form al script php

Hola:

Soy novato en Php y mySql, estoy probando los ejemplos de insertar registros mediante un simple formulario html y en el 'action' llamar al scrip php para que realice el alta en la base de datos. Pues bien, TODOS los ejemplos me fallan en lo mismo, por lo tanto deduzco que el fallo es mio, y es lo siguiente: no reconoce las variables que se le pasa para insertar en el '' ... values ('$nombre','$email', ... etc... (no reconoce la variable "nombre" ni la variable "email".

Siempre me encuentro con ese problema y no sé si hay que configurar algo o qué es lo que pasa.

Uso w2000,apache,mysql,php

Saludos para todos.

P.D. No sé si esta pregunta debería ir en el foro de mySql en lugar de este.
__________________
:)
Responder Con Cita
  #2  
Antiguo 10-06-2003
vecino vecino is offline
Miembro
 
Registrado: may 2003
Ubicación: Málaga (España)
Posts: 36
Poder: 0
vecino Va por buen camino
Hola:

Ya que nadie me contesta, imagino que he redactado mal la pregunta, así que la vuelvo a explicar, por si acaso:

Tengo un formulario con dos campos, ejemplo: nombre y email.
Al pulsar sobre el botón 'submit' llama en el 'action' a un script llamado 'altas.php' que se encarga de guardar lo tecleado en el formulario en una base de datos mysql: ''insert into agenda (nombre,email) values ('$nombre','$email')...
Pues bien, SIEMPRE, con todos los ejemplos que he probado, me sale el error de que no conoce las variables nombre y email.

¿Qué puede ser?, tengo instalado win2000pro, php 4.3, mysql 4.0

Muchas gracias y saludos a todos.
__________________
:)
Responder Con Cita
  #3  
Antiguo 10-06-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Para comenzar a discernir lo que pasa trata primero de olvidarte de la consulta sql e incluso del script. En la etiqueta <FORM> cambia la propiedad method a GET en lugar de POST, aprieta el botón "submit" y fijate que se ve en la línea de direcciones del navegador. Si no aparecen los nombres de tus campos es que no estás nombránndolos correctamente.

Si sí se ven, el siguiente paso es implementar un mínimo script que en lugar de hacer una consulta simplemente haga echo de tus variables:

Código PHP:
<?
  
echo $nombre;
  echo 
$mail;
?>
para ver si está pasando correctamente los valores.

De cualquier manera escribe aquí la forma exacta en que pones tus etiquetas <INPUT> para el nombre y el email.

// Saludos
Responder Con Cita
  #4  
Antiguo 10-06-2003
vecino vecino is offline
Miembro
 
Registrado: may 2003
Ubicación: Málaga (España)
Posts: 36
Poder: 0
vecino Va por buen camino
Hola:

Ni con 'GET' ni con 'POST' sale nada. Cuando pulso el botón cambia de 'altas.htm' a 'altas.php', nada más.

Si pongo lo de
echo $nombre;
echo $email;
me dice que no conoce la variable.

Esto es lo que tengo escrito:

altas.htm
Código:
<HTML>
<HEAD></HEAD>
<BODY>
<FORM METHOD="post" ACTION="altas.php">
Nombre<br>
<INPUT TYPE="TEXT" NAME="nombre"><br>
Email<br>
<INPUT TYPE="TEXT" NAME="email"><br>
<INPUT TYPE="SUBMIT" value="Insertar">
</FORM>
</BODY>
</HTML>
altas.php
Código:
<?
mysql_connect("localhost","","");
mysql_db_query("prueba","insert into agenda (nombre,email) values ('$nombre','$email')");
?>
Más simple no puedo dejarlo. He probado también con el usuario root, con otros usuarios que he dado de alta con todos los permisos, con password y sin password, he instalado y desinstalado apache,mysql y php cinco o seis veces.

Si sustituyo las variables en el insert por cualquier otro valor, funciona correctamente. Así que seguro que hay algo, seguramente en la configuración del php o del mysql que no está bien, porque otra cosa no se me ocurre. ¿Tal vez algún cambio del php3 al php4 que repercuta en las variables que se pasan?.

Bueno, saludos y sigo buscando.
__________________
:)
Responder Con Cita
  #5  
Antiguo 11-06-2003
[kayetano] kayetano is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Elche
Posts: 644
Poder: 21
kayetano Va por buen camino
Hola

Prueba con los arrays
- $PHP_POST_VARS (o $_POST ) para el metodo POST.
- $PHP_GET_VARS ( o $_GET ) para el metodo GET.

Dependiendo del metodo que utilices para mandar el formulario (POST o GET). Donde el indice es el nombre de la variable que has pasado.

Si no has configurado correctamente el php.ini debes utilizar estos arrays.

Para tener como variables los contenidos de estos arrays hay que poner a "true" la propiedad "global...." ( no me acuerdo :-( pero lo buscare )
__________________
Salu2
KAYETANO

Cómo hacer preguntas de manera inteligente
Responder Con Cita
  #6  
Antiguo 11-06-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¡Excelente kayetano! Seguramente es eso. De acuerdo a la documentación la variable register_globals está en off por default a partir de la versión 4.2 y vecino trabaja con la versión 4.3.

Según el manual, no se recomienda poner en on esta variable por razones de seguridad que ahí explica. Es una verdadera lástima ya que hace la escritura del código más complicada (por lo menos menos legible).

// Saludos
Responder Con Cita
  #7  
Antiguo 11-06-2003
vecino vecino is offline
Miembro
 
Registrado: may 2003
Ubicación: Málaga (España)
Posts: 36
Poder: 0
vecino Va por buen camino
Hola:

Efectivamente, la ''culpable'' era register_globals, ahora funciona perfectamente. Ha costado trabajillo descubrir el motivo.

Muchísimas gracias a todos los que os habéis molestado en ayudarme.

Saludos para todos.
__________________
:)
Responder Con Cita
  #8  
Antiguo 07-03-2004
Avatar de dmassive
dmassive dmassive is offline
Miembro
 
Registrado: mar 2004
Ubicación: Paraná - Argentina
Posts: 60
Poder: 21
dmassive Va por buen camino
Buenisimo el post.

Ahora 2 preguntas mas.

1- ¿donde modifico register_globals = On?

2- ¿como enviaria el dato de un formulario con register_globals = Off?
Responder Con Cita
  #9  
Antiguo 07-03-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 24
__cadetill Va por buen camino
Cita:
Empezado por dmassive
1- ¿donde modifico register_globals = On?
en el php.ini que hay en c:\Windows

Cita:
Empezado por dmassive
2- ¿como enviaria el dato de un formulario con register_globals = Off?
diría que no se puede, pero no soy ningún exporto del php para asegurarlo
Responder Con Cita
  #10  
Antiguo 07-03-2004
[kayetano] kayetano is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Elche
Posts: 644
Poder: 21
kayetano Va por buen camino
Hola

>2- ¿como enviaria el dato de un formulario con register_globals = Off?

El dato siempre se envia, lo hagas con "register_globals" igual a "on" o a "off" la diferencia es que la pagina que recibe el formulario lo hace como variables globales en el caso de estar a ON y como array de variables en el caso de estar a OFF.

Ejemplos Practivos:
Codiciones del ejemplo 1:
- register_globals = on
- Modo de envia del formulario "post" o "get"
- nombre de la variable a mandar "miVariable"
En este caso cuando recibes la variable puedes trabajar con ella simplemente con el nombre $miVariable.

Codiciones del ejemplo 2:
- register_globals = off
- Modo de envia del formulario "post"
- nombre de la variable a mandar "miVariable"
En este segundo caso debes trabajar con el array $PHP_POST_VARS["miVariable"] o (segun la version de PHP) $_POST["miVariable"]

Codiciones del ejemplo 3:
- register_globals = off
- Modo de envia del formulario "get"
- nombre de la variable a mandar "miVariable"
En este tercer caso debes trabajar con el array $PHP_GET_VARS["miVariable"] o (segun la version de PHP) $_GET["miVariable"]

Por ultimo, existe una funcion de la que no me acuerdo como se llama que es equivalente a "register_globals = on" simplemente debes ponerla al principio de la pagina y ya esta. Si la necesitas me lo indicas y la busco.

Espero haberte aclarado algo.
__________________
Salu2
KAYETANO

Cómo hacer preguntas de manera inteligente
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 18:04:57.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi