Autor | Zpráva | ||
---|---|---|---|
Michal Sebek Profil |
#1 · Zasláno: 28. 10. 2014, 11:02:52
Proč mě vždycky můj formulář na změnu hesla místo změnění hesla hodí na index?
zmena-hesla.php: <?php session_start(); if($_SESSION['prihlasen']!=1){ $index="index.php?page=home"; header('location: $index'); exit; } if($_POST['nove']!=""){ if($_POST['nove']!=$_POST['nove2']){ $err = "index.php?page=zmena-hesla&Alert=8"; header('location: $err'); exit; } elseif(strlen($_POST['nove'])<6){ $err = "index.php?page=zmena-hesla&Alert=9"; header('location: $err'); exit; } else { require "db.php"; $name = $_POST['jmeno']; $pass = md5($_POST['heslo']); $vysledek = MySQL_Query("SELECT * FROM `uzivatele` WHERE `jmeno` = '$name' AND `heslo` = '$pass'") or die (mysql_error()); $zaznam = mysql_fetch_array($vysledek); if($zaznam['id']!=""){ $_SESSION['id'] = $zaznam['id']; } if(md5($_POST['stare'])!=$zaznam['heslo']){ $err = "index.php?page=zmena-hesla&Alert=10"; header ('location: $err'); exit; } else { $dotaz = "UPDATE uzivatele SET heslo='".md5($_POST['nove'])."' WHERE jmeno='".$_POST['login']."'"; if(mysql_query($dotaz)){ $err = "index.php?page=zmena-hesla&Alert=11"; header ('location: $err'); exit; } else { $err = "index.php?page=zmena-hesla&Alert=12"; header ('location: $err'); exit; } } } } ?> <form action="" method="post"> <label for="stare">Aktuální heslo:</label> <input type="password" name="stare" id="stare" /><br> <label for="nove">Nové heslo:</label> <input type="password" name="nove" id="nove" /><br> <label for="nove2">Nové heslo znovu:</label> <input type="password" name="nove2" id="nove2" /> <input type="submit" value="Změnit heslo" /> </form> |
||
juriad Profil |
#2 · Zasláno: 28. 10. 2014, 11:14:59
A s jakými parametry tě to přesměruje na index.php? Jaká je hodnota Alertu?
|
||
Michal Sebek Profil |
#3 · Zasláno: 28. 10. 2014, 11:21:43
juriad:
Právě že žádná. |
||
Marschmallow Profil |
Michal Sebek:
Hned třetí řádek: Pokud není SESSION prihlasen jedna, tak se má pomocí hlavičky přesměrovat na index.php?page=home. Nejdříve musíš tu SESSION prihlasen nějak vytvořit a získat. |
||
Michal Sebek Profil |
Marschmallow:
Jenže tam je že když (SESSION prihlasen) neni jedna tak se to přesměruje na home. Podle mě to asi bude tim že to na konci přesměrovává na neexistující adresu. Já mám v .htaccess nastavené, aby se při neexistující adrese přesměrovalo na index. Teď akorát nevim kde a proč to odkazuje na neexistující soubor. Doplňuji, přečetl jsem že když session prihlasen je 1 místo že neni. A ta session prihlasen je už od přihlášení. A ten třetí řádek funguje, protože když nejsem přihlášen, tak to přesměruje na home, když ale jsem přihlášen, tak se načte formulář na změnu hesla A přesměrovává se to až na konci. |
||
Marschmallow Profil |
#6 · Zasláno: 28. 10. 2014, 12:08:51
Michal Sebek:
Takže se Ti normálně zobrazí ten formulář na změnu hesla? A co se dál má stát a nestane se? |
||
Michal Sebek Profil |
#7 · Zasláno: 28. 10. 2014, 12:24:33
Marschmallow:
Normálně by se po kliknutí na Změnit heslo mělo změnit heslo v databázi. Místo toho to ale přesměrovává na neexistující adresu. |
||
juriad Profil |
#8 · Zasláno: 28. 10. 2014, 12:30:55
Michal Sebek:
Tak zakomentuj všechna přesměrování a napiš si před ně echa. První je přece zjistit, kam až to projde. |
||
Michal Sebek Profil |
#9 · Zasláno: 28. 10. 2014, 12:45:38 · Upravil/a: Michal Sebek
juriad:
Už jsem na to přišel. Jak jsem tam měl: $err="nějaká adresa"; header('location: $err'); header('location: adresa'); A teď to už píše že jsem zadal špatné heslo Mám problém. Stále to píše že zadávám špatně aktuální heslo i když píšu správné. Kód: <?php session_start(); if($_SESSION['prihlasen']!=1){ $index="index.php?page=home"; header('location: $index'); exit; } if($_POST['nove']!=""){ if($_POST['nove']!=$_POST['nove2']){ header('location: index.php?page=zmena-hesla&Alert=8' ); exit; } elseif(strlen($_POST['nove'])<6){ header('location: index.php?page=zmena-hesla&Alert=9'); exit; } else { require "db.php"; $name = $_POST['jmeno']; $vysledek = MySQL_Query("SELECT * FROM `uzivatele` WHERE `jmeno` = '$name'") or die (mysql_error()); $zaznam = mysql_fetch_array($vysledek); if($zaznam['id']!=""){ $_SESSION['id'] = $zaznam['id']; } if(md5($_POST['stare'])!=$zaznam['heslo']){ header ('location: index.php?page=zmena-hesla&Alert=10'); exit; } else { $dotaz = "UPDATE uzivatele SET heslo='".md5($_POST['nove'])."' WHERE jmeno='".$_POST['login']."'"; if(mysql_query($dotaz)){ header ('location: index.php?page=zmena-hesla&Alert=11'); exit; } else { header ('location: index.php?page=zmena-hesla&Alert=12 '); exit; } } } } ?> <form action="" method="post"> <label for="stare">Aktuální heslo:</label> <input type="password" name="stare" id="stare" /><br> <label for="nove">Nové heslo:</label> <input type="password" name="nove" id="nove" /><br> <label for="nove2">Nové heslo znovu:</label> <input type="password" name="nove2" id="nove2" /> <input type="submit" value="Změnit heslo" /> </form> |
||
Michal Sebek Profil |
#10 · Zasláno: 28. 10. 2014, 14:07:44
Pomozte, pls
|
||
juriad Profil |
#11 · Zasláno: 28. 10. 2014, 14:11:16
A zkusil jsi si před 24. řádou vypsat:
echo md5($_POST['stare']), ' ', $zaznam['heslo']; |
||
Časová prodleva: 9 let
|
0