Dwa dni temu zakupilem ksiazke wydawnictwa Helion "Programmer to Programmer - od podstaw PHP4" ktora zostala napisana przez Wankyu Choi, Allan Kent, Chris Lea, Ganesh Prasad i Chris Ullman`a. Ksiazka zapowiada sie interesujaco i po przeczytaniu pierwszych 80 stron dochodze do wniosku ze warto bylo wydac 79 zlotych. Niestety nie bylo dolaczonego oprogramowania. Sciagnolem je bezposrednio z oficjalnej strony PHP w wersji 5.0.4, natomiast server Apache w wersji 1.3.12 (stary ale akurat jak chcialem sciagac nowa wersje to accespoint mi padl i musialem zadowolic sie tym co znajde na starych cdkach z przed dwoch lat).
Po zainstalowaniu serwera oraz PHP zgodnie z instrukcjami zawartymi w ksiazce bez problemu odpalilem cale oprogramowanie a pierwszy skrypt phpinfo(); ukazal mi rozne linie z danymi dotyczacymi mojego oprogramowania na calym komputerze. Wziolem sie do roboty... jak juz wspomnialem po przeczytaniu pierwszych 80 napotkalem na dosyc dziwny problem.
W ksiazce wyraznie zostal napisany program ktory mialem przepisac do edytora tekstowego (w moim wypadku Notatnik pod XP). Pierwsza jego czesc wyglada nastepujaco:
<HTML>
<HEAD></HEAD>
<BODY>
<FORM METHOD=GET ACTION="text.php">
Podaj twojego ulubionego autora:
<INPUT NAME="Author" TYPE="TEXT">
<BR>
<BR>
<INPUT TYPE=SUBMIT>
</FORM>
</BODY>
</HTML>
Całość miała być zapisana w pliku text.html - nastepnym krokiem mialo byc napisanie czegos takiego:
<HTML>
<HEAD></HEAD>
<BODY>
Twoim ulubionym autorem jest :
<?php
echo $Author;
?>
</BODY>
</HTML>
i zapisanie tego w postaci pliku text.php. Wszystko umiescilem w odpowiednim katalogu i odpalilem w przegladarce FireFox - http://localhost/text.html
Wyswietlilo sie pole w ktorym mialbym wpisac mojego ulubionego autora oraz przycisk. Po wpisaniu np. Papcio Chmiel i wcisnieciu przycisku moj serwer laduje text.php w ktorym jest napisane "Twoim ulubionym autorem jest:" i nie ma ani imienia ani nazwiska... w adresie url jest wyraznie napisane http://localhost/text.php?Author=Papcio+Chmiel
Jak narazie to pierwszy problem z jakim sie spotkalem a poniewaz czynnosci na tym poziomie ksiazki sa naprawde banalne nie daruje sobie zanim problemu nie zlikwiduje. Prosze o pomoc! Pozdrawiam!
Serdecznie prosze o pomoc / php
Re: Serdecznie prosze o pomoc / php
<?php
echo $_GET['Author'];
?>
tak powinno byc..
wedlug mnie lepiej przesylasc metoda POST.. jesli zastosujesz taka metode do przesylania danych to $_GET['Author']; bedzie wygladac $_POST['Author'];
metody te roznia sie tym ze GET dodaje do adresu na koncu wszystkie zmienne z wartosciami (w Twoim wypadku ?autor=xxx) a przez POST to wszystko jest ukryte.. jest to bezpieczniejsze..
echo $_GET['Author'];
?>
tak powinno byc..
wedlug mnie lepiej przesylasc metoda POST.. jesli zastosujesz taka metode do przesylania danych to $_GET['Author']; bedzie wygladac $_POST['Author'];
metody te roznia sie tym ze GET dodaje do adresu na koncu wszystkie zmienne z wartosciami (w Twoim wypadku ?autor=xxx) a przez POST to wszystko jest ukryte.. jest to bezpieczniejsze..
Re: Serdecznie prosze o pomoc / php
Wiec jest to blad w ksiazce? Bo po wprowadzeniu
<?php
echo $_GET['Author'];
?>
Dziala tak jak nalezy...
<?php
echo $_GET['Author'];
?>
Dziala tak jak nalezy...
Re: Serdecznie prosze o pomoc / php
to chyba zalezy od serwera.. na krasnalu to co napisali w ksiazce ladnie by Ci chodzilo.. ale zawsze - mimo serwera - powinno sie uzywac $_GET lub $_POST
Re: Serdecznie prosze o pomoc / php
To zależy od ustawień w php.ini. Gdy register_globals ma wartość on wszystkie zmienne zamieniane są na zmienne globalne i można stosować np. $var, natomiast gdy ma wartość off należy zmienną zamieścić w tablicy superglobalnej np. $_POST['var']. Oczywiście to drugie rozwiązanie jest lepsze. Po więcej szczegółów odsyłam do manual'a
