Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL] Pętla foreach ze zmiennymi $_POST do zapytanie MySQL, na jednym serwerze dziala na drugim nie...
Volume
post
Post #1





Grupa: Zarejestrowani
Postów: 283
Pomógł: 11
Dołączył: 11.10.2004
Skąd: 3c

Ostrzeżenie: (0%)
-----


Mam taki problem, że robie przenosiny mojego skryptu na inny serwer i tam pojawia sie problem przy dodawniu rekordów do tabeli.
Zrobiłem sobie w pętli uproszczenia dla zmiennych POST, wszystko to działało na moim serwerze natomiast na obecnym nie chce działać - a dokładnie chodzi o to, że zmienne z formularza po przetworzeniu widać w echo - a nie chca sie zapisywać w bazie.

  1. foreach($_POST as $idx=>$wartosc)
  2. {
  3. $idx=$_POST[$idx]; // plus np. rozne funkcje n zmiennych post
  4. echo $idx.'<br />'; //to wyswietla normalnie
  5. }
  6. mysql_query("UPDATE $tabelka2 SET cena_sniadan='$cena_sniadan', cena_obiadow='$cena_obiadow', cena_kolacji='$cena_kolacji' WHERE id_str=1"); // nie zapisuje... - tzn zapisuje jako puste pola

Jeśli natomiast zmiennym przypisze bez petli zamienniki:
  1. $cena_sniadan=$_POST['cena_sniadan'];
  2. $cena_obiadow=$_POST['cena_obiadow'];
  3. itd.

To dziala ok.
Skąd taka blokada i czy jest jakas opcja/sposob aby to jakos odblokowac, w tym przypadku jest malo zmiennych wiec mozna to recznie poprawic, ale w wielu innych przypadkach mam po kilkanascie/dziesiat zmiennych - jak sobie z tym poradzic?
Go to the top of the page
+Quote Post
lobopol
post
Post #2





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

Ostrzeżenie: (0%)
-----


Na localu masz na 99,9% register_global = on co jest bardzo złą praktyką, bez tej pętli na lokalu ci powinno działać bo ona w tym wypadku praktycznie nic nie robi.


--------------------
Go to the top of the page
+Quote Post
Volume
post
Post #3





Grupa: Zarejestrowani
Postów: 283
Pomógł: 11
Dołączył: 11.10.2004
Skąd: 3c

Ostrzeżenie: (0%)
-----


Tak zgadza sie na moim pierwszym serwerze gdzie dziala foreach mam register_globals="on" na nowym mam off.
To jak sie powinno umieszczac zmienne POST w zapytaniu mysql? Jedyne wzjscie to przypisywac kazdej zmiennej POST do zapisania inna zmienna?:
  1. $cena_sniadan=$_POST['cena_sniadan'];
  2. $cena_obiadow=$_POST['cena_obiadow'];
  3. itd.

Sprawdzalem jak daje do zapytania mysql zmienne w postaci tablicy POST to dzieje sie wlasnie to samo tak jak bym uzyl petli - czyli zapytanie mysql nie widzi tresc zmiennych. Mam rozumiec, ze to jest celowe ze wzgledow bezpieczenstwa. Jak wiec to sie powinno fachowo robic?

Ten post edytował Volume 31.03.2012, 11:23:47
Go to the top of the page
+Quote Post
lobopol
post
Post #4





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

Ostrzeżenie: (0%)
-----


Przypisywać zmienne i odpowiednio je walidować.


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 06:42