Diskuze: PHP-problem v programu
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 4 zpráv z 4.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Index.php
<?php
$cislo1 = rand(1,10);
$cislo2 = rand(1,10);
$znak = "+";
echo('<table border="10"><tr>');
echo('<td>' . htmlspecialchars($cislo1) . '</td>');
echo("<td>" . htmlspecialchars($znak) . "</td>");
echo("<td>" . htmlspecialchars($cislo2) . "</td>");
echo("</table>");
?>
<form action ="soucet.php" method="POST">
Zapiš výsledek: <input type="text" name="vysledek" />
<input type="submit" />
Soucet.php
<?php
require_once("index.php");
/* Voláním index.php se ti znova provede soubor index.php
* a znova se ti změní proměnné $cislo1 a $cislo2 (opět si projdou rand(0,10))
*/
$soucet = $cislo1 + $cislo2;
$vysledek = $_POST["vysledek"];
echo"";
if ($soucet == $vysledek) {
echo"<mark>Správně</mark>";
} else {
echo"<mark>Špatně</mark>";
}
?>
Co si ty proměnné uložit / poslat v <input type="hidden">
Kdyby si dosadil za proměnou cislo1 a 2 nějaké stále číslo a pak to otestoval, tak by ti to fungovalo, ale tam dělá "bordel" ten rand, který se znova provede při odeslání formuláře
zdar,
to je proto, že když odešleš formulář, tak se při tom includu znovu
načte soubor, tzn. vygenerují se nová náhodná čísla.
Jestli to vážně chceš zpracovávat v jiném souboru, pak asi nejlepší bude
si ta čísla hodit do session
session_start();
$_SESSION["cislo1"] = $cislo1 = rand(1, 10);
$_SESSION["cislo2"] = $cislo2 = rand(1, 10);
druhý soubor
session_start();
$cislo1 = $_SESSION["cislo1"];
$cislo2 = $_SESSION["cislo2"];
Zobrazeno 4 zpráv z 4.