Foros del Web » Programando para Internet » PHP »

Formulario no funciona en servidor local

Estas en el tema de Formulario no funciona en servidor local en el foro de PHP en Foros del Web. Hola gente. Tengo hecho un formulario en HTML con PHP en modo POST. Cuando lo subo al servidor real, en internet, anda perfento. Pero cuando ...
  #1 (permalink)  
Antiguo 31/01/2009, 07:36
Avatar de darthcolo  
Fecha de Ingreso: enero-2009
Mensajes: 51
Antigüedad: 15 años, 3 meses
Puntos: 0
Pregunta Formulario no funciona en servidor local

Hola gente. Tengo hecho un formulario en HTML con PHP en modo POST. Cuando lo subo al servidor real, en internet, anda perfento. Pero cuando lo utilizo en el servidor local, no funciona. Ya he chequeado que se conecte bien a la base de datos y todo... simplemente ocurre esto:

Código HTML:
<form action="loguin.php" method="post" name="form1" id="form1">

. . .

<input name="Consultar" type="submit" id="Consultar" value="Consultar" />

. . .

</form> 
Resulta que mas adelante en el codigo chequeo que la variable $Consultar generada cuando se hace click en el boton Consultar. Pero esa variable siempre esta vacia!! Es como si localmente, cuando hago click en Consultar, ese click no funcionara. Pero todo funciona OK en el servidor en Internet.

Alguien sabe a que se puede deber esto? Gracias!
  #2 (permalink)  
Antiguo 31/01/2009, 08:14
Avatar de JoniJnm  
Fecha de Ingreso: mayo-2007
Ubicación: Madrid
Mensajes: 264
Antigüedad: 16 años, 11 meses
Puntos: 4
Respuesta: Formulario no funciona en servidor local

la variable $Consultar o $_POST['Consultar'] ?
__________________
JoniJnm.es
  #3 (permalink)  
Antiguo 31/01/2009, 08:27
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Formulario no funciona en servidor local

Cita:
Resulta que mas adelante en el codigo chequeo que la variable $Consultar generada cuando se hace click en el boton Consultar. Pero esa variable siempre esta vacia!! Es como si localmente, cuando hago click en Consultar, ese click no funcionara. Pero todo funciona OK en el servidor en Internet.
register_globals

En vez de $Consultar, utiliza $_POST['Consultar'].
  #4 (permalink)  
Antiguo 31/01/2009, 08:27
Avatar de PeruClic  
Fecha de Ingreso: junio-2007
Ubicación: Arequipa, Peru
Mensajes: 533
Antigüedad: 16 años, 9 meses
Puntos: 7
Respuesta: Formulario no funciona en servidor local

los post no funcionan localmente con la misma config q en la web
  #5 (permalink)  
Antiguo 31/01/2009, 11:19
Avatar de darthcolo  
Fecha de Ingreso: enero-2009
Mensajes: 51
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Formulario no funciona en servidor local

Cita:
Iniciado por PeruClic Ver Mensaje
los post no funcionan localmente con la misma config q en la web
Y como funcionan localmente? con $_POST[Consultar] ?

No cambia nada su duncionamiento de poner $Consultar a $_POST[Consultar] no? (me refiero a la version on-line)

Otra cosa, no necesito hacer register_globals de esta variable, porque no la uso en otras paginas. No se si se referian a eso.

Última edición por darthcolo; 31/01/2009 a las 11:27
  #6 (permalink)  
Antiguo 31/01/2009, 12:31
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 5 meses
Puntos: 18
Respuesta: Formulario no funciona en servidor local

siempre trata de utilizar las variables superglobales $_X (POST,GET.REQUEST,etc), para no tener problema independientemente de la configuracion del servidor, por otro lado la sintaxis de $_POST que quieres utilizar es de esta forma.

$_POST["Consultar"];

suerte
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #7 (permalink)  
Antiguo 31/01/2009, 13:08
Avatar de darthcolo  
Fecha de Ingreso: enero-2009
Mensajes: 51
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Formulario no funciona en servidor local

