2012-06-11 12 views
5

Potrzebuję przekazać niektóre dane razem z tymi 2 metodami (GET AND POST). piszę tę metodę, ale nie wiem, czy jest to bezpieczne:Czy można razem korzystać z GET i POST?

<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']; 
?> 

Czy to jest bezpieczne? Czy istnieją inne sposoby, aby to zrobić?

+3

Dlaczego po prostu nie wpisujesz identyfikatora sesji do ukrytego pola wprowadzania w formularzu? W końcu użytkownik mógł odczytać swoją sesję mimo to, że przegląda źródło strony. – Corsair

+0

Może ma powody, aby to zrobić w ten sposób. – Aelios

Odpowiedz

11

To nie jest połączone żądanie GET i POST; jest to raczej żądanie POST z parametrami zapytania.

To, co napisałeś, będzie właściwą drogą. Zawsze upewnij się, że masz oczekiwanych pola:

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

Btw, upewnij się, że można uciec swój wynik:

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

A jeśli nie jesteś przesyłania plików, nie trzeba ustawić enctype twojego enctype Twojego enctype.

+0

Och, możesz użyć wielu zmiennych z 'isset'? : D – ADTC

+0

@ADTC tak, zwraca true, czy wszystkie są ustawione –

1

To jest lepsze:

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

można używać zarówno i dostać się z prośbą zamiast GET lub POST, z tą samą nazwą params będzie uzyskać „żądanie zamówienie” zamówienie GET i POST przez domyślna.

http://php.net/request-order

jest w php.ini

-1

nie pisać atrybut metody w swojej kondycji i formy dodać formmethod =”" atrybut w wejściu ... na przykład:

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

masz na myśli "metoda formularza"? –

+0

tak, nie używaj metody w tagu formularza –