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

Iniciado por NIGHTBIRD, 12 Junio 2010, 14:37 PM

0 Miembros y 1 Visitante están viendo este tema.

NIGHTBIRD

Hola a tod@s, soy nuevo en el mundo de PHP. Bueno, aqui os presento mi primer problemilla en PHP.
Tengo el siguiente formulario html form_ruta_nueva.html  :



<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:


<?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, configuracion, o alguna otra funcion que haga lo mismo que extract ($_REQUEST)??

Gracias de antemano :-).

Un saludo.

NIGHTBIRD

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

Aunque no entiendo porque con method=get si me funcionaba.

Un saludo.

TeKNo dUKe

Porque por get las cosas no fueron "encodeadas" en ningun formato ya que las mandas por la url y en post las pasa a un texto plano.

"Lucy is an artist. Lucy paints pictures of Barbara Streisand"

NIGHTBIRD

Cita de: TeKNo dUKe en 12 Junio 2010, 18:23 PM
Porque por get las cosas no fueron "encodeadas" en ningun formato ya que las mandas por la url y en post las pasa a un texto plano.

Amm, ok, gracias por la info ;)