Ok, muchas gracias...

Llendonos un poco sobre la tangente. Nunca tuve educacion FORMAL sobre todo esto, siempre leyendo por mi cuenta... Algun libro para recomendar que trate sobre programacion y sobre este tipos de cosas? (ya he leido Programacion PHP por la revista Users, mas un monton de info de internet)
  #8 (permalink)  
Antiguo 31/01/2009, 13:25
Avatar de darthcolo  
Fecha de Ingreso: enero-2009
Mensajes: 51
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Formulario no funciona en servidor local

Surgio un nuevo problema...

Código PHP:
if($codcli==null || $passcli==null || $Salir!=null){
if(
$_POST['Consultar']!=null){
                echo 
"Debe completar el c&oacute;digo de cliente y su contrase&ntilde;a.";
            }

Utilizo eso para validar que cuando se apriete el boton, se chequeen los campos de texto que el usuario debe completar...

Pero cuando completo los dos campos... sigue entrando en el if... alguna opinion?

============= EDITADO ================

Ya solucione esta parte, me faltaron un par de $_POST.

Ahora surge un nuevo problema para manejar las sesiones en php:

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\ServidorWeb\xampp\htdocs\xzxz\loguin.php:6) in C:\ServidorWeb\xampp\htdocs\iparraguirre\loguin.ph p on line 129

Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0

Voy a investigar sobre register_globals a ver que puede ser.

Última edición por darthcolo; 31/01/2009 a las 13:56
  #9 (permalink)  
Antiguo 31/01/2009, 13:25
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 5 meses
Puntos: 18
Respuesta: Formulario no funciona en servidor local

en el sitio http://itstudy8.org, hay una lista de buenos libros sobre programación, sólo que la descarga es de otro servidor, pero vale la pena que visites.

ah si sabes inglés creo que te serán de mucha utilidad.

suerte
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #10 (permalink)  
Antiguo 31/01/2009, 13:55
Avatar de darthcolo  
Fecha de Ingreso: enero-2009
Mensajes: 51
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Formulario no funciona en servidor local

Bueno, puse register_global = on en todos los php.ini que vi de XAMPP, y ese error no aparece mas. el que sigue apareciendo es :

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\ServidorWeb\xampp\htdocs\xzxz\loguin.ph p:6) in C:\ServidorWeb\xampp\htdocs\iparraguirre\loguin.ph p on line 129

Alguien tiene alguna idea?
  #11 (permalink)  
Antiguo 31/01/2009, 13:59
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 5 meses
Puntos: 18
Respuesta: Formulario no funciona en servidor local

eso es porque estas enviando algun caracter, o estas imprimiendo(con echo, print, etc) algun texto antes de enviar enviar la sesion, para eso antes de session_start() no debe de haber ningun epsacio en blanco o algun caracter ni echo o print.
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #12 (permalink)  
Antiguo 31/01/2009, 14:11
Avatar de darthcolo  
Fecha de Ingreso: enero-2009
Mensajes: 51
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Formulario no funciona en servidor local

Cita:
Iniciado por argy Ver Mensaje
eso es porque estas enviando algun caracter, o estas imprimiendo(con echo, print, etc) algun texto antes de enviar enviar la sesion, para eso antes de session_start() no debe de haber ningun epsacio en blanco o algun caracter ni echo o print.
Al session_start() lo tengo dentro de un if... entes de él tengo una tabla hecha en HTML, no puedo cambiar el orden... asi que coloqué a session_start() dentro de una funcion php, apenas abro la etiqueta <BODY>....

Mismo problema...

El tema es que tengo que iniciar diferentes sesiones segun quien se loguee...

========================= EDITADO =========================

Decidi simplificar las cosas. Coloco un session_start() al comienzo de todo. Luego tengo dos posibilidades de redireccion en la pagina, con header("Location: http://www.........php");

