kontrola php skriptu

Programovacie jazyky, rady, poradňa...
ades
Guru
Guru
Používateľov profilový obrázok
Príspevky: 2841
Registrovaný: 14 júl 2006, 22:31
Bydlisko: Praha

kontrola php skriptu

Príspevok od používateľa ades »

zdravim. mohol by som vas poprosit, mohli by ste sa mi niekto pozriet na tento skript a pripadne odkontrolovat chyby? pisal to povodne spoluziak na triednu stranku, ja som si to trocha upravil, ale predsa len aby som kludne spaval :) diky moc

Kód: Vybrať všetko

if($_GET['id']==null && $_GET['reg']==null){
	$q = mysql_query("SELECT meno,priezvisko,nick,id,status FROM profile ORDER BY id");
  $n = mysql_num_rows($q);
  echo '<ul>';
  
	if($n>0){
  	for($i=0;$i<$n;$i++){
  
		$meno=MySQL_Result($q,$i,'meno');
  		$priezvisko=MySQL_Result($q,$i,'priezvisko');
  		$nick=MySQL_Result($q,$i,'nick');
  		$id=MySQL_Result($q,$i,'id');
  		}
     
if($_GET['id']!=null){       
	 $j = $_GET['id'];
	 $q = mysql_query("SELECT * FROM profile WHERE id='$j' ORDER BY id");
 
 			
		$meno=MySQL_Result($q,0,'meno');
  		$priezvisko=MySQL_Result($q,0,'priezvisko');
  		$nick=MySQL_Result($q,0,'nick');
                                     $datum=MySQL_Result($q,0,'datum');
  		$info=MySQL_Result($q,0,'info');
  		$sig=MySQL_Result($q,0,'sig');
  		$email=MySQL_Result($q,0,'email');
  		$email2=MySQL_Result($q,0,'email2');
  		$phone=MySQL_Result($q,0,'phone');
  		$phone2=MySQL_Result($q,0,'phone2');
		$ICQ=MySQL_Result($q,0,'ICQ');
		$MSN=MySQL_Result($q,0,'MSN');
		$azet=MySQL_Result($q,0,'azet');
		$kniha=MySQL_Result($q,0,'kniha');
		$film=MySQL_Result($q,0,'film');
		$skupina=MySQL_Result($q,0,'skupina');
		$interpret=MySQL_Result($q,0,'interpret');

  		echo '<div id="profile">
			echo '<ul><li>'.$meno.' '.$priezvisko.'</li><li>Nick: ['.$nick.']</li>;
  		if($datum!=''){echo '<li>Dátum narodenia: '.$datum.'</li>';}
		if($sig!=''){echo '<li>Podpis do fóra: '.$sig.'</li>';}
  		if($info!=''){echo '<li>Niečo o tebe: '.$info.'</li>';}
  		if($email!='') {echo '<li><a href="mailto:'.$email.'">email</a></li>';}
		if($email2!='') {echo '<li><a href="mailto:'.$email2.'">email2</a></li>';}
		if($phone!=''){echo '<li>Telefón: '.$phone.'</li>';}
		if($phone2!=''){echo '<li>Telefón 2: '.$phone2.'</li>';}
		if($ICQ!=''){echo '<li>ICQ: '.$ICQ.'</li>';}
		if($MSN!=''){echo '<li>MSN: '.$MSN.'</li>';}
		if($azet!=''){echo '<li>Nick na pokeci: '.$azet.'</li>';}
		if($kniha!=''){echo '<li>Obľúbená kniha: '.$kniha.'</li>';}
		if($film!=''){echo '<li>Obľúbený film: '.$film.'</li>';}
		if($skupina!=''){echo '<li>Obľúbená skupina: '.$skupina.'</li>';}
		if($interpret!=''){echo '<li>Obľúbený interpret: '.$interpret.'</li>';}

		</ul>';
  		echo '</div>';
} 

je to skript k formularu, ktory posle udaje do databazy a odtial ich tento skript vytiahne a zobrazi (udaje o spoluziakoch)
turtlak69
Guru
Guru
Príspevky: 2896
Registrovaný: 10 máj 2007, 15:58
Bydlisko: /dev/null

Príspevok od používateľa turtlak69 »

ehm... preco to neskusis spustit? hned by si videl ci to ide alebo nie :)
geoge046
Star
Star
Používateľov profilový obrázok
Príspevky: 608
Registrovaný: 10 aug 2005, 14:15
Bydlisko: Prievidza
Kontaktovať používateľa:

Príspevok od používateľa geoge046 »

turtlak69 napísal:ehm... preco to neskusis spustit? hned by si videl ci to ide alebo nie :)
On asi myslel ci sa mu nekdo nemoze naburat neako do DB neakym SQL injecton ;)
ades
Guru
Guru
Používateľov profilový obrázok
Príspevky: 2841
Registrovaný: 14 júl 2006, 22:31
Bydlisko: Praha

