Autor | Zpráva | ||
---|---|---|---|
Ondra Sojka Profil |
#1 · Zasláno: 9. 11. 2013, 12:55:19
<? $user = $_POST["user"]; $pass = $_POST["pass"]; $user = mysql_real_escape_string($user); $pass = hash(sha256, $pass); session_start(); require "mysql-pripoj.php"; $vysledek = mysql_query("SELECT * FROM login WHERE user='".$user."'", $spojeni) or Die(MySQL_Error()); $zaznam = MySQL_Fetch_Assoc($vysledek) or Die(MySQL_Error()); echo $zaznam["user"]; echo $zaznam["pass"]; ?> |
||
Tori Profil |
#2 · Zasláno: 9. 11. 2013, 13:12:33
Když na konec skriptu přidáte
echo 'jakykoliv kus textu'; , zobrazí se nebo ne?
Pokud ne: příčinou je syntaktická chyba někde. Zkontrolujte si, že máte zapnuté zobrazování chyb. Drobnosti: chybí uvozovky okolo řetězce $pass = hash("sha256", $pass); a mysql_real_escape_string by se měla volat až po navázání spojení s databází, protože AFAIK potřebuje znát nastavené kódování.
|
||
Ondra Sojka Profil |
#3 · Zasláno: 11. 11. 2013, 18:19:36
ini_set('display_errors', 'On'); error_reporting(E_ALL); $user = $_POST["user"]; $pass = $_POST["pass"]; $pass = hash("sha256", $pass); session_start(); require "mysql-pripoj.php"; $user = mysql_real_escape_string($user); $vysledek = mysql_query("SELECT * FROM login WHERE user='".$user."'", $spojeni) or Die(MySQL_Error()); $zaznam = MySQL_Fetch_Assoc($vysledek) or Die(MySQL_Error()); echo "hello"; echo $zaznam["user"]; echo $zaznam["pass"]; echo "test zda neni syntakticka chyba"; Notice: Use of undefined constant hosch1375636568 - assumed 'hosch1375636568' in /home/users/hoschi/sojka.8u.cz/web/uzivatel/mysql-pripoj.php on line 2 Notice: Use of undefined constant localhost - assumed 'localhost' in /home/users/hoschi/sojka.8u.cz/web/uzivatel/mysql-pripoj.php on line 3 Notice: Use of undefined constant hoschi - assumed 'hoschi' in /home/users/hoschi/sojka.8u.cz/web/uzivatel/mysql-pripoj.php on line 3 Notice: Use of undefined constant MOJE HESLO - assumed 'MOJE HESLO' in /home/users/hoschi/sojka.8u.cz/web/uzivatel/mysql-pripoj.php on line 3 hellohoschi5054252da0617b338ahooj (Heslo skryto) toto mi to nikdy neházelo... Vůbec nevím co tím myslí. Drobnosti opraveny. |
||
Tori Profil |
#4 · Zasláno: 11. 11. 2013, 18:48:43
Ondra Sojka:
„Use of undefined constant“ Tohle znamená, že v mysql-pripoj.php máte taky nějaké řetězce, které nejsou uzavřené do uvozovek. |
||
Rfilip Profil |
#5 · Zasláno: 11. 11. 2013, 18:49:06
V souboru mysql-pripoj.php nemáš řetězce v uvozovkách, php je protože považuje za konstanty a protože žádné konstanty toho jména neexistují uvozovky si doplní samo tím z nich udělá řetězce tedy interně dočasně opraví tvoji chybu a napíše o tom notice (nejnižší úroveň chyby spíš taková poznámka). Nebyly předtím vidět protože jste předtím neměl povolen výpis všech chyb. Jako oprava stačí řetězce mít v uvozovkách.
|
||
Ondra Sojka Profil |
#6 · Zasláno: 12. 11. 2013, 12:47:20
Doplnil jsem si prakticky všechny uvozovky v mém kódu, ale jakto že to jinde fungovalo i bez uvozovek? A teď, když jich je víc si to PHP nedoplní samo?
jinak vám moc děkuji, už vypisuje. Nějaké body chcete nebo tu nejsou? |
||
Tori Profil |
#7 · Zasláno: 12. 11. 2013, 16:59:53
Ondra Sojka:
„jakto že to jinde fungovalo i bez uvozovek“ Ne všechny znaky, které se dají použít uvnitř řetězce, lze také použít pro název konstanty (např. mezera či interpunkce). Možná to bylo tím. |
||
Časová prodleva: 15 dní
|
|||
Ondra Sojka Profil |
#8 · Zasláno: 27. 11. 2013, 20:00:38
<? ini_set('display_errors', 'On'); error_reporting(E_ALL); $status = session_status(); if($status == PHP_SESSION_NONE){ session_start(); } if(empty($_POST["pass"])){ die("Zadal jsi prázdné heslo."); } $pass = hash("sha256", $_POST["pass"]); require "mysql-pripoj.php"; echo "první test"; $user = $_POST["user"]; $vysledek = mysql_query("SELECT * FROM login WHERE pass='".$pass."'", $spojeni) or Die(MySQL_Error()); $zaznam = MySQL_Fetch_Assoc($vysledek) or Die(MySQL_Error()); echo "druhý test"; if(isset($_zaznam['pass'])){ $_SESSION['user'] = $zaznam['user']; $_SESSION['pass'] = $zaznam['pass']; echo "<b>Přihlášený uživatel</b>: ".$_SESSION['user'] . " | <a href='odhlasit.php'>Odhlášení</a><br>"; }else{ echo "Nejsi přihlášen | <a href='registrace.php'> Registrace</a> | <a href='prihlasit-formular.html'>Přihlášení</a>"; } ?> |
||
Kajman Profil |
#9 · Zasláno: 27. 11. 2013, 20:32:37
zkuste
$vysledek = mysql_query("SELECT * FROM login WHERE pass='".mysql_real_escape_string($pass)."' AND user='".mysql_real_escape_string($user)."'", $spojeni) or Die(MySQL_Error()); $zaznam = MySQL_Fetch_Assoc($vysledek) or Die('Login nebo heslo je chybne.'); |
||
Ondra Sojka Profil |
#10 · Zasláno: 28. 11. 2013, 12:12:00
nezdaří se fetch_assoc a proto die('Chybne heslo').
Html kód na konci samozřejmě nevypíše |
||
hrouda Profil |
#11 · Zasláno: 28. 11. 2013, 15:00:16
a do databáze jsi připojen ?
|
||
Ondra Sojka Profil |
#12 · Zasláno: 28. 11. 2013, 15:19:20
hrouda:
Ano, vždyť tam includuju mysql-pripoj.php, to funguje u registrace |
||
Kajman Profil |
#13 · Zasláno: 28. 11. 2013, 15:20:49
Ondra Sojka:
„nezdaří se fetch_assoc“ Nezadaří, protože tam není žádný odpovídající řádek. Nemusíte tam dávat die, když chcete pokračovat v provádění skriptu. |
||
Ondra Sojka Profil |
#14 · Zasláno: 29. 11. 2013, 10:46:02
V databázi odpovídající řádek je. Mám podezření že chyba je v syntaxi toho query (uvozovky apod.)
|
||
juriad Profil |
#15 · Zasláno: 29. 11. 2013, 11:08:30
Tak si ten dotaz vypiš a spusť jej manuálně v phpMyAdminu.
$query = "SELECT * FROM login WHERE pass='".mysql_real_escape_string($pass)."' AND user='".mysql_real_escape_string($user)."'"; echo $query; $vysledek = mysql_query($query); |
||
Časová prodleva: 4 dny
|
|||
Ondra Sojka Profil |
#16 · Zasláno: 3. 12. 2013, 20:09:35
Vypíše se
|
||
Kajman Profil |
Tak to bude nadbytečným podtržítkem na řádku 18.
if(isset($_zaznam['pass'])){ |
||
Časová prodleva: 8 dní
|
|||
Ondra Sojka Profil |
Děkuju všem, věc vyřešená.
|
||
Časová prodleva: 10 let
|
0