linora Opublikowano 5 Września 2004 Zgłoś Opublikowano 5 Września 2004 Dopiero zaczynam swoją przygodę z PHP i już na samym początku wystąpił problem, z którym sam nie mogę sobie poradzić. Czytam sobie kurs PHP ze strony http://www.me2.pl/kurs.php?d=php&f=5#formularze i mam problem ze skryptem dotyczącym weryfikacji hasła po stronie serwera. Polega on na tym, że gdy stworzę w htmlu stronkę z formularzem, z którego pobierane są login i hasło, a następnie w PHP skrypt sprawdzający ich poprawność i mający po pozytwnej weryfikacji otworzyć inną stronkę, to nie działa to tak jak powinno. Po otwarciu strony z formularzem i wpisaniu wymyślonego loginu i hasła otwiera mi się strona z kodem skryptu, której nazwa jest wartością przy znaczniku FORM ACTION="weryf.php" z htmlowskiego pliku z formularzem. O co chodzi, czemu to nie działa? Czy autor kursu pozostawił coś w domyśle, coś trzeba dopisać do tego skryptu jeszcze, stworzyć inny plik, w którym będzie zapisany poprawny login i hasło? Proszę o pomoc. Może ktoś przetestuje ten skrypt i powie mi co jest nie tak. Plik z formularzem: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><html><head><meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" /><body><FORM ACTION="weryf.php3" METHOD="POST">Podaj login: <INPUT TYPE="text" NAME="form_login"><BR>Podaj hasło: <INPUT TYPE="password" NAME="form_password"><BR><INPUT TYPE="submit" VALUE="zatwierdź"></FORM></body></html> Plik ze skryptem: [php:1:0493555257]<? if ($login==$form_login&&$password==$form_password) { header("Location: tajne.php3"); } else { echo("ACCESS DENIED"); } ?>[/php:1:0493555257] Wstawilem w BBCODE - Noose Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Nargil Opublikowano 5 Września 2004 Zgłoś Opublikowano 5 Września 2004 a twoj serwer obsluguje php ? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
linora Opublikowano 5 Września 2004 Zgłoś Opublikowano 5 Września 2004 a twoj serwer obsluguje php ? Tak, mam zainstalowanego Krasnala i wszystkie inne skrypty jak dotąd działały poprawnie, tylko z tym mam problem. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
SGJ Opublikowano 5 Września 2004 Zgłoś Opublikowano 5 Września 2004 Zmień rozszerzenia plików z php3 na php i to samo w kodzie i zobacz czy działa. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
mr__y Opublikowano 9 Września 2004 Zgłoś Opublikowano 9 Września 2004 Przede wszystkim, popraw to: Plik ze skryptem: <? if ($login==$form_login&&$password==$form_password) { header("Location: tajne.php3"); } else { echo("ACCESS DENIED"); } ?> na coś takiego: <?php if ($login==$_POST['form_login'] && $password==$_POST['form_password']) { header("Location: tajne.php3"); } else { echo("ACCESS DENIED"); } ?> Podstawą, żeby cokolwiek zadziałało, jest pisanie skryptów jak należy :wink: Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
noose Opublikowano 14 Września 2004 Zgłoś Opublikowano 14 Września 2004 1) <? i <?php to to samo :!: 2) UZYWAC TAGOW [ php ] [/ php ] :!: Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
tumeks Opublikowano 14 Września 2004 Zgłoś Opublikowano 14 Września 2004 Zobacz czy tak działa <? if ($login==$_POST['form_login'] && $password==$_POST['form_password']) { include ('tajne.php3'); } else { echo "ACCESS DENIED" ; } ?> Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
noose Opublikowano 14 Września 2004 Zgłoś Opublikowano 14 Września 2004 jak juz to tak: [php:1:ba49a1f31a]<? if (($login == $_POST['form_login']) && ($password == $_POST['form_password'])) { include ('tajne.php3'); } else { echo "ACCESS DENIED" ; } ?>[/php:1:ba49a1f31a] UZYWAC POPRAWNYCH TAGOW :!: Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
mr__y Opublikowano 14 Września 2004 Zgłoś Opublikowano 14 Września 2004 1) <? i <?php to to samo :!:Dokształć się trochę. W przyszłości nie pisz o czymś o czym masz niewielkie pojęcie. Po pierwsze, <?php jest bardziej uniwersalne (na niektórych serwerach <? nie działa). Po drugie, dłuższa wersja - <?php - jest zgodna ze specyfikacją XML, a <? nie. Między innymi dlatego w dokumentacji PHP, zalecane jest stowowanie dłuższego znacznika. Oczywiście, na większości serwerów <? będzie spokojnie działać, ale wg mnie warto od razu pisać porządnie i zgodnie ze standardami. Przejrzyj źródła różnych skryptów, choćby phpBB. 2) UZYWAC TAGOW [ php ] [/ php ] :!:Przepraszam, nie wiedziałem, że takie tagi są - w przyszłości się poprawię Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
noose Opublikowano 15 Września 2004 Zgłoś Opublikowano 15 Września 2004 Jakos pracuje z php od jakiegos czasu i nie zauwazylem, zeby na serwerach ( jakis 30 na ktorych pracowalem ) cos bylo nie tak ze znacznikiem <?. Jezeli znacznik <? mialby byc nie poprawny to po cholere go wprowadzali? tak z ciekawosci. co ma tutaj XML do gadania skoro php to server-side a xml nie ? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Gość Opublikowano 15 Września 2004 Zgłoś Opublikowano 15 Września 2004 ; NOTE: Using short tags should be avoided when developing applications or ; libraries that are meant for redistribution, or deployment on PHP ; servers which are not under your control, because short tags may not ; be supported on the target server. For portable, redistributable code, ; be sure not to use short tags Nie wymaga komentarza.. swoja droga farta masz niesamowitego, ze nie trafiles jeszcze na serwer z short_open_tags Off.. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
ParanoiK Opublikowano 15 Września 2004 Zgłoś Opublikowano 15 Września 2004 Poza tym skąd interpreter php ma wiedzieć, że kod zawarty pomiędzy '<?' i '?>' jest skierowany akurat do niego? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Gość Opublikowano 15 Września 2004 Zgłoś Opublikowano 15 Września 2004 Jak to skad? PHP otrzymuje calutki pliczek i sobie interpretuje tylko to co powinien (wg ustawien konfiguracji). A o tym jakie pliki sa przez niego przepuszczane decyduje serwer http. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
ParanoiK Opublikowano 15 Września 2004 Zgłoś Opublikowano 15 Września 2004 Jak to skad? PHP otrzymuje calutki pliczek i sobie interpretuje tylko to co powinien (wg ustawien konfiguracji). A o tym jakie pliki sa przez niego przepuszczane decyduje serwer http. To było pytanie retoryczne skierowane do noose'a ;] (a konkretnie chodziło o podjęcie decyzji do którego interpretera ma serwer wysłać kod). Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Gość Opublikowano 15 Września 2004 Zgłoś Opublikowano 15 Września 2004 aha ;] (a konkretnie chodziło o podjęcie decyzji do którego interpretera ma serwer wysłać kod).ale przeciez ta decyzje serwer (a przynajmniej apache...) podejmuje na podstawie rozszerzenia pliku a nie zawartosci, wiec nijak to sie ma do tych tagow :) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
ParanoiK Opublikowano 15 Września 2004 Zgłoś Opublikowano 15 Września 2004 Nie wiem, może się mylę. W każdym razie zacząłem zgłębiać problem. Spróbowałem trochę z innej beczki - coś takiego: plik.php [php:1:fdc10c292c] <?xml version="1.0" encoding="iso-8859-2" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml: lang="pl" lang="pl"> <head> <meta http-equiv="Content-Type" content="text/xml; charset=iso-8859-2" /> <title>plóm</title> </head> <body> plóm1 <?php echo "plóm2"; ?> </body> </html> [/php:1:fdc10c292c] U mnie podejrzewam, że '<?xml' interpretuje jako '<?' i 'xml' już jako część skryptu i wywala błąd (włączone short tags). Będę musiał sprawdzić jak to ma się z wyłączonymi krótkimi tagami. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Gość Opublikowano 15 Września 2004 Zgłoś Opublikowano 15 Września 2004 Jest dokladnie tak jak piszesz. Z wylaczonymi short tagami naglowek xml'a przejdzie bez zajakniecia (przyzwyczailem sie juz jednak wyswietlac go za pomoca echo z php, bo raczej mam pecha do serwerow i prawie zawsze jest short tags off). Ale nadal nijak ma sie do to serwera i jego decyzji, do ktorego interpretera slac kod. Akurat to pojdzie w calosci do interpretera php, ktory (w przypadku short_open_tags On) odnajdzie odrazu na poczatku "swoj" tag i zacznie jego wnetrze interpretowac jako kod php, co zakonczy sie bledem. Z wylaczonymi krotkimi tagami "swoj" tag odnajdzie dopiero pozniej i wtedy bedzie all ok. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...