Stworzenie dynamicznych linków z produktami

0

Czesc, chcialbym zrobic dla swojej strony dynamiczne linki z produktami. Glowna koncepcje mam lecz nie potrafie tego poukladac w calosc. Technologie jakie chcialbym zastosowac to mysql i php. Generalnie jest strona na ktorej sa produkty. Napisalem wczesniej prosta aplikacje ktora wrzuca wszystkie produkty do odpowiedniej tabeli w bazie danych. Kazdemu produktowi jest przypisany id. Moja koncepcja jest taka, aby stworzyc dynamiczne linki dla wszystkich tych produktow ktore wyswietlam, np.

*Krzeslo 50cm id:1
*Krzeslo 100cm id:2
*Krzeslo 150cm id:3

Oczywiscie tych id nie widac, jest to tylko obrazowo pokazane, ze w mojej bazie te produkty maja id. A teraz o co mi chodzi, chodzi mi o to aby kazdy produkt mial przypisany a href ze swoim id, czyli mniej wiecej cos takiego:

 echo '<a href="/somepage.php?id='.$field['id'].'">'.$field['event_name'].'</a>';
 

A w linku podanym wyzej maja wyswietlac sie informacje z rekordu gdzie id jest aktualnie ogladany. Czyli z tad.

.$field['id']. 

, dzieki temu rozpozna ktore jest id aktualnie jest wyswietlone i pobierze wszystkie rekordy wartosci $_GET['id']

.
Nie wiem czy ta koncepcja jest w ogole dobra. Ukladam to sobie w glowie, lecz nie wiem jak polaczyc te puzle.
0

Dobra, tylko filtruj te dane pobierane z $_GET od użytkownika. Mam też nadzieję, że do pracy z bazą nie używasz mysql tylko mysqli/PDO.

0

Chodzi o

FILTER_SANITIZE_STRING
tak?

0

Później możesz sprawdzić też czy otrzymana wartość jest liczbą, np. http://www.w3schools.com/php/filter_validate_int.asp

0

Mysle, ze najpierw powinienem to zlozyc a pozniej zajac sie bezpieczenstwem. Z tego punktu widzenia co opisalem, jest to mozliwe bo mi caly czas cos nie wychodzi.

0

Ogólna idea tego jak to opisałeś jest jak najbardziej OK :) Co do bezpieczeństwa to myślę, że w tym wypadku w zupełności wystarczy w zapytaniu pobierającym dane rzucić wartość $_GET[‘id’] na int, czyli coś w stylu

$id = $_GET['id'];
$zapytanie = "SELECT … FROM … WHERE id = ".(int)$id;

Wtedy jeśli w $_GET['id'] będzie co innego niż id (np. jakiś string – fragment zapytania SQL – czyli atak Code Injection) to do zapytania trafi i tak 0

[Adam]

0
Krwawy Młot napisał(a):

Mysle, ze najpierw powinienem to zlozyc a pozniej zajac sie bezpieczenstwem.

I akurat mając parę tysięcy linijek kodu łatwiej będzie Ci przefiltrować i poprawić luki, niż teraz pisząc?

Ja kiedyś zastosowałem prosty skrypt, wszelkie skrypty były dostępne w osobnym pliku, który importowałem do innych stron.
Skrypt typu:

 function clear($string) {
    $string = mysqli_real_escape_string($string);
    $string = htmlspecialchars($string);

    return $string;
}

Potem możesz pousuwać, pododawać kolejne elementy, jeśli tylko będziesz chcieć. A pisząc kod ograniczasz się tylko do

clear($_GET['id'])

Dobrym pomysłem jest, jak wyżej wspomniał @kchteam, czyli (int)string. Choć w tym przypadku możesz zastosować podobną sztuczkę co wyżej...

0

Dziekuje za odpowiedz. Jako tako sobie poradzilem. Z doplywem wiedzy beda to ulepszal, a zastosowalem sposob pierwszy:)

1 użytkowników online, w tym zalogowanych: 0, gości: 1