Autor Zpráva
kabanos
Profil *
Ahoj,
mám stránku index.php s jednoduchým formulářem:
<?php
session_unset();
session_start();
$_SESSION['ok'] = 0;
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><meta http-equiv=content-type content="text/html; charset=windows-1250"><title></title></head>
<body>
<form action="page.php" method="post" target=_top>
<input type="password" name="heslo"><input type="submit" value="VSTUP">
</form>
</body>
</html>

a stránku page.php:

<?php
session_start();
include("./funkce/mysql.php"); //konfigurace mysql
$pass = $_POST['heslo'];
$sql = mysql_query('SELECT * FROM data WHERE heslo='.$pass.';');
$info = mysql_fetch_array($sql);
$y = $info[0];

if ($y != '') {
$_SESSION['ok'] = 1;
$sql = "SELECT id FROM login LIMIT 1;";
$row = mysql_fetch_array(mysql_query($sql));
if(!$row) {
$sql = "INSERT INTO login SET identifikace = '$y'; ";
mysql_query($sql);
}
else {
$sql = 'SELECT id FROM login ORDER BY id DESC;';
$query = mysql_query($sql) or die('Chyba databaze.');
$i = 2; $radek = '';
while($row = mysql_fetch_array($query)) {
if($i == 10) {
$radek = $row[id];
break;
}
$i++;
}
$sql = "INSERT INTO login SET identifikace = '$y';";
mysql_query($sql) or die('Chyba databaze.');
}
}
else {
echo '<p>Nemáte oprávnění k prohlížení této stránky</p>';
echo '<a href="#" onclick="window.open(\'index.php\', \'_top\');return false;">Zpět</a>';
exit();
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><meta http-equiv=content-type content="text/html; charset=windows-1250"><title></title></head>
<body>Vítám tě!!!!</body>
</html>

Po odeslání naskočí stránka page.php, která porovná heslo s databází hesel a pokud souhlasí nastaví $_SESSION['ok'] = 1; a zapíše mi do databáze nové přihlášení. Toto mi funguje až na to, že pokud dám na stránce page.php refresh, tak se do databáze přidá další přihlášení,.. což nechci, neboť na dalších stránkách vypisuji posledních x přihlášení a nechci aby mi tam přibývali další řádky jen po jakémkoli refresi stránky.
Napadlo mne, že potřebuji, aby se formulářem spustila funkce kontroly hesla, která by mne v případě správnosti hesla přesměrovala na novou stránku page.php s hodnotou $_SESSION['ok'] = 1;

Učim se php asi týden, takže toho moc neumim:-(

Moc dík
panmagor
Profil *
Co zkusit něco jako:

if (isset ($_POST['heslo'] == $pass )){ Header('Location:kamchcespresmerovat.php)}
kabanos
Profil *
Dík,
už se mi to dle tvého postupu podařilo, ale objevil se další problém.
Potřebuji nové stránce předat parametr, ale aby nebyl parametr vidět v url, protože pak ho mohu přepsat ručne a stránka provede co nechci

Napsal jsem to takto:
$parametr = 1;
Header('Location:page.php?a='.$parametr)

Dík
panmagor
Profil *
Bohužel takto se to bude vždycky zobrazovat v URL. Pravděpodobně by sis musel pohrát s nastavením Apache konkrétně "mod_rewrite" jiné řešení bohužel neznám...
User_usr
Profil *
ahaa
ss
Profil *
jh
xxyy
Profil *
Doporučuji pročíst toto vlákno, a provést zamezení znovunačtení stránky a přesměrování, skript se pak znovu nenačte:

http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=3&topic=79 663

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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

0