2012-06-11 18 views
5

Necesito pasar algunos datos juntos con estos 2 métodos (GET AND POST). escribo este método, pero no sé si es seguro:¿Hay alguna manera de usar GET y POST juntos?

<form method="post" action="profile.php?id=<?php echo $_SESSION['id']; ?>" enctype="multipart/form-data"> 
<input type="text" size="40" name="title" > 
<textarea name="description" rows="2" cols="30"></textarea> 
<input id="starit" name="submit" value="Create" type="submit" /> 
</form> 

<?php 
a= $_GET['id']; 
b= $_POST['title']; 
c= $_POST['description']; 
?> 

¿Es este código de seguridad? O hay otras formas de hacer eso?

+3

¿Por qué no solo escribe el ID de sesión en un campo de entrada oculto de su formulario? Al final, el usuario podría leer su ID de sesión de todos modos si examina la fuente del sitio web. – Corsair

+0

Quizás él tenga razones para hacer esto así. – Aelios

Respuesta

11

Esto no es una solicitud GET y POST combinadas; más bien, es una solicitud POST con parámetros de consulta.

Lo que ha escrito sería la manera correcta. Siempre asegúrese de que usted obtenga los campos esperados:

if (isset($_GET['id'], $_POST['title'], $_POST['description']) { 
    // go ahead 
} 

Por cierto, asegúrese de que su salida a escapar:

<form method="post" action="profile.php?id=<?php echo rawurlencode($_SESSION['id']); ?>"> 

Y si usted no está de subir archivos, no es necesario establecer el enctype de su <form>.

+0

Oh, puedes usar múltiples variables con 'isset'? : D – ADTC

+0

@ADTC sí, devuelve true es todo establecido –

1

Esto es mejor:

<form method="post" action="profile.php?id=<?php echo urlencode($_SESSION['id'])); ?>"> 
1

puede utilizar tanto y obtener la solicitud en lugar de GET o POST, con el mismo nombre de parametros que conseguirá el orden "petición de orden" GET y luego enviar por defecto.

http://php.net/request-order

es en php.ini

-1

no escriba atributo del método en su condición de forma y añadir formmethod ="" atributo en la entrada ... por ejemplo:

<input type="submit" formmethod="get" name="inputGet" value="updateGet" > 
<input type="submit" formmethod="post" name="inputPost" value="updatePost" > 
+0

¿quiere decir 'método de formulario'? –

+0

sí, no use el método en su etiqueta de formulario –

Cuestiones relacionadas