[PHP] Jeden skrypt pobierający i wyświetlający dane z bazy
[PHP] Jeden skrypt pobierający i wyświetlający dane z bazy
Czy jest możliwe wykonanie JEDNEGO skryptu który pobiera dane z bazy danych (np.MySQL) i wyświetla je. Niewiem czy umiejętnie wyjaśniłem o co mi chodzi wieć dołanczam ten schemat.
klikam na link artykół1 --> skrypt pobiera zawartość artykółu1 --> i wyświetla go
klikam na link artykół2 --> TEN SAM skrypt pobiera zawartość artykółu2 --> i wyświetla go
Jeżeli da się coś takiego napisać to prosiłbym o pomoc jak?
klikam na link artykół1 --> skrypt pobiera zawartość artykółu1 --> i wyświetla go
klikam na link artykół2 --> TEN SAM skrypt pobiera zawartość artykółu2 --> i wyświetla go
Jeżeli da się coś takiego napisać to prosiłbym o pomoc jak?
-
Przemysław Szymik
- Nowy

- Posty: 61
- Rejestracja: sob gru 28, 2002 1:06 pm
Re: [PHP] Jeden skrypt pobierający i wyświetlający dane z bazy
Oczywiscie ze mozna. Może to Ci coś podpowie:
plik1.htm
index.php
[php]<?php
$id=$_GET['id'];
$q=mysql_query("SELECT * FROM artykuly WHERE id ='$id'");
...
?>[/php]
Proponuje zwrócić uwagę na zmienną 'id'.
(to tak w skrocie wszystko, ale mysle ze zakumasz
plik1.htm
Kod: Zaznacz cały
<a href="index.php?id=1">ArtykUl nr 1</a>
<a href="index.php?id=2">ArtykUl nr 2</a>
[php]<?php
$id=$_GET['id'];
$q=mysql_query("SELECT * FROM artykuly WHERE id ='$id'");
...
?>[/php]
Proponuje zwrócić uwagę na zmienną 'id'.
(to tak w skrocie wszystko, ale mysle ze zakumasz
Re: [PHP] Jeden skrypt pobierający i wyświetlający dane z bazy
Po co tworzyć niepotrzebną zmienną?
[php]
<?php
$q=mysql_query('SELECT * FROM artykuly WHERE id ="'.$_GET['id'].'"');
...
?>
[/php]
[php]
<?php
$q=mysql_query('SELECT * FROM artykuly WHERE id ="'.$_GET['id'].'"');
...
?>
[/php]
-
Przemysław Szymik
- Nowy

- Posty: 61
- Rejestracja: sob gru 28, 2002 1:06 pm
Re: [PHP] Jeden skrypt pobierający i wyświetlający dane z bazy
Np. po to zeby sprawdzac co jest w srodku... a nie na slepo pchac do zapytania...
Re: [PHP] Jeden skrypt pobierający i wyświetlający dane z bazy
[php]<?php
$id=$_GET['id'];
$q=mysql_query("SELECT * FROM artykuly WHERE id ='$id'");
...
?>[/php]
Gdzie w tym kodzie sprawdzasz czy zmienna zawiera jakieś niebiezpieczne znaki?
przecież zmienna id przyjmuje wartość zmiennej id przesyłanej metodą get. Na jedno wychodzi. Jeśli byś chciał, zeby było bezpieczniej to możesz zrobić tak:
[php]<?php
$q=mysql_query('SELECT * FROM artykuly WHERE id ="'.mysql_escape_string($_GET['id']).'"');
...
?>[/php]
ewentualnie na początek dać jakiegoś "erega" sprawdzającego czy zawartość zmiennej to same litery, czy też cyfry.
$id=$_GET['id'];
$q=mysql_query("SELECT * FROM artykuly WHERE id ='$id'");
...
?>[/php]
Gdzie w tym kodzie sprawdzasz czy zmienna zawiera jakieś niebiezpieczne znaki?
przecież zmienna id przyjmuje wartość zmiennej id przesyłanej metodą get. Na jedno wychodzi. Jeśli byś chciał, zeby było bezpieczniej to możesz zrobić tak:
[php]<?php
$q=mysql_query('SELECT * FROM artykuly WHERE id ="'.mysql_escape_string($_GET['id']).'"');
...
?>[/php]
ewentualnie na początek dać jakiegoś "erega" sprawdzającego czy zawartość zmiennej to same litery, czy też cyfry.
-
Przemysław Szymik
- Nowy

- Posty: 61
- Rejestracja: sob gru 28, 2002 1:06 pm
Re: [PHP] Jeden skrypt pobierający i wyświetlający dane z bazy
Oczywiscie ze w tym kodzie nigdzie nie ma sprawdzania zawartosci zmiennej $id, i tez nie pisalem ze jest.
Chodzi o to zeby nie uczyc ludzi wstawiania bezposrednio z tablicy $_GET, $_POST (i reszty) danych, poniewaz beda takie wpadki jak ostatnio w phpBB.
To ze powstaly w PHP tablice typu $_GET nie zwalnia programisty z odpowiedzialnosci za sprawdzanie co przychodzi z nich.
Chodzi o to zeby nie uczyc ludzi wstawiania bezposrednio z tablicy $_GET, $_POST (i reszty) danych, poniewaz beda takie wpadki jak ostatnio w phpBB.
To ze powstaly w PHP tablice typu $_GET nie zwalnia programisty z odpowiedzialnosci za sprawdzanie co przychodzi z nich.
Re: [PHP] Jeden skrypt pobierający i wyświetlający dane z bazy
Dzięki jak coś to jeszcze spytam
Re: [PHP] Jeden skrypt pobierający i wyświetlający dane z bazy
Hmm, bzdury.dcooper pisze:Oczywiscie ze w tym kodzie nigdzie nie ma sprawdzania zawartosci zmiennej $id, i tez nie pisalem ze jest.
Chodzi o to zeby nie uczyc ludzi wstawiania bezposrednio z tablicy $_GET, $_POST (i reszty) danych, poniewaz beda takie wpadki jak ostatnio w phpBB.
To ze powstaly w PHP tablice typu $_GET nie zwalnia programisty z odpowiedzialnosci za sprawdzanie co przychodzi z nich.
Po co inicjować nową zmienną, kiedy można operować na tej z tablicy POST lub GET. Przecież to Ci tylko zajmuje dodatkowe KB pamięci :/.
Ewentualnym rozwiązaniem jest rekurencja, czyli:
[php]<?php
$id = &$_POST['nazwa']
?>[/php]
-
Przemysław Szymik
- Nowy

- Posty: 61
- Rejestracja: sob gru 28, 2002 1:06 pm
Re: [PHP] Jeden skrypt pobierający i wyświetlający dane z bazy
Hmm, bzdura?
Chyba nie zrozumiales sensu mojego posta. Wiec powtorze: NIE WSTAWIAC BEZPOSREDNIO Z TABLIC TYPU $_POST, $_GET do ZAPYTANIA MYSQL. To ze uzylem tam dodatkowej zmiennej nie ma wiekszego znaczenia, za to bezposrednie uzycie danych z tablicy wejsciowej jest juz conajmniej grozne.
Tak, napewno z 5KB pamięci i 3s wykonywania skryptu.zajmuje dodatkowe KB pamięci
Chyba nie zrozumiales sensu mojego posta. Wiec powtorze: NIE WSTAWIAC BEZPOSREDNIO Z TABLIC TYPU $_POST, $_GET do ZAPYTANIA MYSQL. To ze uzylem tam dodatkowej zmiennej nie ma wiekszego znaczenia, za to bezposrednie uzycie danych z tablicy wejsciowej jest juz conajmniej grozne.
Re: [PHP] Jeden skrypt pobierający i wyświetlający dane z bazy
Możesz przedstawić na poparcie swojej tezy jakies argumenty dcooper? Np. może jaskiś artykuł lub post na forum? O ile się nie myle to ostatni błąd phpbb nie polegał na tym, że wstawili tablicę bezpośrednio ale na tym, że użyli niepotrzebnego znaku łączenia .= ?
Re: [PHP] Jeden skrypt pobierający i wyświetlający dane z bazy
Jak ma wyglądać struktura bazy danych i jak napisać skrypt który dodaje artykóly do bazy
-
Krzysztof Aszkiełowicz
- Zaczyna działać

- Posty: 458
- Rejestracja: pn maja 26, 2003 9:29 pm
- Lokalizacja: Warszawa
- Kontakt:
Re: [PHP] Jeden skrypt pobierający i wyświetlający dane z bazy
Panowie dcooper'owi chodziło o sprawdzanie zawartosci zmiennej pochodzącejz formularza takimi funkcjami jak htmlspecialchars lub strip_tags, lub podobne. Przed dodaniem tego do SQL'a lepiej sprawdzic, co userek wpisał. Nie mamy tu rozmawiać o czasie wykonywania skryptu czy zużycia pamięci.
KosmQ my mamy za Ciebie ten skrypt napisać?
Wiesz, zacznij czytać artykuły na http://php.webinside.pl
KosmQ my mamy za Ciebie ten skrypt napisać?
Wiesz, zacznij czytać artykuły na http://php.webinside.pl
Re: [PHP] Jeden skrypt pobierający i wyświetlający dane z bazy
Nie ucze się pisać takie skrypyKosmQ my mamy za Ciebie ten skrypt napisać?
-
Przemysław Szymik
- Nowy

- Posty: 61
- Rejestracja: sob gru 28, 2002 1:06 pm
Re: [PHP] Jeden skrypt pobierający i wyświetlający dane z bazy
Krzysztof-> dzieki, bo jak przeczytalem wczesniejszeg posta, to rece rozlozylem. A tak wogole to Wesolego Jajka to all;)