Foros del Web » Programando para Internet » PHP »

Usar "extract ($_REQUEST)" con method=post en formulario?

Estas en el tema de Usar "extract ($_REQUEST)" con method=post en formulario? en el foro de PHP en Foros del Web. Hola a tod@s, soy nuevo en el mundo de PHP. Bueno, aqui os presento mi pequeño problemilla. Tengo el siguiente formulario html form_ruta_nueva.html : Código ...
  #1 (permalink)  
Antiguo 11/06/2010, 15:15
 
Fecha de Ingreso: mayo-2010
Mensajes: 32
Antigüedad: 14 años
Puntos: 0
Pregunta Usar "extract ($_REQUEST)" con method=post en formulario?

Hola a tod@s, soy nuevo en el mundo de PHP. Bueno, aqui os presento mi pequeño problemilla.
Tengo el siguiente formulario html form_ruta_nueva.html :
Código PHP:
<html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<
title>Documento sin t&iacute;tulo</title>
</
head>

<
body>

<
form action="admin_ruta_edit.php" method="post" enctype="text/plain"
<
table summary="" width="600" border="6" >
<
tr>
        <
td colspan="2">Nombre:</td>
        <
td colspan="3"><input type="text" name="nom" size="40"  maxlength="35"></td>
</
tr>

<
tr>
        <
td colspan="2">Descripcion:</td>
        <
td colspan="3"><input type="text" name="descrip" size="40" maxlength="50"></td>
</
tr>

<
tr>
        <
td colspan="2">Dias:</td>
        <
td colspan="3"><input type="text" name="dias" size="40"  maxlength="30"> </td>
</
tr>

<
tr>
        <
td colspan="2">Precio:</td>
        <
td colspan="3"><input type="text" name="precio" size="15"  maxlength="20"> </td>
</
tr>

<
tr>
        <
td colspan="2">Número de modalidad:</td>
        <
td colspan="3"><input type="text" name="moda" size="15" maxlength="20"> </td>
</
tr>

<
tr>
        <
td width="20%">Número de zona: </td>
        <
td colspan="3"><input type="text" name="zona" size="15"  maxlength="20"> </td>
</
tr>

<
tr>
        <
td width="20%">Kilómetros: </td>
        <
td colspan="3"><input type="text" name="km" size="15"  maxlength="20"> </td>
</
tr>
        
<
tr>
        <
td width="20%">Fecha de incio (año/mes/dia): </td>
        <
td colspan="3"><input type="text" name="finicio" size="15"  maxlength="20"> </td>
</
tr>
        
<
tr>    
        <
td width="20%">Fecha de fin (año/mes/dia): </td>
        <
td colspan="3"><input type="text" name="ffin" size="15"  maxlength="20"> </td>
</
tr>

<
tr>
        <
td width="20%">Ficha de informacion: </td>
        <
td colspan="3"><input type="file" name="info" size="15"  maxlength="20"> </td>
</
tr>

<
tr>
        <
td width="20%">Idioma (número): </td>
        <
td colspan="3"><input type="text" name="idioma" size="15"  maxlength="20"> </td>
</
tr>

<
tr>
        <
td colspan="3" aling="center"><input type="submit" name="guardar" value="guardar"></td>
        <
td colspan="2"><input type="reset" value="Borrar formulario"> </td>
</
tr>


//Campo oculto que uso en la pagina php para entrar en la primera condicion if
<input type="hidden" name="nuevo" value="nuevoo">

</
table>
</
form>

</
body>
</
html





Ese formulario html invoca a la siguiente pagina php:

Código PHP:
<?php

extract 
($_REQUEST);//Esto extrae todas las variables del formulario


//Si hemos invocado a esta página desde form_ruta_nueva.html
if(isset($nuevo)){
    
$link=mysql_connect("localhost:3307","root","123456");//Conexión con el servidor MySQL
    
$resul=mysql_select_db("bdrutas");//Seleccionamos la BD

    
$auton="SELECT COUNT(codRuta) + 1 FROM rutas;";
    
$result_set=mysql_query($auton);
    
$fila=mysql_fetch_row($result_set);

    
$consulta="INSERT INTO rutas(codRuta,nombre_ruta,descripcion_ruta,dias,precio,modalidad,zona,km,FechaInicio,FechaFin,fichaInformacion, idioma)
VALUES ("
.$fila[0].",'".$nom."','".$descrip."',".$dias.",'".$precio."','".$moda."','".$zona."',".$km.",'".$finicio."','".$ffin."','".$info."',".$idioma.");";

//print($consulta);
    
$mete=mysql_query($consulta);
if(
$mete){print "Datos introducidos correctamente";}
else{print 
"Error al introducir datos";}

    
mysql_close($link);
}

//Si hemos invocado a esta página desde admin_ruta_list.php
else if (isset($codruta)){
.
.
.
.
.
?>
El problema es que, si en el formulario pongo el method="post", al llamar a la página php, el
extract ($_REQUEST);
no obtiene ninguna variable del formulario html, en cambio, si uso el method="get" , el
extract ($_REQUEST);
si que es capaz de obtener las variables del formulario html.

Es esto normal??
Existe alguna solucion o alguna otra funcion que haga lo mismo que extract ($_REQUEST)??

Gracias de antemano .

Un saludo.
  #2 (permalink)  
Antiguo 11/06/2010, 16:42
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Usar "extract ($_REQUEST)" con method=post en formulario?

usa mejor $_POST
  #3 (permalink)  
Antiguo 12/06/2010, 06:11
 
Fecha de Ingreso: mayo-2010
Mensajes: 32
Antigüedad: 14 años
Puntos: 0
Respuesta: Usar "extract ($_REQUEST)" con method=post en formulario?

Cita:
Iniciado por maycolalvarez Ver Mensaje
usa mejor $_POST
Pero es que necesito recoger el boton del formulario que llama a esa pagina web php, y dependiendo de eso (de que botón, es decir, desde que formulario llamo a la pagina php) entrará por el primer IF, o por el segundo, etc etc... como puedo hacerlo??

Sé que puede ser una pregunta algo simple, pero porque no puedo usar extract ($request); si uso el method=post ???

Como podria recoger las variables del formulario usando method=post, es decir, como debo de usar $_POST en la pagina PHP??

Gracias.

Un saludo.
  #4 (permalink)  
Antiguo 12/06/2010, 10:21
 
Fecha de Ingreso: mayo-2010
Mensajes: 32
Antigüedad: 14 años
Puntos: 0
Respuesta: Usar "extract ($_REQUEST)" con method=post en formulario?

Hola de nuevo. Ya lo he solucionado. El "error", era que debia eliminar el:
enctype="text/plain"
en la creacion del formulario.

Aunque con method=get me funciona tanto con el enctype="text/plain" como si él.

Un saludo.

Etiquetas: formulario
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 20:19.