Autor Zpráva
Venushja
Profil
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
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
> 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
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
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
Registrovat se nebudu.
Jste si jist, že ta hláška nepochází z následující smyčky cyklu?
Venushja
Profil
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
tu mam dukaz ze to je mozny a nevim co s tim...
http://koukej.707.cz/obrazky/podminka.jpg
Davex
Profil
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
Davex
Nad tim sem uz premejslel ale ja to musim dat az za break to while protoze me pak nefungovalo cely switch
Alphard
Profil
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
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)
nemuzes to nejak popsat ty prikazy nejak nechapu...Aspon se priucim...
Alphard
Profil
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 *
toto (int) je dobre davat pred kazdu ciselnu premennu?
Alphard
Profil
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í.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0