Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Admin zainstalował PHP5 i formularz mi nie działa, pomożecie
Forum PHP.pl > Forum > Przedszkole
kardamon
Witam wszystkich.

Miałem zrobić prosty formularz zgłoszeniowy na konferencję - działał, ale na moim serwerze został zainstalowany PHP5 i przestał.

Problem polega na tym, że zmienna o nazwie pola w formularzu nie zawiera wartości tego pola. Formularz jest wysyłany metodą post. Mówiąc inaczej skrypt nie odczytuje danych wysłanych przez formularz, np. pole "Nazwisko" ma zmienną $nazwisko ale nie jest ona odczytywana przez skrypt (zmienna ta jest pusta).

Taki prosty testowy formularz znajduje się tu: knsa.amu.edu.pl/test/test.php
a wygląda tak:

Kod
<p>Tu wyswietlaja sie dane z formularza:</p>

<?php echo("<p>Nazwisko: $nazwisko<br />Imie: $imie</p>"); ?>



<h1>Formularz testowy</h1>



<p>Tu jest formularz:</p>

<form method="post" action="./test.php" enctype="application/x-www-form-urlencoded" >

Nazwisko: <input type="text" name="nazwisko" size="50" />

<br /><br />

Imie: <input type="text" name="imie" size="50" />

<br /><br />

<input type="submit" value="Wyslij" />

</form>


Potrafi ktoś z was przystosować to do PHP5?
Z góry dziękuję za pomoc.
mat3u
Spróbuj dostać się do zmiennych za pomocą tablicy $_POST. Np.

$_POST[imie] i $_POST[nazwisko]

widać admin wyłączył register_globals
kardamon
Dzięki wielkie! Pomogło. biggrin.gif
Cysiaczek
No właśnie. Jakiej konstrukcji w końcu użyć

$_POST[zmienna]
$_POST['zmienna']
$_POST["zmienna"]

Czy to ma głębszeznaczenie?
scanner
$_POST[zmienna]

php próbuje znaleźć stałą o nazwie zmienna, nie znajduje jej, wyświetla warning i traktuje zmienna jako string. Generowany jest warning, czyli - źle.

$_POST['zmienna']
$_POST["zmienna"]
Obie konstrukcje są dobre. Poszukaj informacji na forum o róznicach pomiędzy ' a ".
Osobiscie " używam tylko wtedy jeśli string zawiera kody sterujące jak np. rn czy podobne. Dużo ludzi pisze też:
$_POST["$foo"]
w przypadku, gdy w $foo zawiera sie szukany index, ale to jest nieoptymalne, gdzyż php musi sparsowac string i wydobyć z niego zmienna po czym dopiero pobrać jej wartość, dlatego zamiast tego, lepiej pisać:
$_POST[$foo] - tu pomijamy parsowanie stringa.
Cysiaczek
Rozumiem teraz. Dzięki.
Remiq
To raczej nie jest temat z php5...
Paul
Nie PHP5 a PHP4 i to dosc stare tongue.gif

Cytat
W php 4.2.0 i późniejszych, domyślne ustawienie, które udostępniało predefiniowane zmienne w zasięgu globalnym, zostało zmienione. Zmienne nadchodzące metodą GET i POST oraz zmienne serwera domyślnie nie są już umieszczane w zasięgu globalnym. Zamiast tego umieszczane są w odpowiednich tablicach superglobalnych.  

Nadal można uruchomić udostępnianie tych zmiennych w zasięgu globalnym przez ustawienie dyrektywy konfiguracyjnej register_globals na "On" w pliku php.ini.
Remiq
To moze jakiś moderator to przeniesie do "poczatkujących"..
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.