Autor Zpráva
frost
Profil
Mám formulář pro změnu hesla. Tento formulář odesílá data do téže stránky, jenže v internetovém prohlížeči Opera dojde po odeslání formuláře ke ztrátě session. Jak to řešit? Jiné prohlížeče jsou v pohodě.


<?php

session_start();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>Allcoor</title>
</head>
<body>
<?php
include '../db_conf.php';
mysql_connect(SQL_HOST, SQL_USERNAME, SQL_PASSWORD) or die("Nelze se připojit k MySQL: " . mysql_error());
mysql_select_db(SQL_DBNAME) or die("Nelze vybrat databázi: ". mysql_error());
mysql_query("SET NAMES 'utf8'") or die("Could not set names: ". mysql_error());
$heslo_db=mysql_query("select heslo from registrace where jmeno='".$_SESSION["uzivatel"]."'");
$heslo_db_zaznam=MySQL_Fetch_Array($heslo_db);
$BudemeZobrazovat=true;
if (isset($_POST["odeslano"]))
{
if (strlen($_POST["stare_heslo"])==0 || strlen($_POST["nove_heslo"])==0 || strlen($_POST["re_nove_heslo"])==0)
{
echo "CHYBOVÉ HLÁŠENÍ: Nebyla vyplněna všechna pole!";
}
elseif ($_POST["nove_heslo"] <> $_POST["re_nove_heslo"])
{
echo "CHYBOVÉ HLÁŠENÍ: Nebylo řádně ověřeno nové heslo!";
}
elseif (strlen($_POST["nove_heslo"])<5)
{
echo "CHYBOVÉ HLÁŠENÍ: Nové heslo je kratší než 5 znaků!";
}
elseif (md5($_POST["stare_heslo"]) <> $heslo_db_zaznam["heslo"])
{
echo "CHYBOVÉ HLÁŠENÍ: Bylo zadáno špatné původní heslo!";
}
else
{
$BudemeZobrazovat=false;
$md5_heslo=md5($_POST["nove_heslo"]);
unset ($_POST["nove_heslo"]);
unset ($_POST["re_nove_heslo"]);
$vysledek = mysql_query("replace into registrace (jmeno, heslo) values ('".$_SESSION["uzivatel"]."','$md5_heslo')");
echo "Heslo bylo úspěšně změněno!<br>";
echo "<a href='../login_formular.php'>Přihlásit</a>";
}
}
if ($BudemeZobrazovat)
{
?>
<center>
<h3>Zněna přihlašovacího hesla</h3>
</center>
<br>
Jste přihlášen jako uživatel <b><?php echo $_SESSION["uzivatel"]?></b>
<center>
<form method="post" action="<?echo $_SERVER["PHP_SELF"]?>">
Staré heslo: <input type="password" text="6" name="stare_heslo"></input><br><br>
Nové heslo: <input type="password" text="6" name="nove_heslo"></input><br><br>
Nové heslo: <input type="password" text="6" name="re_nove_heslo"></input><br><br>
<input type="hidden" name="odeslano" value="true">
<a href="../login_index.php">Zpět</a> <input type="Submit" name="odeslat" value="Změnit heslo">
</form>
</center>
<?php
}
?>
</body>
</html>
Str4wberry
Profil
Odpovídám frostovi:
Zkus vymazat cookies; popř. ji restartovat.
frost
Profil
Tak to by mě vážně nenapadlo. Vymazání cookies skutečně pomohlo.
Děkuji za tip.

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