Autor | Zpráva | ||
---|---|---|---|
xpt26 Profil * |
#1 · Zasláno: 2. 8. 2009, 20:23:49
zdravím hraju si poprpvé s SQL
a mám v SQL tabulku cms_users a sloupec pass a po $overeni_prihlaseni2 = mysql_query("SELECT * FROM cms_users WHERE pass = '$postnuty_pass'"); a potřebuju zjistit proč to nefajščí.... |
||
fuckin Profil |
#2 · Zasláno: 2. 8. 2009, 20:26:18
a co bys cekal ze ti ten prikaz udela? Zpracovavas to napr pres mysql_fetch_array?
Jestli ano ale zadnou hodnotu ti to nevrati tak si vypis chybu. mysql_query(...) or die(mysql_error()); |
||
SwimX Profil |
#3 · Zasláno: 2. 8. 2009, 20:28:47 · Upravil/a: SwimX
xpt26:
co nefajščí? pokud chceš vidět data pak musíš $radka = mysql_fetch_assoc($overeni_prihlaseni2); echo $radka['pass']."<br>".$radka['po'] za podmínky že předtímto vším máš připojení do DB, výber DB atd. viz: http://www.linuxsoft.cz/article.php?id_article=336 |
||
xpt26 Profil * |
#4 · Zasláno: 2. 8. 2009, 20:30:56
tak tedy zkusím celý skript
ale kamarád mi trochu poradil a jemu to tak funguje... <form method="POST" action="login.php"> <input type="text" name ="nick"> Váš nick<p> <input type="password" name ="heslo"> Váše heslo</p> <p> <input type="submit" name="log_in" value="Přihlásit"> </p> </form> <?php include ("config.php"); $postnuty_nick = $_POST['nick']; $postnuty_pass = $_POST['heslo']; if ( isset($HTTP_POST_VARS['log_in']) ) { $ak = "SELECT * FROM cms_users WHERE nick=\"{$postnuty_nick}\""; $akt = mysql_query ($ak); $ak2 = "SELECT * FROM cms_users WHERE pass=\"{$postnuty_pass}\""; $akt2 = mysql_query ($ak2); } if (!$akt) { echo"špatné jméno"; } else { echo"GOOD nick"; } if (!$akt2) { echo"špatné heslo"; } else { echo"GOOD pass"; } ?> obash config.php <? $link = mysql_connect("localhost", "root", "19723698") or die ("Could not connect to MySQL"); mysql_select_db ("cms") or die ("Could not select database"); ?> |
||
SwimX Profil |
#5 · Zasláno: 2. 8. 2009, 20:35:16
xpt26:
to vypadá dobře. udělej $akt = mysql_query ($ak) or die (mysql_error()); a pokud to něco vypíše, hoď to sem. jinak pozor na SQL injection |
||
xpt26 Profil * |
#6 · Zasláno: 2. 8. 2009, 20:41:43
tak jo nevypíše to nic .....
|
||
xpt26 Profil * |
#7 · Zasláno: 2. 8. 2009, 20:44:35
ještě bych poprosil o nějakou podmínku když oba příkazy vyjdou aby to vypsalo třeba OK ... zkusil sem na konec přidat
if ($akt2 AND $akt) { echo"OK "; } ale problém je v tom že mi to píše špatný heslo a špatný jméno ale na konec to píše OK .... takže jako kdyby to nevyšlo a zárověn vyšlo... ale co mi vadí víc že to píše při zadání jakýchkoliv údajů jak spprávných tak špatných... |
||
SwimX Profil |
#8 · Zasláno: 2. 8. 2009, 20:46:29
xpt26:
dobrá, tak pořešíme uplné základy :) je to celé phpko v souboru: login.php? a vypíše ti to alespoň špatný nick a špatné heslo? a eště: zkus vyhodit tudle podmínku: if ( isset($HTTP_POST_VARS['log_in']) ) |
||
SwimX Profil |
#9 · Zasláno: 2. 8. 2009, 20:47:38 · Upravil/a: SwimX
xpt26:
„ještě bych poprosil o nějakou podmínku když oba příkazy vyjdou aby to vypsalo třeba OK ... zkusil sem na konec přidat“ $ak = "SELECT * FROM cms_users WHERE nick=\"".addslashes($postnuty_nick)."\" and pass=\"".addslashes($postnuty_pass)."\""; $akt = mysql_query ($ak); if (!$akt) { echo"špatné údaje"; } else { echo"přihlášen"; } |
||
xpt26 Profil * |
#10 · Zasláno: 2. 8. 2009, 20:49:36
SwimX:
ano celé je to v login.php Ano vypíše to špatný nick a špatný pass ale vždy nezávisle na tom co zadám.... když sem dal pryč tu podmínku na jenom když se zmáčkne to tlačítko tak to píše furt " špatné jménošpatné hesloOK " |
||
xpt26 Profil * |
#11 · Zasláno: 2. 8. 2009, 20:52:01
SwimX:
S použitím $ak = "SELECT * FROM cms_users WHERE nick=\"".addslashes($postnuty_nick)."\" and pass=\"".addslashes($postnuty_pass)."\""; $akt = mysql_query ($ak); if (!$akt) { echo"špatné údaje"; } else { echo"přihlášen"; } to pro změnu furt píše přihlášen ikdyž dám cokoliv |
||
SwimX Profil |
#12 · Zasláno: 2. 8. 2009, 21:18:58
xpt26:
<?php $link = mysql_connect("localhost", "root", "") or die ("Could not connect to MySQL"); mysql_select_db ("okresy") or die ("Could not select database"); ?> <form method="POST" > <input type="text" name ="nick"> Váš nick<p> <input type="password" name ="heslo"> Váše heslo</p> <p> <input type="submit" name="log_in" value="Přihlásit"> </p> </form> <?php include ("config.php"); $postnuty_nick = $_POST['nick']; $postnuty_pass = $_POST['heslo']; if ( isset($HTTP_POST_VARS['log_in']) ) { $ak = "SELECT * FROM okresy WHERE nazev_cs=\"{$postnuty_nick}\" and id={$postnuty_pass}"; $akt = mysql_query ($ak); } if (!$akt) { echo"špatně"; } else { echo"GOOD"; } ?> mě to funguje, takže nevidím důvod proč by tobě nemělo. když zadám okres Benešov a id 1 tak GOOD jinak vždy špatně. :) |
||
xpt26 Profil * |
#13 · Zasláno: 2. 8. 2009, 21:29:45
Ok tak tedy díky zkusím zítra, protože ted už nemám PC s xamppem...
|
||
fuckin Profil |
#14 · Zasláno: 2. 8. 2009, 21:31:20
zkus jeste
if (@mysql_num_rows($akt)) { echo "ok"; } else { echo "blbe"; } |
||
xpt26 Profil * |
#15 · Zasláno: 3. 8. 2009, 09:21:35
OK díky moc ta podmínka
if (@mysql_num_rows($akt)) { echo "ok"; } else { echo "blbe"; } Opravdu funguje ! |
||
fuckin Profil |
#16 · Zasláno: 3. 8. 2009, 09:37:12
ano protoze nemuzes porovnavat stylem if ($akt) protoze toto projde ikdyz to nic nenajde. Akorat kdyz se objevi nejaka chyba tak to neprojde.
Musis spocitat kolik vyskytu to naslo proto mysql_num_rows. Ten @ je tam proto ze kdyz to nic nenajde tak to vyhodi notice ze to nema co pocitat. |
||
xpt26 Profil * |
#17 · Zasláno: 3. 8. 2009, 13:52:17
ok poučím se!
Díky moc |
||
Časová prodleva: 15 let
|
0