ďťż
Podstrony
|
telcocafeWitam użytkowników,Ostatnio zabrałem się za PHP i napotkałem dosyć dziwne problemy. Mam taki kod: <!DOCTYPE html PUBLIC "-//W3C/DTD XHTML 1.0 Strict//EN" "http://www.w3c.org/TR/xhtml1-strict.dtd"> <html xmlns="http://www.w3c.org/1999/xhtml" xml:lang="pl" lang="pl"> <head> <title>Witaj na stronie (PHP test)</title> <meta http-equiv="content-type" content="text/html; charset= UTF-8"/> </head> <body> <?php $Separator = true; if ($separator) echo 'instrukcja IF'; else echo 'instrukcja ELSE' ?> </body> </html> Po uruchomieniu w przeglądarce niestety nie widzę nic chociaż zdaje się że powinienem zobaczyć instrukcja IF Podczas pracy odnoszę wrażenie że interpreter PHP zachowuje się dość dziwnie np. jeżeli chodzi o formularze to mam taki kod: //------------------------ strona.html <!DOCTYPE html PUBLIC "-//W3C/DTD XHTML 1.0 Strict//EN" "http://www.w3c.org/TR/xhtml1-strict.dtd"> <html xmlns="http://www.w3c.org/1999/xhtml" xml:lang="pl" lang="pl"> <head> <title>STRONA_WWW</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"/> </head> <body> <h1>Wypełnij formularz</h1></br> </br> <form action="actionfile.php" method="post"/> Imię: <input type="text" id="imie"/> Nazwisko: <input type="text" id="nazwisko"/> Data urodzenia: <input type="text" id="data"/> </br></br> <input type="submit" value="Wyślij"/> <input type="reset" value="Anuluj"/> </form> </body> </html> //------------------------ actionfile.php <?php echo "cześć " + $_POST['imie'] + " " + $_POST['nazwisko'] + " urodziłeś się " + $_POST['data'] ?> I jako rezultat otrzymuję tylko: 0 Nie bardzo wiem jak sobie z tym poradzić. Dodam że wszystko uruchamiam ze swojego komputera poprzez serwer Apache. Pierwsze co mi przyszło do głowy to złe ustawiania w php.ini ale zainstalowałem XAMPP (version 1.7.2: Apache 2.2.12 , PHP 5.3.0 + PEAR) więc wszystko powinno normalnie śmigać a tu takie rzeczy się dzieją. Dzięki za jakąkolwiek pomoc. Pozdrawiam. Użytkownik CorVeta edytował ten post 04 grudzień 2009, 20:18 Jeśli nie widzisz nic, to pewnie skrypt wcale nie jest przetwarzany przez parser i kod zwracany jest w surowej postaci - spójrz do źródła, nie zdziwiłbym się, gdyby tam on siedział... Czy plik na pewno nazwałeś .php? Bo domyślnie serwery nie szukają kodu PHP w .htm*... Druga sprawa - zmienne w PHP są case-sensitive czyli musisz zwracać uwagę na wielkość liter. Ty definiujesz $Separator, a sprawdzasz $separator - to są dwie inne zmienne :Tongue: Trzecią sprawą jest błąd w wyświetlaniu wartości przesłanych formularzem. Do łączenia danych typu łańcuchowego używa się kropek, natomiast sumowania stało/zmiennoprzecinkowych znaku dodawania (stąd chcąc dodać stringi otrzymujesz zero). Czyli u ciebie powinno byćecho 'cześć '.$_POST['imie'].' '.$_POST['nazwisko'].' urodziłeś się '.$_POST['data'];I jeszcze coś - nazwy obiektów formularza do których odwołujesz się z poziomu PHP umieszczasz jako atrybut do name, nie id (to bardziej do DOM :Tongue:), czyli np. Nazwisko: <input type="text" name="nazwisko"/> Poza tym, jak nie musisz (nie wywołujesz zmiennych) dane łańcuchowe umieszczaj pomiędzy apostrofami, a nie w cudzysłowie (zerknij na ww. kod). Rada na przyszłość - wyświetlając jakiekolwiek dane na które użytkownik ma wpływ (tablice COOKIES/GET/POST) zawsze filtruj - np. przy pomocy htmlspecialchars() lub strip_tags(). W innym wypadku możesz narazić stronę na atak typu code injection/cross-site scripting (XSS). Tak ogólnie polecam http://4programmers....HP/Podstawy_PHP :) Użytkownik DJ_ProG edytował ten post 04 grudzień 2009, 21:22 Wielkie dzięki, dział! Teraz już rozumiem swoje błędy. A obecny tutorial muszę wywalić bo jest jakiś lipny ;) |
|||
Sitedesign by AltusUmbrae. |