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: 10 let
|
0