Autor Zpráva
beever
Profil *
mám script na vytvoření kodu

<?
function vytvorkod(){
$delka = 6;
$velka_pismena = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L',
'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V',
'W', 'X', 'Y', 'Z');
$mala_pismena = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l',
'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
'w', 'x', 'y', 'z');
$cislo = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '1',
'2', '3', '4', '5', '6', '7', '8', '9', '0', '1', '2', '3', '4', '5', '6',
'7', '8', '9');
$num_velka_pismena = count($velka_pismena);
$num_mala_pismena = count($mala_pismena);
$num_cislo = count($cislo);
$kod = '';
for($i = 0; $i < $delka; $i++)
$kod .=
$velka_pismena[rand(0, $num_velka_pismena - 1)] .
$mala_pismena[rand(0, $num_mala_pismena - 1)] .
$cislo[rand(0, $num_cislo - 1)];
return substr($kod, 0, $delka);
}
$hotovykod = vytvorkod();
?>

a při registraci chci aby ten kod vložili u formuláře...ověřuju to takhle:


if(empty($_POST[code]))
{
$code = false;
$chyba = "Musíte vyplnit kód!<br>";
}
elseif ($hotovykod!=$_POST[code])
{
$code = false;
$chyba = "Kód neni spravny!<br>";
}
else
{
$code = $_POST[code];
}

ale pokud napíšu kod (správný) který se vygeneruje stejně to chodí chybovou zprávu, že kod není správný.
Myslím že je to tím že po odeslání formuláře se vygeneruje další kod. Mohli byste mi s tím pomot, děkuju
Casero
Profil
beever
Ano, po odeslání se vygeneruje kod nový. Tudíš posílej ten kod třeba jako hidden a s tím to pak kontroluj. Nebo si ho ulož -> cookies, db, soubor.
Eddie
Profil
najlepsie bude ak ho ulozis do sessions ...
beever
Profil *
pokud to uložím do sesion: session_start(); $_SESSION['kod'] = $hotovykod; tak i při odeslání se mi změní session a potom to hodí stejně že se neshodují
tiso
Profil
beever to si aj vyskúšal, alebo to tvrdíš len tak?
beever
Profil *
vyzkoušel...když dám type hidden tak mi to jde...
beever
Profil *
ale rád bych to přes session
tiso
Profil
beever veď ono by to s tou session malo fungovat.. Pokiaľ náhodou opäť nevoláš niekde tú svoju funkciu a nemeníš session pred tým ako spracuješ form...
edit: aha, vlastne voláš, píšeš to ž v prvom príspevku... riešenie je ľahké: zmeniť poradie... najjenoduchšie keď sa form spracúva skriptom ktorý ho vypisuje:

if (isset($_POST["submit"])){//odoslany form spracuj ho...
...
}
else{alebo vypis form
...
}
beever
Profil *
mno dělám to takhle:


kod kontrolující všechno z formuláře
if(empty($_POST[code]))
{
$code = false;
$chyba = "Musíte vyplnit kód!<br>";
}
elseif ($hotovykod!=$_POST[code])
{
$code = false;
$chyba = "Kód neni spravny!<br>";
}
else
{
$code = $_POST[code];
}

formulář a v něm mám teda

<td><b><? @include("code.php"); $_SESSION['code']=$hotovykod; echo $hotovykod;?></b></td><td><input type=text size=6 maxlength=6 name="code" value=""></td>
tiso
Profil
elseif ($_SESSION["code"]!=$_POST["code"])
beever
Profil *
beever
Profil *
to jsem měl, jen jsem to teď špatně nakopíroval a teď to funguje...děkuju moc hlavně v tuhle noční hodinu, už jsem myslel že se dneska nevyspím:-)
tiso
Profil
beever za málo...
Toto téma je uzamčeno. Odpověď nelze zaslat.

0