Príspevok od používateľa ades »

nie, nejde o naburanie:) ale teraz ma napadlo, dalo by sa to vyskusat cez localhost? myslim tym cez phptriad
mastermind
VIP
VIP
Používateľov profilový obrázok
Príspevky: 4810
Registrovaný: 09 feb 2005, 13:17

Príspevok od používateľa mastermind »

je to divne cele.
selecty su divne. id je tam string a neosetreny takze pri nejakom vstupe to zblbne
potom aj to fetchovanie udajov z db.... nikde to nespustaj
caesar1987
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3001
Registrovaný: 02 okt 2005, 0:57
Bydlisko: Nové Zámky
Kontaktovať používateľa:

Príspevok od používateľa caesar1987 »

noo zaujimavy skript

mna naj zaujalo to ziskavanie resultov pri kazdej premennej
ako bolo pisane hore, to ide no hmm... tak zaujimave.. podla akeho prikladu robil ten znamy tento tdrojak??

tu som ti narychlo skopiroval cast mojho zdrojaky, ktory vypisuje hracov z databazy podla vybratej hry ($coho)

Kód: Vybrať všetko

<table class="hraci2" cellpadding="3">
<tr class="nadpis3" style="font-size: 0.9em;">
<td style="text-align: left;">Nick</td>
<td style="text-align: left;">Team</td>
</tr>
<?php
include('hesla.php');
$link = mysql_connect($datcon, $datname, $datpass);
  if ($link) {
  	if (mysql_select_db($datdat, $link)) {
  		$sql = "SELECT * FROM cw_hraci WHERE hra='" . $coho . "'";
  		$sql .= " ORDER BY id ASC;";
  		$result = mysql_query($sql, $link);
  		if ($result) {
  		  while ($row = mysql_fetch_assoc($result)) {
  		    
        ?>
          <tr class="hraci1">
          <td class="odkaz2"><a href="profil.php?user=<?php echo $row['meno']; ?>"><?php echo $row['meno']; ?></a></td>
          <?php
          if ($row['tim'] == ""){
            ?>
            <td style="font-weight: normal;">Bez tímu</td>
            <?php
          }else {
            ?>
            <td class="odkaz2"><a href="team.php?team=<?php echo $row['tim']; ?>"><?php echo $row['tim']; ?></a></td>
            <?php
          }
          ?>
          </tr>
        <?php
        }
        mysql_free_result($result);
        }else{
           echo '<p style="color: #FF0000;">Hra nebola najdena</p>'; 
        }

  	} else { 
  		echo '<p style="color: #FF0000;">Nepodarilo sa vybrať databázu</p>';
  	} // end vyber db
  	mysql_close($link);
  } else { 
  	echo '<p style="color: #FF0000;">Nepodarilo sa spojiť s databázou</p>';
  } // end spojenie s db

echo "</table>";
ades
Guru
Guru
Používateľov profilový obrázok
Príspevky: 2841
Registrovaný: 14 júl 2006, 22:31
Bydlisko: Praha

Príspevok od používateľa ades »

caesar1987 napísal:podla akeho prikladu robil ten znamy tento tdrojak??
on to robil nacisto, bez prikladu. ide o stranku oktava.kx.cz a povodny php skript je tu

Kód: Vybrať všetko

