Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Začínám s PHP  (Přečteno 1284 krát)

plangy

  • Aktivní člen
  • *
  • Příspěvků: 147
Začínám s PHP
« kdy: 12 Ledna 2010, 21:11:20 »
Dobrý den,

co se týče PHP, tak jsem úplný začátečník. Podle návodu na wiki jsem zprovoznil apache a localhost běží. Chtěl jsem si cvičně vytvořit formulář podle tohoto návodu:

http://www.jakpsatweb.cz/php/moznosti-php.html

formular:
Kód: [Vybrat]
<body>
<form method="GET" action="zpracovani_formulare1.php" >
<p>Zadejte oblíbené jídlo:
<input type="text" name="jidlo" size="20">
<input type="submit" value="Odeslat"></p>
</form>
</body>

zpracovani formulare:
Kód: [Vybrat]
<body>
<H1>Zpracování formuláře</h1>
<p>Výborně! Zajdeme si někdy na čaj a k tomu si dáme
<? echo $jidlo ?>!
</body>

(ve svém souboru mám hlavičky, tak se nelekejte :) )

Bohužel formulář se zpracuje tak, že echo nenapíše to, co jsem zadal do formuláře. Nějak to nechápu. Nevíte v čem je problém nebo kde jsem udělal chybu? Další příklady, které jsem opsal z chytrých knížek bohužel také nefungují, tak bych si tipnul, že problém nutně nemusí být mezi monitorem a židlí. Všem děkuji za případné odpovědi.


ufaak

  • Závislák
  • ***
  • Příspěvků: 2296
Re: Začínám s PHP
« Odpověď #1 kdy: 12 Ledna 2010, 21:23:44 »
to echo prepis na echo $_GET["jidlo"]
notebook MSI EX720X, Ubuntu 10.10

plangy

  • Aktivní člen
  • *
  • Příspěvků: 147
Re: Začínám s PHP
« Odpověď #2 kdy: 12 Ledna 2010, 21:34:17 »
Super, úžo, funguje to. Můžu se ještě zeptat jakto? Proč všude v návodech nacházím tu "špatnou" variantu?

Šuohob

  • Závislák
  • ***
  • Příspěvků: 2171
Re: Začínám s PHP
« Odpověď #3 kdy: 12 Ledna 2010, 21:35:58 »
Problém je v nastavení Apache. Pokud je direktiva register_globals nastavena na off (což v defaultním nastavení je), tj nemáš povoleny globální proměnné, tak by ti echo v tomto případě nemělo vypsat nic.

Tato direktiva je v defaultu z bezpečnostních důvodů vypnutá, doporučuji ji tak ponechat. pokud bys skript napsal takto:
Kód: [Vybrat]
<body>
<H1>Zpracování formuláře</h1>
<p>Výborně! Zajdeme si někdy na čaj a k tomu si dáme
<? echo $_GET['jidlo'] ?>!
</body>
tak by ti to už mělo vypsat, co jsi zadal do formuláře.

Takže rekapitulace. Pokud data z formuláře odesíláš metodou GET, tak k hodnotě textového políčka <input type='text' name='jmeno_textoveho_pole'> se dostaneš v PHP přes proměnnou (resp přes pole) $_GET['jmeno_textoveho_pole'];

a podobně pokud odesíláš data metodou POST, tak se k datům ve skriptu dostaneš přes proměnnou (resp přes pole) $_POST['jmeno_textoveho_pole'];

Aktuální nastavení Apache uvidíš tak, že napíšeš skript:
Kód: [Vybrat]
<?php
echo phpinfo ();
?>
a spustíš ho.

Direktiva register_globals se dá povolit v konfiguráku php v /etc/php5/apache2/php.ini, ale nedoporučuji to povolovat, za prvé z bezpečnostního hlediska a za druhé hodně hostingů může mít tuto direktivu vypnutou, tak aby i na nich tvoje skripty bez úpravy běžely.

Edit: Ufaak byl rychlejší :)
« Poslední změna: 12 Ledna 2010, 21:38:08 od Bohouš »
Tak dlouho se vrzá s Acerem, až se displej utrhne.

plangy

  • Aktivní člen
  • *
  • Příspěvků: 147
Re: Začínám s PHP
« Odpověď #4 kdy: 12 Ledna 2010, 22:02:19 »
Oběma moc děkuju za cenné rady :)

 

Provoz zaštiťuje spolek OpenAlt.