Wyprowadzenie danych z pętli

Witam, mam problem. Mianowicie męczę się z na pewno prostym formularzem. Ale dopiero zaczynam zabawę z tego rodzaju pracą prosiłbym o pomoc. Opis problemu: Chciałbym aby przy wejściu na stronę wyświetliły mi się dane z określonej tablicy z Mysql. Pobieranie wykonałem w pętli, problem pojawił się gdy chciałem dodać do tego przycisk modyfikujący jeden wpis.

Oto kod:

if(isset($_SESSION['zalogowany'])) {

echo "Witam, ".$_SESSION['login']; 

echo "";

echo '

| '; echo $rekord[‘id’]; echo ’ | '; echo $rekord[‘rejstracja’]; echo ’ | '; echo $rekord[‘dane’]; echo ’ | '; echo $rekord[‘status’]; echo ’ | '; echo “”; echo ’ |

'; if(isset($_POST[‘status’])) { $id = $_POST[“id”]; $za = “UPDATE vozidla SET status=0 where id=$id”; mysql_query(“UPDATE vozidla SET status=1 where id=1”); } [/code]

Gdy nacisnę na zmień status nic się nie dzieje, ponieważ nie mam pojęcia jak pobrać do niego dane z tej pętli. :slight_smile: Z góry dziękuję za pomoc.

Z góry dziękuję.

Pod:

echo $rekord['id'];

dodaj:

echo '';

W ten sposób przekażesz id do skryptu w $_POST[‘id’]. No i nie wiem czy pole submit jest wysyłane… Jeżeli nie to musisz ustawić status używając ukrytego pola input:

No i masz lukę SQL Injection w polu id. To:

1 or id like '.*'

powinno zaktualizować wszystkie rekordy. Może się nieco pomyliłem, dawno się nie bawiłem, ale luka jest. ^^ No i ktoś mógłby nie tylko zaktualizować rekordy, ale też np. usunąć bazę, itp. …

Sprawdź czy id od użytkownika to na pewno liczba.

Dla każdej danej pobranej od użytkownika (z formularza), a używanej w zapytaniu MySQL, powinieneś dla bezpieczeństwa zastosować funkcję mysql_real_escape_string()

http://www.php.net/manual/pl/function.mysql-real-escape-string.php

@pskosinski

Niestety ten sposób nie działa…

while($rekord = mysql_fetch_assoc($zapytanie))

{

	$id = $rekord['id'];

	echo "";

    echo '';

	echo $rekord['id'];

	echo '';

	echo '';

	echo $rekord['rejstracja'];

	echo '';

	echo $rekord['dane'];

	echo '';

	echo $rekord['status'];

	echo '';

	echo "";

	echo '';


}

echo '';

if(isset($_POST['status']))

{

$id = $_POST['id'];

echo $id;

$za = "UPDATE vozidla SET status=0 where id=$id";

mysql_query("UPDATE vozidla SET status=1 where id=1");

}

Dane nawet nie są w $_POST sprawdziłem to przez

echo $id;

@@EDIT Dobra dzięki, ja głupi. Nie przeczytałem całego kodu

$id = $_POST['id'];

echo $id;

$za = "UPDATE vozidla SET status=0 where id=$id";

mysql_query("UPDATE vozidla SET status=1 where id=1");

Każdy kto to przeczyta, raczej zrozumie mój błąd :DD Dzięki wielkie

Tak jak to jest nadal powinno działać niepoprawnie. To:

echo '';

Doda do kodu strony:

Musisz zrobić coś takiego jak podałem:

echo '';