Serdecznie prosze o pomoc / php

Tematy, które tyczą się webmasterstwa, a nie pasują do konkretnych działów.
Nama
Posty: 2
Rejestracja: sob maja 07, 2005 7:59 pm

Serdecznie prosze o pomoc / php

Post autor: Nama »

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!
Asit
Zaczyna działać
Zaczyna działać
Posty: 402
Rejestracja: ndz lis 28, 2004 9:17 pm
Kontakt:

Re: Serdecznie prosze o pomoc / php

Post autor: Asit »

<?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..
Nama
Posty: 2
Rejestracja: sob maja 07, 2005 7:59 pm

Re: Serdecznie prosze o pomoc / php

Post autor: Nama »

Wiec jest to blad w ksiazce? Bo po wprowadzeniu

<?php
echo $_GET['Author'];
?>

Dziala tak jak nalezy...
Asit
Zaczyna działać
Zaczyna działać
Posty: 402
Rejestracja: ndz lis 28, 2004 9:17 pm
Kontakt:

Re: Serdecznie prosze o pomoc / php

Post autor: Asit »

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
Stig
Administrator
Posty: 938
Rejestracja: pn paź 04, 2004 10:52 am

Re: Serdecznie prosze o pomoc / php

Post autor: Stig »

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
ODPOWIEDZ