Autor Zpráva
Ondřej Strnad
Profil
Zdravím vespolek!
Jako začátečník s PHP bych měl dotaz stran mého serveru.
Nefungují mi totiž proměnné v těch případech, když je vpíši do HTML formuláře a bláhově čekám, že mi z toho na druhé straně něco vypadne. Ať se jedná o jakoukoli funkci.
Napsal jsem snad nejlehčí funkci s proměnnou. Na serveru zvenku to funguje skvěle, hleďte!
Použil jsem tento PHP kód:
<?php
print "$zk";
?>

Na stránce formuláře pak toto:
<html>
<head>
<title>Formulář</title>
</head>
<body>
<form method="GET" action="neco1.php">
<input type="text" name="zk">
<input type="submit" value="Odeslat"></form>
</body>
</html>

Jak říkám, na serveru zvenku (nezlobte se za můj výraz) mi to funguje skvěle, zatímco na mém PC to nefunguje vůbec. Poté, co odešlu formulář, objeví se jenom čistá stránka, dokonce ani ne chyba. A zejména podotýkám, že PHP mi na mém serveru fungují také bezvadně (což dokazuje, že mám zapnutý server), jediný problém s proměnnou je, že nefunguje u mne při použití formulářů.

Velice děkuji!
GeneralDv
Profil
Vidim že to odesíláš přes GET, pročti si práci s formuláři na www.linuxsoft.cz/article.php?id_article=269 ;-)
<?php
echo $_GET["zk"];
?>
Radek9
Profil
Proměnná v uvozovkách? Proč?
Být vámi, prošel bych si superglobální proměnné.
<?php
print $_GET["zk"];
?>

<html>
<head>
<title>Formulář</title>
</head>
<body>
<form method="get" action="neco1.php">
<input type="text" name="zk">
<input type="submit" value="Odeslat"></form>
</body>
</html>

Edit: A jo, GET :D
Ondřej Strnad
Profil
Aha, ale stále mi z toho nevyplývá, proč to funguje venku a u mne ne?
Radek9
Profil
Ondřej Strnad:
A máte u Vás na počítači nainstalovaný nějaký server?

Pokud ne, doporučil bych vám Wamp či také XAMPP.
tiso
Profil
Radek9: má, nevieš čítať?
Ondřej Strnad: je to nastavením register_globals http://php.net/manual/en/ini.core.php
Ondřej Strnad
Profil
Mám PHP Home Edition 2. To je doufám to, co potřebuji. Protože PHP, které nebylo zpracováno formulářem vždy funguje.
Ondřej Strnad
Profil
Tak děkuji, moc jste mi pomohli!
Ondřej Strnad
Profil
Ale ještě něco – zapnul jsem v C:\WINDOWS souboru php.ini register_globals (přepsal z Off na On a uložil), restartoval jsem IIS pomocí příkazového řádku (iisreset.exe) a nic se u mne nezměnilo. Nemáte někdo nápad, prosím?
Joker
Profil
Ondřej Strnad:
zapnul jsem ... register_globals ..., restartoval jsem IIS ... a nic se u mne nezměnilo
A nepřepsal jste náhodou zakomentovaný řádek? (nemá "#" na začátku?)

Ta položka nastavení to skutečně mění, ale důrazně nedoporučuji řešit tenhle problém zapnutím register_globals.
Jestli to na nějakém hostingu ve výchozím nastavení funguje (tzn. mají ve výchozím nastavení zapnuté register_globals), uvažoval bych o změně hostingu.
Ondřej Strnad
Profil
Joker:
A nepřepsal jste náhodou zakomentovaný řádek? (nemá "#" na začátku?)

Teď asi nechápu, co tím myslíte. V HTML kódu má být #?

Jestli to na nějakém hostingu ve výchozím nastavení funguje (tzn. mají ve výchozím nastavení zapnuté register_globals), uvažoval bych o změně hostingu.

Nejde o hosting, nýbrž o můj vlastní server, na kterém si zkouším PHP, což se zatím učím.
Joker
Profil
Ondřej Strnad:
V HTML kódu má být #?
Ne, v tom php.ini, u toho register_globals. A právěže nemá. Řádky, které mají na začátku # jsou komentáře.

Nejde o hosting, nýbrž o můj vlastní server
Reagoval jsem na větu: „proč to funguje venku a u mne ne?
Kde je tedy „venku“?
Každopádně není důvod register_globals zapínat (jedině pokud používáte nějaký starý skript který nejde nahradit něčím jiným a který to vyžaduje).
Ondřej Strnad
Profil
Joker:
A nepřepsal jste náhodou zakomentovaný řádek? (nemá "#" na začátku?)

Aha, tak to určitě ne.

Každopádně není důvod register_globals zapínat

Kniha "PHP a MySQL Hotová řešení" od Luboslava Lacka mi radí, abych to tak udělal. Je zde přímo popsaný návod, jak na to. Jenže to mi stále nefunguje a nevím proč...
perun
Profil
Ondřej Strnad:
Kniha "PHP a MySQL Hotová řešení" od Luboslava Lacka mi radí, abych to tak udělal.

Danú radu ignorovať. Je zlá, navádza na velmi zlé programátorské návyky a z bezpečnostného hľadiska predstavuje obrovské riziko pre akúkoľvek Tvoju (teraz aj v budúcnosti) vytváranú stránku.

Takže ešte raz: radu ignorovať, register_globals vypnúť, používať $_GET a $_POST a knihu prípadne obradne spáliť :)
Ondřej Strnad
Profil
perun:
Dobrá, tak děkuji. :-)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0