![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 0 Dołączył: 25.06.2008 Ostrzeżenie: (0%)
|
Witam,
mam taki kod:
Do tego pliku przekazuję zmienne w tablicy data metodą POST. Jednak gdy zrobię refresh (F5) to wszystko znika - zmienne się kasują. Jak zapisać je na stałe, aby się nie kasowały? Jest jeszcze kwestia tego, że nie działa zapisywanie wartości do SQL poprzez Update - nie wiem co tam jest nie tak. Jeśli macie jakieś pomysły to pomoc mile widziana. |
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 49 Pomógł: 1 Dołączył: 9.10.2008 Ostrzeżenie: (0%)
|
Łojeju, chłopie.. :)
$_POST jest tablicą, która dotyczy danych wchodzących. Jak naciśniesz F5, to nie odświeżasz formularza, więc $_POST jest tracony. Proste rozwiązanie - przepisz $_POST do $_SESSION. Możesz poszukać w dokumentacji funkcji array_merge o ile się nie mylę, a na pewno możesz spróbować foreach($_POST as $k=>$v) $_SESSION[$k]=$v; To takie "nieeleganckie" trochę rozwiązanie ale zadziała. Zrób tak na samym początku a potem odwołuj się tylko do $_SESSION. Jeśli formularz nadpiszesz, to automatycznie dane się uaktualnią. Ma to jednak wadę - w $_SESSION będziesz miał zajęte te zmienne, które dodałeś z $_POST. Co do drugiej sprawy - najpierw pozbądź się SQL Injection, a potem spróbuj odpalić to zapytanie w konsoli MSSQLa - powinien Ci powiedzieć jaki jest błąd. |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 0 Dołączył: 25.06.2008 Ostrzeżenie: (0%)
|
Ok. Za pierwszą część dzięki.
Co do drugiej to: Jak pozbyć się SQL injection? Zapytanie jest ok - tylko jak mam więcej niż jeden rekord to działa źle - bo zawsze spawdza warunki w ostatnim - a wpisuje do wszystkich to samo. |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 1 182 Pomógł: 115 Dołączył: 4.03.2009 Skąd: Myszków Ostrzeżenie: (0%)
|
Cytat Jak naciśniesz F5, to nie odświeżasz formularza, więc $_POST jest tracony. Większość przeglądarek wyświetli wtedy informację o potrzebie wysłania dodatkowych danych, i przyciski tak/nie (IMG:style_emoticons/default/winksmiley.jpg) . SQL Injection najprościej pozbyć się używając prepared statements, unikniesz wtedy konieczności escape'owania znaków, gdzie mógłbyś o jakiejś zmiennej zapomnieć. |
|
|
|
![]() ![]() |
|
Aktualny czas: 22.12.2025 - 23:11 |