Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PHP4 a PHP5
Forum PHP.pl > Forum > PHP
krystekk
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.
kamil4u
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
thek
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.
elektrrrus
W php5 nie ma domyślnie register_globals, więc to nie zadziała. Musisz stosować składnie $_POST['zmienna'].
krystekk
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?
elektrrrus
'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.
krystekk
Dzięki, już znalazłem.
Przypisałem dane z formularza pod zmienną ($zmienna = $_POST['zmienna']) i zrealizowałem polecenie SQL jak w PHP4.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.