Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]przekazywanie parametrów $_GET - konwencje
Forum PHP.pl > Forum > Przedszkole
dżozef
Cześć wszystkim jako, że to mój pierwszy post. Stawiam pierwsze kroki w PHP i zacząłem tworzyć sobie prostą aplikację. Póki co jest jeszcze w powijakach, ale natknąłem się na problem natury egzystencjalnej smile.gif
Chodzi o przekazywanie parametrów, obecnie stosuję następującą konwencję:

index.php?action=edit&id=2
index.php?action=delete&id=5
itd.

Podglądając kod innych apek zorientowałem się, że przeważa w nich następujący sposób przekazywania parametrów:
index.php?edit=2
index.php?delete=5
itd.

Czy są jakieś konkretne zalecenia w jaki sposób parametry $_GET powinny być przekazywane? Uczę się od podstaw i wolałbym nie łapać złych nawyków. Z góry dzięki za wszelką pomoc.
ixpack
Hmm...
jak podgladasz kod innych apek?
dżozef
cat nazwapliku

dzięki za OT w pierwszej odpowiedzi!
Mackos
W gruncie rzeczy nie ma większej różnicy. Zależy jak Ci wygodniej.
Choć zasada "KEEP IT SIMPLE" jest zawsze zbawienna.
Najważniejsze jednak żebyś pamiętał o bezpieczeństwie i między innymi sprawdzał czy przy pobieraniu parametru edit=2
Może wykonać ten użytkownik, który ją wykonuje. Pamiętaj też o filtrowaniu tych zmiennych, jeśli mają to być liczby całkowite - sprawdzaj czy nimi są zanim coś puścisz do bazy wink.gif
dżozef
Kod jest jednoużytkownikowy więc póki co nie muszę się martwić o to czy dany użytkownik może/nie może czegoś wykonać. Co do filtrowania - masz na myśli stosowanie jakiegoś wyrażenia regularnego, żeby sprawdzić czy przekazywane są tylko cyfry?
Mackos
Ok, nawet jeśli jest to jedno użytkownikowe to zawsze sprawdzaj czy ten jeden użytkownik jest zalogowany i czy to on wykonuje akcje.
Bo wyobraź sobie że masz jakiś panel admina do którego masz adres posty.php?usun=1 i co jeśli google Ci zaindeksuje taki adres i ludzie będą z niego wchodzić i automatycznie usuwać Twoje posty wink.gif (oczywiście to jest mocno przekoloryzowana sytuacja ale mniej więcej określa temat).

A co do filtrowania to dobrze jeśli masz gotową jakąś funkcję która robi to z automatu np:
  1. function filter($data){
  2. $data = trim(htmlspecialchars(strip_tags($data), ENT_QUOTES));
  3.  
  4. $data = stripslashes($data);
  5.  
  6. return $data;
  7. }

Naucz się też korzystać od razu z połączenia z bazą danych przez PDO (zawsze binduj dane wejściowe).
Tutaj masz fajny poradnik od którego ja zacząłem: http://pl.wikibooks.org/wiki/PHP/Biblioteka_PDO
dżozef
Korzystam tylko z PDO i bindowania, ale i tak dzięki smile.gif A następne na mojej liście są sesje, logowanie i rejestracja.
Google nic nie zaindeksuje, bo póki co to aplikacja do zastosowań własnych bez planów na instalację gdziekolwiek na dostępnym z zewnątrz serwerze. Tak właściwie to zastanawiam się nad przeskoczeniem na SQLite bo MySQL wydaje sie nawet za wielkie jak do tego projektu.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.