Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Prosty błąd
Forum PHP.pl > Forum > Przedszkole
kasjer1981
Witam wszystkich.
Moja przygoda z php zaczeła się wczoraj więc pytanie może należy do lamerskich ale nie wiem co robić. Przy obsłudze formularzy (i nie tylko) wyskakuje mi błąd o treści:

Fatal error: Call to undefined function: array_key_exists() in e:\foxserv\www\x\pass.php on line 15

to samo jest z _POST i _GET. Wydaje mi się moim skromnym zdaniem że interpreter nie ma jakieś biblioteki lub ona nie jest zarejestrowana... ale nie wiem.
Urzywam php 4.0.5

Prosze o szybką pomoc i zgóry dziękuje

Cały skryp wygląda tak:
//* plik z formularzem
<form method="POST" action="pass.php">
Jak masz na imię?<br>
<input name="imie">
<input type="SUBMIT" value="Uruchom">
</form>

//* plik pass.php<?

if (array_key_exists("imie", $_POST))

{

$a = $_POST["imie"];

if (strlen($a)>0) print "Witaj, $a";

else print " nie przedstawiłeś się sad.gif";

}

else

die ("Brak argumentu \"imie\" w wywołaniu skryptu!");

?>
Kuziu
array_key_exists
(php 4 >= 4.1.0, php 5)


Może poprostu użyj isset
kasjer1981
array_key_exists
(php 4 >= 4.1.0, php 5)


Może poprostu użyj isset


prosiłbym o więcej szczegółów, bo nie bardzo rozumiem. Jestem naprawde b. początkujący i jak na razie mam tylko pobierzną wiedze na ten temat
Ociu
  1. <?php
  2. # zamiast:
  3. if (array_key_exists(&#092;"imie\", $_POST))
  4.  
  5. # daj
  6.  
  7. if(isset($_POST['imie']))
  8. ?>
kasjer1981
Super!! dzięki wszystko działa. Teraz nawet nie czepia się teraz $_POST i $_GET ale problem jest kolejny bo nie przesyła żadnych danych (tzn. imie) poprzez wyżej wymienione funkcjie. Tablice $_POST i $_GET są puste. Natomiast gdy ich nie używam (znaczy się odrazu podstawiam zmienną $imie do kodu) to wszystko działa.
Jakieś pomysły odnośnie przyczyny ?
nospor
a moglbys jeszcze raz pokazac nowy kod. tylko tym razem uzyj bbcode
kasjer1981
  1. <?
  2. if (isset($_POST['imie']))
  3.  
  4. {
  5.  
  6. $a = $_POST[&#092;"imie\"];
  7. if (strlen($a)>0) print &#092;"Witaj, $a\";
  8.  
  9. else print &#092;" nie przedstawiłeś się \";
  10.  
  11. }
  12.  
  13. else
  14. die (&#092;"Brak argumentu \"imie\" w wywołaniu skryptu!\");
  15. ?>


Tutaj tablica $_POST jest pusta
A jeśli zrobie tak po prostu :
  1. ]<?
  2.  
  3. $a = $imie
  4.  
  5. print &#092;"Witaj, $a\";
  6.  
  7.  
  8. ?>

To Wszystko działa smile.gif
rabit1111
Witam
Tak dodam, że zawsze jak chcesz użyć $_POST czy $_GET to należy najpierw sprawdzić czy ona jest zdefiniowana. I do tego służy isset();.
kasjer1981
Mam pytanie do wszystkich. Czy to że mój interpreter nie rozumie wszystkich funkcji (teraz dodatkowo jeszcze nie rozumie "fgets()" ) To może być wina wersji php (4.0.5) jaką mam zainstalowaną ?
rabit1111
A czemu uważasz że nie rozumie, może ty masz coś źle w skrypcie.
revyag
$_POST zostało wprowadzone w php 4.1.0, więc jeśli masz wcześniejszą wersję źródło problemu już znasz.
kasjer1981
No dzięki, teraz jak już wiem że to wina wersji to pewnie nie jeden mój problem zniknie. Dzięki wielkie wszystki.

P.S. Do rabit1111 . Pisząc "interpreter" miałem na myśli program wykonujący skrypty (tzn. php) laugh.gif
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.