Autor | Zpráva | ||
---|---|---|---|
Venushja Profil |
#1 · Zasláno: 3. 10. 2009, 21:25:47
Zdravim mam tu zase script kterej nefunguje tak jak by mel...
Jde o to ze kdyz mam svuj profil tak mi to ukaze Udaje vsechno ale rpoblem je ze se mi ukaze i pod tim hlaska toto neni tvuj rpofil i kdyz je muj ale u ostatnich to funguje...Jako kdyz nejsem na svym tak to ukaze hlasku to je Ok ale tamto ne... <? include("include/connect.php"); $user_vyber = MySQL_Query("SELECT * FROM users"); $user_count = MySQL_Query("SELECT count(*) FROM users"); $user_array = MySQL_Fetch_Array($user_count); while ($user_db=MySQL_Fetch_Array($user_vyber)): if($_COOKIE[login]=="$user_db[login]"){ switch ($_GET[p_id]){ case $user_db[id] : echo "<title>..:Warez Web:.. [Profil $user_db[login]]</title>"; echo"<br><br><br><center> ...DLOUHEJ SCP... "; break; }; }else{ echo"<br><br><br><H1><BLINK><span style='color:red'>Toto není tvůj Profil</span></blink></H1>"; }; endwhile; ?> |
||
Alphard Profil |
#2 · Zasláno: 3. 10. 2009, 21:34:47 · Upravil/a: Alphard
Venushja:
> break; > }; > }else{ Co má dělat tahle konstrukce? „$_COOKIE[login]“ Tam skutečně patří apostrofy. Aha, ztratil jsem se ve vašem odsazování, chyba bude jinde. |
||
Venushja Profil |
#3 · Zasláno: 3. 10. 2009, 21:37:34
> break; Todle Ukonci case
> }; Todle ukonci switch > }else{ todle je else na podminku if pod while... Jak myslis apostrofy dal sem je tam ale nic se nezmenilo |
||
Alphard Profil |
#4 · Zasláno: 3. 10. 2009, 21:46:05
Snad se už orientuji, upřesněte prosím, co přesně se vypisuje, není možné, aby se zároveň vypsal profil i hláška, musí se vypsat právě jedno.
Pro ostatní sem dám trochu poodsazovaný kód: while ($user_db=MySQL_Fetch_Array($user_vyber)) { if($_COOKIE[login]=="$user_db[login]") { switch ($_GET[p_id]) { case $user_db[id] : echo "<title>..:Warez Web:.. [Profil $user_db[login]]</title>"; echo"<br><br><br><center>"; break; } } else { echo"<br><br><br><H1><BLINK><span style='color:red'>Toto není tvůj Profil</span></blink></H1>"; } } |
||
Venushja Profil |
#5 · Zasláno: 3. 10. 2009, 21:48:31
No prave ze je to mozne taky se divim proc to takhle dela kouknete se sem... www.warweb.hu.cz registrujte se a uvidite ze to opravdu dela...
|
||
Alphard Profil |
#6 · Zasláno: 3. 10. 2009, 21:50:54
Registrovat se nebudu.
Jste si jist, že ta hláška nepochází z následující smyčky cyklu? |
||
Venushja Profil |
#7 · Zasláno: 3. 10. 2009, 21:52:29
Takhle jak sem poslal kod tak tak to mam napsany i ve scriptu...tak prave nevim proto se ptam tady ale podminky me problem nedelaji tak nevim proc tady me to blbne
|
||
Venushja Profil |
#8 · Zasláno: 3. 10. 2009, 21:59:41 · Upravil/a: Venushja
tu mam dukaz ze to je mozny a nevim co s tim...
http://koukej.707.cz/obrazky/podminka.jpg |
||
Davex Profil |
#9 · Zasláno: 3. 10. 2009, 22:07:32
A není to tím, že pomocí while procházíš všechny řádky a pomocí break se ukončí jen ten switch? Dotaz do databáze by měl rovnou hledat jen konkrétního uživatele.
|
||
Venushja Profil |
#10 · Zasláno: 3. 10. 2009, 22:10:35
Davex
Nad tim sem uz premejslel ale ja to musim dat az za break to while protoze me pak nefungovalo cely switch |
||
Alphard Profil |
#11 · Zasláno: 3. 10. 2009, 22:19:15
Dobrá, ten obrázek snad aspoň trochu pomohl.
include "include/connect.php"; $user = MySQL_Query("SELECT * FROM users where id = " . (int) $_GET['p_id']); if (mysql_num_rows($user)) { $user_db = mysql_fetch_assoc($user); if ($_COOKIE['login'] == $user_db['login']) { echo "Vaše stránka"; } else { echo"<br><br><br><H1><BLINK><span style='color:red'>Toto není tvůj Profil</span></blink></H1>"; } } else { echo "Nebyl vybrán uživatel"; } |
||
Venushja Profil |
#12 · Zasláno: 3. 10. 2009, 22:25:20
WaW opravdu to funguje akorad nejak nechapu
todle ("SELECT * FROM users where id = " . (int) $_GET['p_id']); mysql_num_rows($user) mysql_fetch_assoc($user) |
||
Alphard Profil |
#13 · Zasláno: 3. 10. 2009, 22:37:08
To (int) v prvním řádku chrání před sql injection.
U těch dalších zvýrazňovač syntaxe přímo odkazuje manuál, tak se tam můžete podívat sám. Přece si nebudeme popisy funkcí předávat ústní tradicí z generace na generaci. |
||
gogy Profil * |
#14 · Zasláno: 3. 10. 2009, 23:10:51
toto (int) je dobre davat pred kazdu ciselnu premennu?
|
||
Alphard Profil |
#15 · Zasláno: 3. 10. 2009, 23:20:16
gogy:
„toto (int) je dobre davat pred kazdu ciselnu premennu?“ Pokud pochází od uživatele nebo ji potřebujeme ověřit z jiného důvodu, tak ano. Je to většinou nejjednodušší způsob ochrany. Když útočník zadá cokoliv nečíselného, tak se to bude interpretovat jako 0 (popř. jiné číslo, pokud jím začínal řetězec) a provede se naprosto neškodný dotaz s where id = 0. Lze to využít samozřejmě i v jiných případech, nejen s databází. |
||
Časová prodleva: 14 let
|
0