| Autor | Zpráva | ||
|---|---|---|---|
| Danno18 Profil * |
#1 · Zasláno: 22. 3. 2014, 15:01:36 · Upravil/a: Moderátor (editace znemožněna) 22. 3. 2014, 16:12:58
Dobrý den,
měl bych jeden dotaz. Mám rubriku nastavení účtu a zde se mění heslo pro vstup do portálu. Bohužel jsem ale nyní přišel na to, že i když zadávám správné údaje pro změnu tak mi to vypíše chybu, že zadávám údaje špatné. Nevíte co stím? <?php include ("include2.php"); ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="generator" content="PSPad editor, www.pspad.com">
<script src="./js/jquery.js"></script>
<script src="./js/scripts.js"></script>
<title>Nastavení účtu</title>
</head>
<body style="background-size:100% 100%; background-image:url(./pozadi.jpg); background-repeat:no-repeat; background-attachment: fixed;">
<div id="obalovaci">
<div id="gif"></div>
<div id="bile_pozadi">
<div class="ContentText">
<br>
<br>
<center><font color="black" size="3">» V níže uvedeném formuláři můžete změnit své přístupové heslo.
<br>
» To provedete tak, že jednoduše vyplníte formulář a kliknete na tlačítko změnit.
<br>
» Automaticky proběhne změna hesla a při dalším přihlášení budete zadávat toto nové přístupové heslo.</font></center>
<br>
<br>
<?php
if (isset($_POST["action"]) and $_POST["action"]=="send") {
send();
} else {
change();
}
//switch ($action){
//case "send":
//send();
//break;
//default:
//change();
//break;
//}
function change(){
?>
<tr><td width="466" height="200" align="middle" valign="top">
<form method="post" name="chgform" action="nastaveni_uctu.php">
<input type="hidden" name="action" value="send" />
<center><table background="./200_400.png" border="0" cellpadding="0" cellspacing="0" width="220" style="border-radius:30px">
</td></tr>
<tr><td width="50%"><center><b><font color="white">Přihlašovací jméno</font></b></td> </tr>
<tr><td><center><input name="prihlasovaci_jmeno" type="text"></td></tr>
<tr><td colspan="2"><center><b><font color="white">Email</font></b></td></tr>
<tr><td colspan="2"><center><input name="email" type="text"></td></tr>
<tr><td colspan="2"><center><b><font color="white">Staré heslo</font></b></td></tr>
<tr><td colspan="2"><center><input name="stare_heslo" type="password"></td></tr>
<tr><td colspan="2"><center><b><font color="white">Nové heslo</font></b></td></tr>
<tr><td colspan="2"><center><input name="nove_heslo" type="password"></td></tr>
<tr><td colspan="2"><center><b><font color="white">Potvrzení nového hesla</font></b></td></tr>
<tr><td colspan="2"><center><input name="potvrzeni_noveho_hesla" type="password"></td></tr>
<tr><td colspan="2" align="center"><input type="submit" class="button" value="Změnit"></tr>
</table></center>
<?php
}
function send(){
$prihlasovaci_jmeno=$_POST["prihlasovaci_jmeno"];
$email=$_POST["email"];
$stare_heslo=$_POST["stare_heslo"];
$nove_heslo=$_POST["nove_heslo"];
$potvrzeni_noveho_hesla=$_POST["potvrzeni_noveho_hesla"];
if (strlen($prihlasovaci_jmeno) < 1 || strlen($email) < 1 || strlen($stare_heslo) < 1 || strlen($nove_heslo) < 1 || strlen($potvrzeni_noveho_hesla) < 1) {
echo "<center>Údaje nejsou správně uvedené, prosím zkontrolujte je! <a href=\"javascript:history.back();\">Zpět</a></center><br><br><br><br><br><br><br><br><br><br><br>";
}elseif($nove_heslo != $potvrzeni_noveho_hesla){
echo "<center>Nové heslo se neshoduje s potvrzením nového hesla! <a href=\"javascript:history.back();\">Zpět</a></center><br><br><br><br><br><br><br><br><br><br><br>";
}else{
require_once("config2.php");
mysql_select_db("d63561_db2");
$exec="select prihlasovaci_jmeno from uzivatele where prihlasovaci_jmeno = '$_POST[prihlasovaci_jmeno]' and prihlasovaci_heslo = md5('$_POST[stare_heslo]') and email = '$_POST[email]'";
$result=mysql_query($exec);
$rs=mysql_fetch_object($result);
if($rs){
$exec="update uzivatele set prihlasovaci_heslo=md5('$nove_heslo') where prihlasovaci_jmeno='$_POST[prihlasovaci_jmeno]'";
mysql_query($exec);
//echo $exec;
//echo mysql_error();
echo "<center>Heslo bylo úspěšně změneno! <a href=\"hlavni_strana.php\">Zpět na hlavní stranu</a></center><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>";exit;
}else{
echo "<center>Přihlašovací jméno, přihlašovací heslo nebo email jste špatně zadali! <a href=\"javascript:history.back();\">Zpět</a></center><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>";exit;
}
}
}
?>
</div>
</div>
<div id="dolni_pasek"></div>
<div id="horni_pasek"></div>
<div id="login"><?php include ("includeOkna2.php"); ?></div>
<div id="tabulka_menu">
<table width="210" height="250" background="./tabulka_2.png" align="center" border="0" style="border-radius:14px; margin-top: 0px; margin-right:0%; margin-left:0px; ">
<tr><td height="130"></td></tr>
<tr><td align="center" background="./menu.png"><a href="./hlavni_strana.php"><b><font color="black">Hlavní strana</font></b></a></td></tr>
<tr><td align="center" background="./menu.png"><a href="./registrace.php"><b><font color="black">Registrace</font></b></a></td></tr>
<tr><td align="center" background="./menu.png"><a href="./obchodni_podminky.php"><b><font color="black">Obchodní podmínky</font></b></a></td></tr>
<tr><td align="center" background="./menu.png"><a href="./clenstvi.php"><b><font color="black">Členství</font></b></a></td></tr>
<tr><td align="center" background="./menu.png"><a href="./kontakt.php"><b><font color="black">Kontakt</font></b></a></td></tr>
<tr><td></td></tr>
<tr><td></td></tr>
</table>
</div>
</div>
</body>
</html> |
||
| okolojsoucí Profil |
#2 · Zasláno: 22. 3. 2014, 19:17:07
Nevkládejte celý zdrojový kód, nýbrž 2 - 3 řádky před chybou a po chybě. Tzn. pokud chyba je na řádku 160 vložíte od 158 - 162. A nezapomeňte označit tu část kódu kde Vám to hlásí chybu. Projíždět 139 řádků se mi nechce.
Napište také co má to dělat, a co to dělá a co to nedělá vč. chybových hlášek. Všiml jsem si že využíváte mysql_*. V následujících verzí již má se zrušit a tím bude nefunkční. Doporučuji využít nadstavbu od Davida Grudla dibi (blog). Dibi Vám sama zajistí i bezpečnost dat neboli eskejpování.
Takže Vám uvedu příklad Všeho dotazu a Dibi dotazu: // Vaše
$exec = "select prihlasovaci_jmeno from uzivatele where prihlasovaci_jmeno = '$_POST[prihlasovaci_jmeno]' and prihlasovaci_heslo = md5('$_POST[stare_heslo]') and email = '$_POST[email]";
// Dibi
$exec = dibi::query("SELECT [prihlasovaci_jmeno] FROM [uzivatele] WHERE ", array(
'prihlasovaci_jmeno' => $_POST['prihlasovaci_jmeno'],
'prihlasovaci_heslo' => md5('$_POST[stare_heslo]'),
'email' => $_POST['email']
));Osobně myslím že vrstva dibi je přehlednější a bezpečnější. |
||
|
Časová prodleva: 12 let
|
|||
0