Y ahora me aparece esto: Warning: Cannot modify header information - headers already sent by (output started at C:\ServidorWeb\xampp\htdocs\xzxz\loguin.php:27) in C:\ServidorWeb\xampp\htdocs\iparraguirre\loguin.ph p on line 19

Me estoy volviendo loko... :(

Última edición por darthcolo; 31/01/2009 a las 14:18
  #13 (permalink)  
Antiguo 31/01/2009, 14:14
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 5 meses
Puntos: 18
Respuesta: Formulario no funciona en servidor local

por eso coloca la funcion session_start() al inicio de tu script, para que no tengas problemas.
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #14 (permalink)  
Antiguo 31/01/2009, 14:23
Avatar de darthcolo  
Fecha de Ingreso: enero-2009
Mensajes: 51
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Formulario no funciona en servidor local

Bueno, por lo que lei el "header()" tambien se tiene que poner antes que cualqueir cosa... pero si yo los necesito setear segun ocurra un evento (con dos IF)... como hago!?
  #15 (permalink)  
Antiguo 31/01/2009, 14:33
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 5 meses
Puntos: 18
Respuesta: Formulario no funciona en servidor local

un header puedes utilizarlo de esta manera tambien
Cita:
<?php
if($x==1)
{
echo "válido";
}
else
{
header('Location:redireccion.php');
exit;
}
?>
no sé si te refieres a eso, sorry sino te entendí
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #16 (permalink)  
Antiguo 31/01/2009, 14:38
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Formulario no funciona en servidor local

Mientras los ifs o cualquier otro código que pones antes de header() no genere salidas al navegador, no hay problema.

  #17 (permalink)  
Antiguo 31/01/2009, 14:47
Avatar de darthcolo  
Fecha de Ingreso: enero-2009
Mensajes: 51
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Formulario no funciona en servidor local

=== EDITADO ===

Uf... voy a tener que replantear todo el codigo entonces. Gracias. Volvere si me surgen mas problemas.

Colocando esta funcion al comienzo:

Código PHP:
session_start();
//==============================================================================================================
//===============================================    FUNCIONES    ==============================================
//================================ session_start() debe estar antes que cualquier cosa =========================
function sesion1()
{
//session_start(); // Debe estar en la otra pagina tambien
$loguin='1';
header("Location: http://www.xzxz.com/basedatos.php"); // Cargo la pagina que debe poder ver el usuario logueado exitosamente
session_register("loguin"); //Convierte la variable "loguin" en global para ESTA sesion
session_register("codcli");

Y llamandola despues de que se produzcan salidas al navegador... tampoco funciona... no? porque a mi no me anda

Acabo de bajar 2 libros de PHP y MySQL... espero poder desburrarme definitivamente jaja

Última edición por darthcolo; 31/01/2009 a las 14:54
  #18 (permalink)  
Antiguo 31/01/2009, 15:12
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Formulario no funciona en servidor local

No. El que incluyas el session_start() en una función no evita que se genere ese error. La función no se ejecuta hasta que es llamada, y si antes de lamarla hay alguna salida, pues tendrás el mismo error.

Y es cuestión de lógica. No tiene sentido querer imprimir algo en pantalla si después vas a redireccionar.

  #19 (permalink)  
Antiguo 31/01/2009, 15:20
Avatar de darthcolo  
Fecha de Ingreso: enero-2009
Mensajes: 51
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Formulario no funciona en servidor local

Cita:
Iniciado por okram Ver Mensaje
No. El que incluyas el session_start() en una función no evita que se genere ese error. La función no se ejecuta hasta que es llamada, y si antes de lamarla hay alguna salida, pues tendrás el mismo error.

Y es cuestión de lógica. No tiene sentido querer imprimir algo en pantalla si después vas a redireccionar.

El tema es que yo creo una tabla en HTML donde el usuario tiene que hacer click... y si hace click, redirecciono, todo en el mismo archivo php. No me imagino otra forma de hacerlo
  #20 (permalink)  
Antiguo 31/01/2009, 15:26
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Formulario no funciona en servidor local

Entonces estamos hablando de 2 partes del sscript que no tendrían relación alguna una con la otra. Si tienes que imprimir HTML y la redirección está sujeta al click del usuario, entonces deberás tener un scrript que imprima la tabla con el link, y más nada; y otro script que procese el request proveniente del link y haga la redirección. Ambos scripts pueden estar en el mismo archivo php, pero deberás tener entonces una manera de diferenciarlos, como por ejemplo una variable de url en el link. Así, al principio verificas si existe tal variable, y si sí, entonces rediriges sin mostrar nada.

Por otro lado, por qué no simplemente apuntas el link hacia la página a la que quieres redirigir?

  #21 (permalink)  
Antiguo 31/01/2009, 15:30
Avatar de darthcolo  
Fecha de Ingreso: enero-2009
Mensajes: 51
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Formulario no funciona en servidor local

Cita:
Iniciado por okram Ver Mensaje
Entonces estamos hablando de 2 partes del sscript que no tendrían relación alguna una con la otra. Si tienes que imprimir HTML y la redirección está sujeta al click del usuario, entonces deberás tener un scrript que imprima la tabla con el link, y más nada; y otro script que procese el request proveniente del link y haga la redirección. Ambos scripts pueden estar en el mismo archivo php, pero deberás tener entonces una manera de diferenciarlos, como por ejemplo una variable de url en el link. Así, al principio verificas si existe tal variable, y si sí, entonces rediriges sin mostrar nada.

Por otro lado, por qué no simplemente apuntas el link hacia la página a la que quieres redirigir?

Entiendo.

El tema es asi, tengo dos campos de texto y un boton (Consultar). Cuando se introduce cierto tipos de datos en esos campos, se debe redirigir a una pagina X, pero cuando se introducen otros tipos de datos, se debe redirigir a una pagina Y. Ademas, por supuesto, de chequear que los datos introducidos existan en la base de datos.

Entonces lo que deberia hacer, es poner todos estos chequeos, antes de que salga cualquier cosa al navegador. No es dificil, pero tengo que cambiar toda la pagina jeje.

Muchas gracias por toda la ayuda, realmente este FORO es de lo mejor, felicito a toda la comunidad y espero poder ayudar cuando tenga mas maduro mi conocimiento de PHP y MySQL.
  #22 (permalink)  
Antiguo 10/10/2012, 18:48
 
Fecha de Ingreso: mayo-2010
Ubicación: Valencia. Venezuela
Mensajes: 30
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Formulario no funciona en servidor local

Cita:
Iniciado por darthcolo Ver Mensaje
Hola gente. Tengo hecho un formulario en HTML con PHP en modo POST. Cuando lo subo al servidor real, en internet, anda perfento. Pero cuando lo utilizo en el servidor local, no funciona. Ya he chequeado que se conecte bien a la base de datos y todo... simplemente ocurre esto:

Código HTML:
<form action="loguin.php" method="post" name="form1" id="form1">

. . .

<input name="Consultar" type="submit" id="Consultar" value="Consultar" />

. . .

</form> 
Resulta que mas adelante en el codigo chequeo que la variable $Consultar generada cuando se hace click en el boton Consultar. Pero esa variable siempre esta vacia!! Es como si localmente, cuando hago click en Consultar, ese click no funcionara. Pero todo funciona OK en el servidor en Internet.

Alguien sabe a que se puede deber esto? Gracias!
Revisa en el php.ini la linea Register_globals que esté en Off
En el script de respuesta, debes llamar la variable: $consulta=$_POST["consulta"];
Lamentablemente no colocaste el formulario completo para revisarlo. Yo tengo un Housing con Apache, PHP y Mysql y me funciona perfecto. Si está utilizando Wapache, no te puedo ayudar porque a mí no me funciona con los formularios EnciType.
Salu2
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 18:46.