ďťż

{PHP + MySQL} Problem z wyświetlaniem rekordu... ...podanego w panametrze $_GET

       

Podstrony


telcocafe

witam,
Mam problem...
Otórz chce aby skrypt wyświetlał mi pojedyńczy rekord z całej tableki...

<?php $query='SELECT * FROM aktualnosci WHERE id="{echo (\"$_GET[\"newsid\"]\")}?"'; $result = mysql_query ($query); while ($row = mysql_fetch_array($result)) { echo('<table style="width:100%; border:1px solid #000000;">'); echo('<tr><td style="width:80%; font: bold italic 15px/100% Arial; padding:4px; border:1px solid #000000;" align="left">'.$row['tytul'].'</td><td style="width:20%; font: 12px/100% Arial; padding:4px; border:1px solid #000000;" align="right">'.date("d.m.Y H:i:s",$row['data_dodania']).'</td></tr>' ); //echo('<tr><td style="width:100%; font: 10px/100% Arial; padding:4px; border:1px solid #000000;" align="left">'.date("d.m.Y H:i:s",$row['data_dodania']).'</td></tr>' ); echo('<tr><td colspan="2" style="padding:4px; border:1px solid #000000; font: bold 12px/130% Arial; text-align:justify;">'.$row['tresc'].'</td></tr> '); echo('<tr><td style="padding:4px; border:1px solid #000000;" align="left">Dodał: <b>'.$row['autor'].'</b></td><td style="width:20%; font: 12px/100% Arial; padding:4px; border:1px solid #000000;" align="right">Źródło: '.$row['zrodlo'].'</td></tr>'); echo('</table><hr />'); } ?>

Gdy w adresie podaje np. index.php?site=aktualnosci_read&news_id=2
Nic mi się nie wyświetla ( tak jakby skryptu nie było ).

Jeśli zamist kombinacji
"{echo (\"$_GET[\"newsid\"]\")}?"
wpisze id newsa wszystko działa jak powinno, co więc jest źle ??



$query="SELECT * FROM aktualnosci WHERE id='$_GET['newsid']'";?
:)

Najpierw taki error:

Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\wamp\www\f3n3k_port@l\test.php on line 20

P.s. ZAZNACZAM ŻE LINIA 20 TO TEN KOD CO MI NAPISAŁEŚ ( NIE POSYŁAM KODU ŁACZENIA Z BAZĄ DANCYH I NAGŁÓWKA DZIAŁU BO TO DZIAŁA )

Wiec poprawiłem apostrofy w ['newsid'] na [\'newsid\']

i jest ten sam error

aktualna wersja skryptu:
<?php //$query='SELECT * FROM aktualnosci WHERE id="{echo (\"$_GET[\"newsid\"]\")}?"'; $query="SELECT * FROM aktualnosci WHERE id='$_GET[\'news_id\']'"; $result = mysql_query ($query); while ($row = mysql_fetch_array($result)) { echo('<table style="width:100%; border:1px solid #000000;">'); echo('<tr><td style="width:80%; font: bold italic 15px/100% Arial; padding:4px; border:1px solid #000000;" align="left">'.$row['tytul'].'</td><td style="width:20%; font: 12px/100% Arial; padding:4px; border:1px solid #000000;" align="right">'.date("d.m.Y H:i:s",$row['data_dodania']).'</td></tr>' ); //echo('<tr><td style="width:100%; font: 10px/100% Arial; padding:4px; border:1px solid #000000;" align="left">'.date("d.m.Y H:i:s",$row['data_dodania']).'</td></tr>' ); echo('<tr><td colspan="2" style="padding:4px; border:1px solid #000000; font: bold 12px/130% Arial; text-align:justify;">'.$row['tresc'].'</td></tr> '); echo('<tr><td style="padding:4px; border:1px solid #000000;" align="left">Dodał: <b>'.$row['autor'].'</b></td><td style="width:20%; font: 12px/100% Arial; padding:4px; border:1px solid #000000;" align="right">Źródło: '.$row['zrodlo'].'</td></tr>'); echo('</table><hr />'); } ?>
Użytkownik Sith edytował ten post 11 listopad 2006, 15:29
Jeśli w bazie danych `id' jest typu liczbowego to
$query='SELECT * FROM aktualnosci WHERE id='.$_GET['news_id'];
Jeśli innego, np varchar
$query='SELECT * FROM aktualnosci WHERE id="'.$_GET['news_id'].'"';
I jeszcze jedno - wstawianie do zapytania bezpośrednio tego co jest w $_GET to zabóstwo dla bazy danych. Bez problemu można tam wstawić co się chce - np jak zrobisz ?news_id=1' or 1=1' to wywali nie tylko ten 1 news ale wszystkie rekordy z tej tabeli. Jak ktoś się na tym zna to równie dobrze może wpuścić kod typu drop table ... albo truncate table ...
Musisz zrobić filtrowanie danych pochodzących od użytkownika.



THANKS
THANKS
TANKS :P

TERAZ DZIAŁA

OSTANIE PYTANIE I POTEM
<<< TAMAT DO ZAMKNIĘCIA >>>

- O CO CHODZI Z TYM FILTROWANIEM ?
Użytkownik Sith edytował ten post 11 listopad 2006, 15:56
http://pl.wikipedia....i/SQL_Injection

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.