| 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: 13 let
|
|||
0