Autor | Zpráva | ||
---|---|---|---|
max.max Profil |
#1 · Zasláno: 6. 4. 2013, 15:45:56
Dá se použit nějaký funkce, když zadám špatné vypsaní z DB, zobrazí se mi stránka , "nemáte přístup".
Jde mi o to, že když použiju výpis z DB pomoci KOD a zadám KOD, který v tabulce není, zobrazí se mi prázdná stránka, chci, aby se mi zobrazila hláška "Nemáte přístup". Děkují <? session_start(); $username = $_SESSION['username']; $password = $_SESSION['password']; include("inc/config.php"); include("casti/hlavicka.php"); include("casti/nadpis.php"); include("casti/menu.php"); $kod = $_REQUEST['kod']; $druzstvo = $_POST['druzstvo']; $jedna = $_POST['jedna']; $dva = $_POST['dva']; $tri = $_POST['tri']; $ctyri = $_POST['ctyri']; $pet = $_POST['pet']; $sest = $_POST['sest']; $sedm = $_POST['sedm']; $osm = $_POST['osm']; $devet = $_POST['devet']; $deset = $_POST['deset']; $jedenact = $_POST['jedenact']; $dvanact = $_POST['dvanact']; $trinact = $_POST['trinact']; $ctrnact = $_POST['ctrnact']; $res = mysql_query("SELECT username,kod FROM login_druzstva WHERE username='$username' AND password='$password'"); if(mysql_num_rows($res) != 0) { if ($_SERVER['REQUEST_METHOD'] == "POST") { $sql = "UPDATE muzi SET druzstvo='$druzstvo', jedna='$jedna', dva='$dva', tri='$tri', ctyri='$ctyri', pet='$pet' , sest='$sest', sedm='$sedm', osm='$osm', devet='$devet',deset='$deset',jedenact='$jedenact',dvanact='$dvanact',trinact='$trinact',ctrnact='$ctrnact' WHERE kod = '$kod'"; $result = mysql_query($sql); echo "<td valign='top'><table cellSpacing='0' cellPadding='0' width='100%' bgColor='#FFCC00' border='0' align='center'> <td valign='top'><table cellSpacing='0' cellPadding='0' width='100%' bgColor='#FFCC00' border='0' align='center'> <tr> <td> <span class='styl3'>Tabulka - Muži</span></td> </tr> </table> <!-- Clánky-start --> <div class='modryram'> <table cellSpacing='0' cellPadding='3' width='100%' bgColor='#333333' border='0'> <tr><td class='styl9'> <span class='styl3'> <div align='center' style=\"color: #FFCC00\"><strong>Zmeneno</strong></center> </div> </span></td> </table></div> <!-- Clánky-konec -->"; } else { $result9 = mysql_query("select * from muzi where kod='$kod'"); while ($row9=mysql_fetch_assoc($result9)) { echo "<td valign='top'><table cellSpacing='0' cellPadding='0' width='100%' bgColor='#FFCC00' border='0' align='center'> <tr> <td> <span class='styl3'>Tabulka - Muži</span></td> </tr> </table> <!-- Clánky-start --> <div class='modryram'> <table cellSpacing='0' cellPadding='3' width='100%' bgColor='#333333' border='0'> <tr><td class='styl9'> <span class='styl3'> <table width=99% border=0 align=center cellpadding=2 cellspacing=1> <form action='upravit_muzi.php?kod=$row9[kod]' method=post> <tr bgcolor=White> <tr bgcolor=Silver> <td width=24% align=center><B><I>Družstvo MUŽI</I></B></td> <td width=5% align=center bgcolor=Silver title=Staré_Město><B><I>9.6.</I></B></td> <td width=5% align=center bgcolor=Silver title=Bystré><B><I>16.6.</I></B></td> <td width=5% align=center bgcolor=Silver title=Baška><B><I>17.6.</I></B></td> <td width=5% align=center bgcolor=Silver title=Palkovice><B><I>7.7.</I></B></td> <td width=5% align=center bgcolor=Silver title=Karolinka><B><I>8.7.</I></B></td> <td width=5% align=center bgcolor=Silver title=Vyšní_Lhoty><B><I>28.7.</I></B></td> <td width=5% align=center bgcolor=Silver title=Horní_Žukov><B><I>29.7.</I></B></td> <td width=5% align=center bgcolor=Silver title=Hukvaldy><B><I>4.8.</I></B></td> <td width=5% align=center bgcolor=Silver title=Stanislavice><B><I>5.8.</I></B></td> <td width=5% align=center bgcolor=Silver title=Skalice><B><I>11.8.</I></B></td> <td width=5% align=center bgcolor=Silver title=Hájov><B><I>1.9.</I></B></td> <td width=5% align=center bgcolor=Silver title=Brušperk><B><I>8.9.</I></B></td> <td width=5% align=center bgcolor=Silver title=Pstruží><B><I>15.9.</I></B></td> <td width=5% align=center bgcolor=Silver title=Fryčovice><B><I>22.9.</I></B></td> </tr> <tr bgcolor= #DADADA> <td><input type=text size=13 name='druzstvo' value='$row9[druzstvo]'></td> <td><input type=text size=1 name='jedna' value='$row9[jedna]'></td> <td><input type=text size=1 name='dva' value='$row9[dva]'></td> <td><input type=text size=1 name='tri' value='$row9[tri]'></td> <td><input type=text size=1 name='ctyri' value='$row9[ctyri]'></td> <td><input type=text size=1 name='pet' value='$row9[pet]'></td> <td><input type=text size=1 name='sest' value='$row9[sest]'></td> <td><input type=text size=1 name='sedm' value='$row9[sedm]'></td> <td><input type=text size=1 name='osm' value='$row9[osm]'></td> <td><input type=text size=1 name='devet' value='$row9[devet]'></td> <td><input type=text size=1 name='deset' value='$row9[deset]'></td> <td><input type=text size=1 name='jedenact' value='$row9[jedenact]'></td> <td><input type=text size=1 name='dvanact' value='$row9[dvanact]'></td> <td><input type=text size=1 name='trinact' value='$row9[trinact]'></td> <td><input type=text size=1 name='ctrnact' value='$row9[ctrnact]'></td> </tr> <tr> <td><input type='submit' name='submit' value='Prepsat'></td> </tr> </form> </span></td> </table></div> <!-- Clánky-konec -->"; } } } else { include("inc/loginform.php"); } include("casti/paticka.php"); ?> |
||
Camo Profil |
#2 · Zasláno: 6. 4. 2013, 16:55:14
max.max:
V tej else vetve by si mal rovnako ako na začiatku otestovať počet vrátených riadkov. if(mysql_num_rows($res) != 0) PS: A mal by si začať používať mysqli. |
||
max.max Profil |
#3 · Zasláno: 6. 4. 2013, 17:28:07 · Upravil/a: max.max
upravil jsem to na
$result9 = mysql_query("select * from muzi where kod='$kod'"); $radku=mysql_num_rows($vysledek); if ($radku==0) echo "HTML kod, který chci, aby se zobrazil třeba "Nemáte přístup""; aha, tak mi to nefunguje :D |
||
Camo Profil |
#4 · Zasláno: 6. 4. 2013, 17:42:32
max.max:
Prečo $vysledek, keď tam máš $result9? |
||
max.max Profil |
#5 · Zasláno: 6. 4. 2013, 18:04:20 · Upravil/a: max.max
stejně to nejde... pokusím se nad tím podumat
finální verze: <? session_start(); $username = $_SESSION['username']; $password = $_SESSION['password']; include("inc/config.php"); include("casti/hlavicka.php"); include("casti/nadpis.php"); include("casti/menu.php"); $id = $_REQUEST['id']; $kod = $_REQUEST['kod']; $druzstvo = $_POST['druzstvo']; $jedna = $_POST['jedna']; $dva = $_POST['dva']; $tri = $_POST['tri']; $ctyri = $_POST['ctyri']; $pet = $_POST['pet']; $sest = $_POST['sest']; $sedm = $_POST['sedm']; $osm = $_POST['osm']; $devet = $_POST['devet']; $deset = $_POST['deset']; $jedenact = $_POST['jedenact']; $dvanact = $_POST['dvanact']; $trinact = $_POST['trinact']; $ctrnact = $_POST['ctrnact']; $res = mysql_query("SELECT username,kod FROM login_druzstva WHERE username='$username' AND password='$password'"); if(mysql_num_rows($res) != 0) { if ($_SERVER['REQUEST_METHOD'] == "POST") { $sql = "UPDATE muzi SET druzstvo='$druzstvo', jedna='$jedna', dva='$dva', tri='$tri', ctyri='$ctyri', pet='$pet' , sest='$sest', sedm='$sedm', osm='$osm', devet='$devet',deset='$deset',jedenact='$jedenact',dvanact='$dvanact',trinact='$trinact',ctrnact='$ctrnact' WHERE kod = '$kod'"; $result = mysql_query($sql); echo "<td valign='top'><table cellSpacing='0' cellPadding='0' width='100%' bgColor='#FFCC00' border='0' align='center'> <td valign='top'><table cellSpacing='0' cellPadding='0' width='100%' bgColor='#FFCC00' border='0' align='center'> <tr> <td> <span class='styl3'>Tabulka - Muži</span></td> </tr> </table> <!-- Clánky-start --> <div class='modryram'> <table cellSpacing='0' cellPadding='3' width='100%' bgColor='#333333' border='0'> <tr><td class='styl9'> <span class='styl3'> <div align='center' style=\"color: #FFCC00\"><strong>Zmeneno</strong></center> </div> </span></td> </table></div> <!-- Clánky-konec -->"; } else { $result9 = mysql_query("select * from muzi where kod='$kod'"); $radku=mysql_num_rows($result9); if ($radku==0) echo "HTML kod, který chci, aby se zobrazil třeba Nemáte přístup"; else { while ($row9=MySQL_Fetch_Array($result9)): echo "<td valign='top'><table cellSpacing='0' cellPadding='0' width='100%' bgColor='#FFCC00' border='0' align='center'> <tr> <td> <span class='styl3'>Tabulka - Muži</span></td> </tr> </table> <!-- Clánky-start --> <div class='modryram'> <table cellSpacing='0' cellPadding='3' width='100%' bgColor='#333333' border='0'> <tr><td class='styl9'> <span class='styl3'> <table width=99% border=0 align=center cellpadding=2 cellspacing=1> <form action='upravit_muzi.php?kod=$row9[kod]' method=post> <tr bgcolor=White> <tr bgcolor=Silver> <td width=24% align=center><B><I>Družstvo MUŽI</I></B></td> <td width=5% align=center bgcolor=Silver title=Staré_Mìsto><B><I>9.6.</I></B></td> <td width=5% align=center bgcolor=Silver title=Bystré><B><I>16.6.</I></B></td> <td width=5% align=center bgcolor=Silver title=Baška><B><I>17.6.</I></B></td> <td width=5% align=center bgcolor=Silver title=Palkovice><B><I>7.7.</I></B></td> <td width=5% align=center bgcolor=Silver title=Karolinka><B><I>8.7.</I></B></td> <td width=5% align=center bgcolor=Silver title=Vyšní_Lhoty><B><I>28.7.</I></B></td> <td width=5% align=center bgcolor=Silver title=Horní_Žukov><B><I>29.7.</I></B></td> <td width=5% align=center bgcolor=Silver title=Hukvaldy><B><I>4.8.</I></B></td> <td width=5% align=center bgcolor=Silver title=Stanislavice><B><I>5.8.</I></B></td> <td width=5% align=center bgcolor=Silver title=Skalice><B><I>11.8.</I></B></td> <td width=5% align=center bgcolor=Silver title=Hájov><B><I>1.9.</I></B></td> <td width=5% align=center bgcolor=Silver title=Brušperk><B><I>8.9.</I></B></td> <td width=5% align=center bgcolor=Silver title=Pstruží><B><I>15.9.</I></B></td> <td width=5% align=center bgcolor=Silver title=Fryèovice><B><I>22.9.</I></B></td> </tr> <tr bgcolor= #DADADA> <td><input type=text size=13 name='druzstvo' value='$row9[druzstvo]'></td> <td><input type=text size=1 name='jedna' value='$row9[jedna]'></td> <td><input type=text size=1 name='dva' value='$row9[dva]'></td> <td><input type=text size=1 name='tri' value='$row9[tri]'></td> <td><input type=text size=1 name='ctyri' value='$row9[ctyri]'></td> <td><input type=text size=1 name='pet' value='$row9[pet]'></td> <td><input type=text size=1 name='sest' value='$row9[sest]'></td> <td><input type=text size=1 name='sedm' value='$row9[sedm]'></td> <td><input type=text size=1 name='osm' value='$row9[osm]'></td> <td><input type=text size=1 name='devet' value='$row9[devet]'></td> <td><input type=text size=1 name='deset' value='$row9[deset]'></td> <td><input type=text size=1 name='jedenact' value='$row9[jedenact]'></td> <td><input type=text size=1 name='dvanact' value='$row9[dvanact]'></td> <td><input type=text size=1 name='trinact' value='$row9[trinact]'></td> <td><input type=text size=1 name='ctrnact' value='$row9[ctrnact]'></td> </tr> <tr> <td><input type='submit' name='submit' value='Prepsat'></td> </tr> </form> </span></td> </table></div> <!-- Clánky-konec -->"; endwhile; } } } else { include("inc/loginform.php"); } include("casti/paticka.php"); ?> Camo: nechtěně jsem se přehmatl, já to zkoušel s $result9 a stejně to nešlo, nevím proč jsem tu poslal odkaz s $vysledek. Trochu jsem to upravil a už je to dobré :) tak jako tak, díky za pomoc :) |
||
Enko Profil * |
#6 · Zasláno: 7. 4. 2013, 00:17:25
max.max:
Tvůj kód je zneužitelný pravděpodobně na XSS a určitě na SQL Injection. Doporučuju ošetřit vstupy do DB například mysql_real_escape_string() nebo (int), atp... A všechny výstupy na stránku upravovat proti nevhodným html tagům. Ušetříš si tím do budoucna spoustu starostí ;) |
||
max.max Profil |
#7 · Zasláno: 7. 4. 2013, 10:31:30
Myslíš, že se jedná o zneužití nějaké spamu? nebo, že by nějaký z uživatelů by mohl chtěně změnit cizí článěk? A chápu, že mysql_real_escape_string() mám použit pro přihlášení do systému ano?
|
||
Camo Profil |
#8 · Zasláno: 7. 4. 2013, 11:52:37
max.max:
Všetky dáta, ktoré prímaš od užívateľov, by si mal ošetriť. Nikdy si nečítal o XSS alebo SQL injection? PS:A nauč sa normálne vyjadrovať. Najprv som na to nechcel reagovať, ale už to preháňaš: "když zadám špatné vypsaní z DB" alebo "Myslíš, že se jedná o zneužití nějaké spamu?" Veď to je na hranici čitateľnosti! |
||
Časová prodleva: 11 let
|
0