Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> PHP4 a PHP5
krystekk
post 31.05.2011, 21:02:15
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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
kamil4u
post 31.05.2011, 21:11:19
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


--------------------
Go to the top of the page
+Quote Post
thek
post 31.05.2011, 21:13:26
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
Go to the top of the page
+Quote Post
elektrrrus
post 31.05.2011, 21:13:58
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'].
Go to the top of the page
+Quote Post
krystekk
post 1.06.2011, 08:53:41
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?
Go to the top of the page
+Quote Post
elektrrrus
post 1.06.2011, 08:58:55
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
Go to the top of the page
+Quote Post
krystekk
post 1.06.2011, 10:46:26
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.
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 01:49