if($_GET['id']==null && $_GET['reg']==null){
	$q = mysql_query("SELECT meno,priezvisko,nick,id,status FROM profile ORDER BY id"); //SQL dotaz databaze - vsetci clenovia
  $n = mysql_num_rows($q);
  echo '<ul>';
  
	if($n>0){
  	for($i=0;$i<$n;$i++){
/* cyklus pre kazdy jeden vysledok vlozi udaje do premennych ...*/  	  

		$meno=MySQL_Result($q,$i,'meno');
  		$priezvisko=MySQL_Result($q,$i,'priezvisko');
  		$nick=MySQL_Result($q,$i,'nick');
  		$id=MySQL_Result($q,$i,'id');
  		$status=MySQL_Result($q,$i,'status');
  		if($status=='member'){$col='style="color: yellow;"';}
  		if($status=='admin'){$col='style="color: orange;"';}
  		if($status==''){$col='style="color: white;"';}
  		if($statsess=='admin'){$adminstring='<a href="status-manager.php?id='.$id.'">&nbsp;E</a>';}
      echo '<LI '.$col.'><a href="profile.php?id='.$id.'">'.$meno.' '.$priezvisko.' - '.$nick.'</a>'.$adminstring.'</LI>'; //vypis udajov
  		}
  	}
  	echo '</ul>';
  	}
 
if($_GET['id']!=null){       //ked existuje parameter id (url je v tvare profile.php?id=...
	 $j = $_GET['id'];
	 $q = mysql_query("SELECT * FROM profile WHERE id='$j' ORDER BY priezvisko");
 
 			
		$meno=MySQL_Result($q,0,'meno');
  		$priezvisko=MySQL_Result($q,0,'priezvisko');
  		$nick=MySQL_Result($q,0,'nick');
      
      		$datum=MySQL_Result($q,0,'datum');
  		$online=MySQL_Result($q,0,'online');
  		$info=MySQL_Result($q,0,'info');
  		
  		$foto=MySQL_Result($q,0,'foto');
  		$sig=MySQL_Result($q,0,'sig');
  		$status=MySQL_Result($q,0,'status');
  		$email=MySQL_Result($q,0,'email');
  		
  		echo '<div id="profile"><img src="thumbs/'.$foto.'"/>';
			echo '<ul><li><strong>'.$meno.' '.$priezvisko.'</strong></li><li>Nick: [<strong>'.$nick.'</strong>]</li><li>Status: '.$status.'</li>';
  		if($datum!=''){echo '<li>Dátum narodenia: '.$datum.'</li>';}
  		if($info!=''){echo '<li>Stručné info: '.$info.'</li>';}
  		if($email!='' && $_SESSION['logged'] && $_SESSION['logged']<50){echo '<li><a href="mailto:'.$email.'">email</a></li>';}
  		echo '<li><a href="profile.php?reg='.$j.'&status='.$status.'">Registrácia - Zmena údajov</a></li></ul>';
  		echo '</div>';
} 
if($_GET['reg']!=null && $session == $_GET['reg'] || $_GET['reg'] && $_GET['status']==''){    //toto su nejake podmienky ktore zarucia, ze upravu 
//profilu moze vykonat len jeho vlastnik
	$j = $_GET['reg'];
	$q = mysql_query("SELECT * FROM profile WHERE id='$j'");
  
 		$id = MySQL_Result($q,0,'id');
		$meno=MySQL_Result($q,0,'meno');
  		$priezvisko=MySQL_Result($q,0,'priezvisko');
  		$nick=MySQL_Result($q,0,'nick');
      
      		$datum=MySQL_Result($q,0,'datum');
  		$online=MySQL_Result($q,0,'online');
  		$info=MySQL_Result($q,0,'info');
  		
  		$foto=MySQL_Result($q,0,'foto');
  		$sig=MySQL_Result($q,0,'sig');
  		$status=MySQL_Result($q,0,'status');
  		$email=MySQL_Result($q,0,'email');
  		$pass = MySQL_Result($q,0,'heslo');
  		echo '<p><a href="upload.php?id='.$id.'"><h2>Nová fotka (tvoja)</h2></a></p>';
  		
			echo '<div id="form"><form name="profile" action="profile.php" method="POST">';
  		echo '<input type="text" name="meno" value="'.$meno.'"/> - Meno <br/>';
  	  echo '<input type="text" name="priezvisko" value="'.$priezvisko.'"/> - Priezvisko <br/>';
			
			echo '<input type="text" name="nick" value="'.$nick.'"/> - Nick (pod ktorým tu budeš vystupovať)<br/>';
  	  echo '<input type="password" name="pass1" value=""/> - Heslo <br/>';
  	  echo '<input type="password" name="pass2" value=""/> - Kontrola hesla<br/>';
			echo '<input type="text" name="datum" value="'.$datum.'"/> - Dátum narodenia (dd.mm.) - nepovinné<br/>';
  	  echo '<textarea name="info">'.$info.'</textarea> - niečo o tebe<br/>';
  	  echo '<textarea name="sig">'.$sig.'</textarea> - Podpis na fóre - zobrazí sa pod každým príspevkom<br/>';
  	  echo '<input type="text" name="email" value="'.$email.'"/>- email, mali by ste vyplniť<br/>';
  	  echo '<input type="hidden" name="id" value="'.$id.'"/>';
			echo '<input type="submit" name="reg" value="Odoslať"/><br/>';
			
			echo '</form></div>';
  		
}

