Autor Zpráva
7Skun
Profil
Dobrý den!
Mám problém - začal jsem se učit jazyk PHP, ale hned při prvním kroku (po nainstalování EasyPHP - návod odsud), čili zkoušce, zda PHP funguje, jsem neuspěl. Napsalo mi to kód, jež jsem vložil do poznámkového bloku. Na internetu jsem našel spousty odpovědí na toto téma, četl jsem si i zdejší diskuzi, ale bohužel jsem neuspěl. Navíc, když EasyPHP restartuji, Apache se restartuje, ale MySQL ne. Jakákoli stránka napsaná s kódem PHP mi prostě nejde. (Samozřejmě mám soubor *.php ve složce www v EasyPHP.) Prosím o pomoc a předem děkuji za odpovědi!

Hezký zbytek dne!
Someone
Profil
Pravým tlačítkem klikni na ikonku EasyPHP(na liště) a tam klikni na localhost.
7Skun
Profil
Já tam mám jen Local Web. To jsi asi myslel, že?


To už jsem udělal několikrát a najednou to funguje! No se rychle učit, než si to rozmyslí :DDD!

Děkuji.


Jen ještě jedna věc. Php funguje, ale jen když napíšu <?php php?>, nefunguje mi <? ?>, to snad ale problém není. Ovšem, to co chci se načte a pod tím se zobrazí text: Notice: Use of undefined constant php - assumed 'php' in C:\Program Files\EasyPHP-12.0\www\my portable files\prvni.php on line 8. Je to nějaký závažný problém ? Předem díky!
Someone
Profil
značky jsou
<?php a ?>
to druhé php tam je navíc.
7Skun
Profil
Aha, moc děkuji, teď už je vše v pořádku ;)!
7Skun
Profil
No, php stále funguje, ale problém tu stále je :D.
Učím se php podle jedné knihy a když jsem do souboru neco.php zadal:

<form action="obsluha.php" method=post>
Jmeno:<input name=Jmeno><br>
Věk  :<input name=Vek><br>
<input type=Submit value="Odeslání formuláře">

a do souboru obsluha.php zadal:

<html>
<heda>
<title>Obsluha formuláře</title>
</head>
<body>
<h1>Výsledek obsluhy formuláře</h1>
<?php echo $Jmeno ?> je
<?php if ($Vek < 10):
         echo "pěknej mlíčňák";
     elseif ($Vek < 20):
         echo "teenager";
     elseif ($Vek < 60):
     echo "v nejlepších letech";
     elseif ($Vek < 100):
         echo "pravděpodobně prarodič";
     else:
     echo "někde mezi stovkou a smrtí";
     endif
?>.


</body>
</html>

Soubor neco.php v prohlížeči úplně v pohodě naběhl, ale když jsem zadal jméno a věk, vyhodilo mi to toto:

Notice: Undefined variable: Jmeno in C:\Program Files\EasyPHP-12.0\www\my portable files\obsluha.php on line 7
je
Notice: Undefined variable: Vek in C:\Program Files\EasyPHP-12.0\www\my portable files\obsluha.php on line 8
pěknej mlíčňák.

Pochopil jsem, že chyba je v <?php, ale <? mi prostě nefunguje. Na internetu jsem četl, že to může být v nastavení php.ini, jenže nevím kde... Prosím ještě jednou o pomoc. Díky ;)!
Someone
Profil
Pravděpodobně se jedná o starší knihu, protože vyžaduje mít zaplé register globals (nedoporučuje se to). Po odeslání formuláře vznikne pole $_POST, které obsahuje klíče shodné s hodnotami atributů name u HTML formuláře, takže echo $Jmeno $Vek atd.. nahraď za $_POST['Jmeno'] $_POST['Vek']
<form action="obsluha.php" method=post>
Jmeno:<input name=Jmeno><br> => $_POST['Jmeno']
Věk  :<input name=Vek><br> => $_POST['Vek']
<input type=Submit value="Odeslání formuláře">
</form>
ShiraNai7
Profil
7Skun:
ale když jsem zadal jméno a věk, vyhodilo mi to toto:
Jak je ta kniha stará? Zřejmě počítá s aktivovanou direktivou register_globals (která je zastaralá). Namísto $Jmeno a $Vek použij $_POST['Jmeno'] a $_POST['Vek'].

Pochopil jsem, že chyba je v <?php, ale <? mi prostě nefunguje. Na internetu jsem četl, že to může být v nastavení php.ini, jenže nevím kde..
Jedná se o direktivu short_open_tag, ale není doporučeno ji používat. Používej <?php, to funguje vždy.
Someone
Profil
Zde vidíš jak je onen HTML Formulář propojený s PHP scriptem. Metoda POST v HTML zapříčíní, že ono pole, které vznikne se jmenuj $_POST, hodnota atributu name u inputu udává název klíče v daném poli.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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