Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Problem z podstawianiem zmiennych do skryptu php
Forum PHP.pl > Forum > Przedszkole
gringo001
W ramach nauki php utworzyłem dwa pliki:
-prosty formularz w HTMLu o nazwie formularz1.html:

<html><body>
<form action=witaj.php>
Podaj swoje imie: <input type=text name="imie" value="nieznane"><br>
Podaj swoj wiek: <input type=text name="wiek" value="nieznany"><br>
<input type=submit value="Kliknij aby uruchomic skrypt">
</form>
</body></html>

-oraz plik witaj.php do którego powinny byc podstawiane zmienne "imie" oraz "wiek" z formularza:

<html><body>
<?
echo "Witaj $imie!<br> Masz $wiek lat."
?>
</body></html>

Problem polega na tym, że po odpaleniu "formularz.html", wprowadzeniu danych i wciśnieciu przycisku "Kliknij aby uruchomic skrypt" odpala się witaj.php ale nie są do niego podstawiane zmienne. Czyli wygląda to tak:

Witaj !
Masz lat.

Przy czym adres w polu adresowym przeglądarki, wygenerowany przez formularz1.html wygląda poprawnie:
http://localhost/witaj.php?imie=luk&wiek=23

Nie mogę pojąc co jest przyczyną takiego stanu rzeczy tymbardziej że przyklad wziąłem z książki.

Proszę pomórzcie, bo jak tak dalej pójdzie to chyba kompa przez okno wyrzucę smile.gif
skowron-line
  1. <?php
  2. $witaj
  3. ?>

zamien na
  1. <?php
  2. $_POST['witaj']
  3. ?>


czyli w twoim przypadku bedzie

albo
  1. <?php
  2. echo"witaj $_POST[imie]";
  3. ?>


albo
  1. <?php
  2. echo'witaj '.$_POST['imie'].'masz lat....';
  3. ?>


edit
  1. <form action=witaj.php>
  2. Podaj swoje imie: <input type=text name="imie" value="nieznane"><br>
  3. Podaj swoj wiek: <input type=text name="wiek" value="nieznany"><br>
  4. <input type=submit value="Kliknij aby uruchomic skrypt">
  5. </form>
  6. </body></html>


w
  1. form action="witaj.php"
brakuje metody wysylania danych
czyli ma by
  1. form action="witaj.php" method="post"
lub method =get
gringo001
Wielkie dzięki! Bardzo mi pomogłeś. Nie mogę tylko skumac czemu w ksiązce są podane błędne listingi.
mike
Nie sa błędne tylko przestarzałe.

To czy masz dostęp do zmiennych bezpośrednio czy przez tablice superglobalne $_POST, $_GET, ... zalezy od zmienej konfiguracyjnej register_globals.

P.S.
Proszę poprawić temat wątku.
Nie jest zgodny z zasadami pisania na forum Przedszkole
gringo001
Faktycznie zmieniłem register_globals na "On" i działają moje stare skrypty smile.gif .

Jestem jednak wkurzony, ponieważ w książce, z której korzystam "php Stwórz własną stronę internetową" Dmitry Koterova zostaly opisane krok po kroku etapy instalacji i konfiguracji servera apache, php i mysqla i nigdzie nie wspomniano, że należy ustawic register_globals na On. Możliwe, że w wersji PHP5.0.1, na której opiera się autor książki plik php.ini domyślnie mial ustawione register_globals=On.
mike
Cytat(gringo001 @ 22.09.2006, 20:05:28 ) *
Faktycznie zmieniłem register_globals na "On" i działają moje stare skrypty smile.gif

To teraz przestaw z powrotem na Off i możesz pisać skrypty tongue.gif

register_globals = On to stara i niebezpieczna metoda.
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.