tento funguje bezchybne. ja som sa pokusal ho upravit len aby vypisal udaje z databazy, nic viac :( o registraciu mi nejde
caesar1987
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3001
Registrovaný: 02 okt 2005, 0:57
Bydlisko: Nové Zámky
Kontaktovať používateľa:

Príspevok od používateľa caesar1987 »

ty to potrebujes len a len vypisat?? teda bez akychkolvek podmienok??
ak ano.. tak tu to je

Kód: Vybrať všetko

$datcon = "localhost";
$datname - meno do databazy;
$datpass = heslo do databazy;
$datdat = meno databazy;
$dattabulka = meno tabulky;

$link = mysql_connect($datcon, $datname, $datpass);
  if ($link) {
     if (mysql_select_db($datdat, $link)) {
        $sql = "SELECT * FROM  $dattabulka";
        $sql .= " ORDER BY id ASC;";
        $result = mysql_query($sql, $link);
        if ($result) {
          while ($row = mysql_fetch_assoc($result)) {
           
        ?>
          <tr>
          <td>meno:</td>
          <td><?php echo $row['meno'];?></td>
          </tr>
          <tr>
          <td>priezvysko:</td>
          <td><?php echo $row['priezvysko'];?></td>
          </tr>
        <?php
        }
        mysql_free_result($result);
        }else{
           echo '<p style="color: #FF0000;">Tabulka nebola najdena</p>';
        }

     } else {
        echo '<p style="color: #FF0000;">Nepodarilo sa vybrať databázu</p>';
     } // end vyber db
     mysql_close($link);
  } else {
     echo '<p style="color: #FF0000;">Nepodarilo sa spojiť s databázou</p>';
  } // end spojenie s db 

podla tohto si to uprav a daj to do tabulky a pojde to

do toho $row['NIECO']; - davaj mena stlpcov v tabulke, ktorych udaje chces vypisat
ades
Guru
Guru
Používateľov profilový obrázok
Príspevky: 2841
Registrovaný: 14 júl 2006, 22:31
Bydlisko: Praha

Príspevok od používateľa ades »

caesar1987:ano, len vypisat pre tu danu osobu, ktoru si vyberiem zo zoznamu (otvori sa dalsia stranka a tam budu tie udaje). dikes, skusim :wink:
caesar1987
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3001
Registrovaný: 02 okt 2005, 0:57
Bydlisko: Nové Zámky
Kontaktovať používateľa:

Príspevok od používateľa caesar1987 »

ades napísal:caesar1987:ano, len vypisat pre tu danu osobu, ktoru si vyberiem zo zoznamu (otvori sa dalsia stranka a tam budu tie udaje). dikes, skusim :wink:
tak ak to chcel len pre jednu osobu, tak tam daj

$sql = "SELECT * FROM $dattabulka WHERE meno='".$meno."' LIMIT 1;";

to co som pisal predtym ti vypise vsetky osoby, toto len jednu, ktorej meno bude v premennej meno
ades
Guru
Guru
Používateľov profilový obrázok
Príspevky: 2841
Registrovaný: 14 júl 2006, 22:31
Bydlisko: Praha

Príspevok od používateľa ades »

caesar1987 napísal:tak ak to chcel len pre jednu osobu, tak tam daj

$sql = "SELECT * FROM $dattabulka WHERE meno='".$meno."' LIMIT 1;";

to co som pisal predtym ti vypise vsetky osoby, toto len jednu, ktorej meno bude v premennej meno
ok dik :)
Napísať odpoveď