include

Nefunguje mi script který podle zadaného textu udělá určitý výstup. Samodřejmě jsem v config.php dal místo user a heslo svoje mysql username a heslo.

index.php:
<head>
<meta charset="UTF-8">
<title>web-AI</title>
</head>
<body>
<center>
<h1>

<iframe src="in.php" width="256" height="256"></iframe>

</h1>
</center>
</body>

in.php:
<center>
<h4>
<p>
<?php
$input = $_POST["input"];
if ($_POST["true"]=="") echo "ahoj";
elseif ($input=="") echo "prosím zadej něco";
else {
//zde to ještě funguje
include "input.php";

}
?>
</p>

<form method="post" action="in.php" >
<input type="text" name="input">
<input type="hidden" name="true" value="true">
<input type="submit" value="Odeslat">
</form>

</h4>
</center>

input.php:
<?php
//a zde už to nefunguje
include "config.php";
mysql_select_db(web-ai.wz.cz3333, $connect);
$data = mysql_query(
"SELECT * FROM input ORDER BY ID",
$connect);

while ($i = mysql_fetch_array($data) ):

for($num=1; $c<1025; $c++)
{
$in==substr($input, 0, $num);
if ($in==$i["cz"]) {
$out-id=$i["output-id"];
$id=$i["id"];
include "output.php";
break;
};

endwhile;

if ($out-true!=true) echo "Toto neznám. Zkus zadat něco jiného.";

?>

output.php:
<?php

$out-true=true
$output = mysql_query(
"SELECT * FROM output where id='$out-id'", $connect);
echo "<?php";
echo $output ["command-cz"];
echo "?>";

?>

<?php

$connect = mysql_connect(sql2.webzdarma.cz ,"user","heslo");

?>

tabulka input:
Struktura tabulky input
Pole
Typ
Nulový
Výchozí
Komentáře
id
int(255)
Ne


out-id
int(255)
Ne


cz
varchar(1024)
Ne


en
varchar(1024)
Ne


Vypisuji data pro tabulku input
id
out-id
cz
en
1
1
jak se jmenuješ
what's your name
2
1
jak se menuješ
what's your name
3
1
jaké je tvoje jméno
what is your name
4
1
jaké je tvoje méno
what is your name
5
1
jak ti říkají
as they say
6
1
jak jsi nazýván
what's your name

tabulka output:
Struktura tabulky output
Pole
Typ
Nulový
Výchozí
Komentáře
id
int(255)
Ne


command-cz
mediumtext
Ne


command-en
mediumtext
Ne


Vypisuji data pro tabulku output
id
command-cz
command-en
1
if ($id==1) echo "Jmenuji se AI-head."; if ($id==2) echo "Jmenuji se AI-head.<br>A můžeš to prosím spisovně?"; if ($id==3) echo "Mé jméno je AI-head."; if ($id==4) echo "Mé jméno je AI-head.<br>A můžeš to prosím spisovně?"; if ($id==5) echo "Říkají mi AI-head."; if ($id==6) echo "Jsem nazýván AI-head.";
if (id==5) echo "I called AI-head"; else "My name is AI-head";
Podle čeho víte, že Vaše "// zde to ještě funguje" a "// zde to již nefunguje" je pravda.

Ono to funguje správně, jen je to špatně napsané. Podle podmínky NIKDY nemůže dojít k načtení souboru input.php.
Důvod je prostý - hodnota proměnné $_POST['true'] je VŽDY pravda, nikdy tedy nemůže být uplatněna podmínka za else.
TL;DR

Co nefunguje? Co říká chybová hláška? Nebudeme tady luštit tvoje skripty -- když už to opravdu chceš vkládat celé, tak použij třeba pastebin.com nebo paste.ubuntu.com, ať je to alespoň zarovnané!

Takže jenom tak od pasu, co má být tohle? mysql_select_db(web-ai.wz.cz3333, $connect);
Jednak je to zastaralá funkce, ale hlavně má úplně jiné parametry. http://php.net/mysql_select_db
to // tady to ještě funguje a // zde to již nefunguje
zkoušel jsem másto toho dát echo a místo ještě funguje mi to vypsalo a místo již nefunguje mi to nenapsalo nic.
Co obsahuje proměnná $connect?
Co vrací připojení k databázi?


Zkuste místo:
$connect = mysql_connect(sql2.webzdarma.cz ,"user","heslo");
použít:
$connect = mysql_connect("sql2.webzdarma.cz" ,"user","heslo");
Nehází mi to žádnou chybovou hlášku. :(
Kdyžtak se můžeš podívat ale mě jí to neukazuje.
web-ai.wz.cz/cz
Chybové hlášky se nezobrazují patrně kvůli vhodnému nastavení PHP.
http://php.net/manual/en/errorfunc.configuration.php#ini.display-errors

Předpokládám, že skript zkoušíte někde doma a ne přímo na serveru. Tam si zobrazování chyb povolte a chybovou zprávu si přečtěte. Hádat tady od boku nemá smysl.

Můj osobní tip je, že soubor output.php obsahuje Parse Error -- například kvůli chybějícímu středníku a uvozovkám. Co je to za patlaninu? Název proměnné nesmí obsahovat mínus (protože je to zcela zřejmě operátor) a další chyby.. v čem to prohoba píšete? Pořiďte si něco alespoň se základním zvýrazňováním syntaxe, uvidíte, že chyb je tam jako máku!
Chybove hlasky povolis pridanim na zacatek kodu. Idealne do nejakeho config.php, ktery pak includujes/requirujes do kazdeho souboru.
@ini_set('error_reporting', E_ALL|E_STRICT);
@ini_set("display_errors", "1");
error_reporting(E_ALL|E_STRICT);

<iframe src="in.php" width="256" height="256"></iframe>
- tady nemas zadny parametr, tudiz v in.php nemuzes resit $_POST["input"];
- a take se jedna o metodu GET a ne POST ,kdyz je to src iframu IFRAME nebo href odkazu A.

Kdyz resis php, tak je dobre si cely obsah stranky generovat do promennych. Zadne echo. Echo az potom pro vypis. Cili zacnes php kodem. Poukladas do promennych a po te za tim uz jenom vypisujes pres echo.

Tez je dobre pouzivat ob_start, coz urychli zobrazeni stranky, protoze kazde echo prerusi kod, vygeneruje vystup a odesle hned uzivateli. Kdyz to udelas 1000x treba pro tabulku o 1000 radcich, tak se ti bude stranka zobrazovat asi 20s z wz. Pokud prave nepouzijes ob_start nebo neprepnes php (nejspis pres soubor .htaccess) do rezimu odesilat az po vykresleni stranky.