![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 30.05.2011 Ostrzeżenie: (0%) ![]() ![]() |
Czy PHP5 potrafi obsłużyć polecenia PHP4?
Mam stary skrypt, napisany w PHP4 i wrzuciłem go na stronę z obsługą PHP5 i niestety nie działa. Czy w PHP5 jest np. wyświetlanie danych z formularza poprzez polecenie: print ".$imie."; Bo mi to nie chce działać. Bardzo proszę o pomoc, bo nie znam składni PHP5, pracowałem tylko na PHP4. |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Tak. PHP jest kompatybilny wstecz. Twoim problem jest obsługa formularzy. W PHP5 wyłączono register_globals, ze względów bezpieczeństwa. Należy korzystać ze zmiennych superglobalnych $_POST i/lub $_GET.
Edit: http://www.egrafik.pl/kurs-php/transition....ter_globals.php Ten post edytował kamil4u 31.05.2011, 21:12:07 -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Polecenia SĄ obsługiwane, choć czasem są niewielkie różnice w wyniku. Problemem jednak są DOMYŚLNE ustawienia konfiguracyjne, które pomiędzy php4 i php5 się zmieniły. Jeśli więc chcesz na php5 pracować jak na php 4 to zazwyczaj wystarczy zajrzeć do phpinfo i ustawić dla obu wersji tak samo je.
-------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 175 Pomógł: 18 Dołączył: 11.06.2007 Skąd: Koszalin/Poznań Ostrzeżenie: (0%) ![]() ![]() |
W php5 nie ma domyślnie register_globals, więc to nie zadziała. Musisz stosować składnie $_POST['zmienna'].
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 30.05.2011 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki, rzeczywiście składnia $_POST['zmienna'] działa.
Jednak mam jeszcze problem z wprowadzaniem danych z formularza do bazy SQL. W php4 działało tak: $query1="INSERT INTO dane (lp, imie, nazwisko) "; $query1.="VALUES('', '$imie', '$nazwisko');"; $wynik=mysql_query($query1) or die ("błąd w poleceniu"); Teraz oczywiście (w PHP5) nie działa z powodu zmiennych globalnych. Jak to przerobić na PHP5? Próbowałem tak: $query1="INSERT INTO dane (lp, imie, nazwisko) "; $query1.="VALUES('', '$_POST['imie']', '$_POST['nazwisko']');"; $wynik=mysql_query($query1) or die ("błąd w poleceniu"); ale niestety wywala błąd i nie wprowadza danych do bazy. Proszę o pomoc, jak to zrealizować w PHP5? |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 175 Pomógł: 18 Dołączył: 11.06.2007 Skąd: Koszalin/Poznań Ostrzeżenie: (0%) ![]() ![]() |
'VALUES(', $_POST['imie'].', '.$_POST['nazwisko'].');';
Ale w ten sposób nie robi się nigdy, chyba że lubisz mieć ataki sql injection. Najlepiej doczytać o pdo i bindowaniu danych, albo chociaz użyć czegoś w rodzaju mysql_real_escape_string na danych z formularza. Ten post edytował elektrrrus 1.06.2011, 09:01:04 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 30.05.2011 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki, już znalazłem.
Przypisałem dane z formularza pod zmienną ($zmienna = $_POST['zmienna']) i zrealizowałem polecenie SQL jak w PHP4. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 01:49 |