Autor Zpráva
rkomoras
Profil
Nedávno jsem si koupil knihu "PHP a MySQL - vytváříme webové databázové aplikace" a z ní jsem okopíroval a trochu pozměnil následující kód:
index.php:
<html>

<body>
<form method="GET" action="seznam.php">
<input type="text" name="jmeno" />
<input type="submit" />
</form>
</body>
</html>

seznam.php:
<html>

<head>
<title>Seznam hostů</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
</head>
<body>
<p>
<?php
# Z knihy PHP a MySQL - Vytváříme webové databázové aplikace

$seznam = "Radek Martin Jiří Petra Dan Daniel Honza Bára Kryštof Klára"

$pole = explode(" ", $seznam);
sort($pole);

if (strpos($seznam, $jmeno) === false)
{
echo "Sorry, ale '$jmeno' není v seznamu...
";
echo "Seznam hostů: ". implode(", ", $pole);
}
elseif (strpos($seznam, $jmeno) === true)
{
echo "Vítám tě! $jmeno je v seznamu hostů.
";
echo "Seznam hostů: ". implode(", ", $pole);
}
?>
</p>
</body>
</html>

Nejde mi to, nevíte proč?(v PHP začínám)
Joker
Profil
Nejde mi to, nevíte proč?
Asi je to rozbitý.

Co znamená "nejde mi to"? Co konkrétně nefunguje, jakou to hází chybu?
tiso
Profil
$jmeno zmeň na $_GET["jmeno"]
ale určite by som ten skritp nerobil takto...
ork
Profil
bych si tak tipnul na proměnné, protože php máš jistě nainstalované v některé z posledních verzí zatímco knížka bude stašího data a používá proměnnou $jmeno namísto $_GET['jmeno']

ale to je jen tip ... pokud nenapíšeš co ti to konkrétně dělá špatně, tak tu můžem POUZE tipovat :-)
rkomoras
Profil
chybu to nehází, prostě se to nezobrazí
rkomoras
Profil
ani při změně na $_GET["jmeno"] se nic nezobrazí
ork
Profil
Chceš říct, že když klikneš na SUBMIT tlačítko, tak se nezobrazí nic? Jakože se zobrazí prázdná bílá stránka??
rkomoras
Profil
v IE se mi ve zdrojovém kódu zobrazí toto:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=windows-1250"></HEAD>
<BODY></BODY>
<META content=TOBXMNSHEQ name=SKYPE_FRAMEID></HTML>

ale Skype mám vypnutý
rkomoras
Profil
Chceš říct, že když klikneš na SUBMIT tlačítko, tak se nezobrazí nic? Jakože se zobrazí prázdná bílá stránka??
Ano
ork
Profil
$seznam = "Radek Martin Jiří Petra Dan Daniel Honza Bára Kryštof Klára"

za tímhle řádkem ti chybí středník ... se divím, že ti to nehází chybu
ho doplň a zkus to znovu
ork
Profil
if (strpos($seznam, $jmeno) === false)

máš tam tři rovnítka, dej jen dvě a to samé v té druhé podmínce a mělo by to běžet
djlj
Profil
ork
3 rovnítka tam má správně.
rkomoras
Profil
tři rovnítka byly v knize, zkusil jsem středník...nic
ork
Profil
djlj proč myslíš, že tam jsou správně? ... Já jsem si ten jeho skript zkopíroval a zkusil spustit, když ponechám tři rovnítka, zobrazí se mi prázdná stránka přesně jak on popisuje, když je nahradím za dvě, tak to funguje.
rkomoras
Profil
ani při prohlížení seznam.php(bez ?jmeno=...)se také nic nezobrazí...
rkomoras
Profil
zkusil jsem dvě rovnítka...nic
rkomoras
Profil
mě celý WAMP blbne...ani mi nejde spustit phpMyAdmin...možná je to WAMPem
ork
Profil
rkomoras

mě to ale bez problémů funguje ....

zkus napsat na začátek toho skriptu: echo "jméno:" . $_GET["jmeno"];
a jestli to zas nic nevypíše tak v bude problém jinde než v tom kódu
djlj
Profil
ork
Protože neporovnáváš žádný řetězec… Viz manuál.
ork
Profil
mě celý WAMP blbne...ani mi nejde spustit phpMyAdmin...možná je to WAMPem

řekl že problém bude určitě tam ... když ti to ani nevypisovalo žádné chyby (viz chybějící středník)
ork
Profil
djlj

asi mám nějaké mezery :o) ... ale s těma dvěma rovnítkama mi to funguje :o)
djlj
Profil
když ti to ani nevypisovalo žádné chyby (viz chybějící středník)
Může mít vypisování chyb vypnuté…
rkomoras
Profil
Konečně...jde to...
změna z :
"Blablabla $_GET["jmeno"] blablaba"

na:
"Blablabla ".$_GET["jmeno"]." blablaba"
rkomoras
Profil
Nový kód:
<html>

<head>
<title>Seznam hostů</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
</head>
<body>
<p>
<?php
# Z knihy PHP a MySQL - Vytváříme webové databázové aplikace

$seznam = "Radek Martin Jiří Petra Dan Daniel Honza Bára Kryštof Klára";

$pole = explode(" ", $seznam);
sort($pole);

if (strpos($seznam, $_GET["jmeno"]) === false)
{
echo "Sorry, ale '" .$_GET["jmeno"]. "' není v seznamu... ";
echo "Seznam hostů: ". implode(", ", $pole);
}
elseif (strpos($seznam, $_GET["jmeno"]) === true)
{
echo "Vítám tě! '" .$_GET["jmeno"]. "' je v seznamu hostů. ";
echo "Seznam hostů: ". implode(", ", $pole);
}
?>
</p>
</body>
</html>

Při zadání špatného jména funguje...při správném se nic nenapíše, ale zdrojový kód je vidět...
djlj
Profil
elseif (strpos($seznam, $_GET["jmeno"]) !== false)

strpos nevrací true, viz http://cz.php.net/strpos
rkomoras
Profil
Ok...děkuji, už je vše v pořádku.
Toto téma je uzamčeno. Odpověď nelze zaslat.