devbazy
25.09.2009, 13:31:26
Otóż zastanawiam się w jaki sposób wrzucić ilość pobranych elementów (ID) do tablicy, a następnie porównać je z tym pobranym za pomocą metody GET. Użytkownik ma do wyboru kilka obrazków (które są odnośnikami), wszystko działa jak należy, dopóki ręcznie nie wpisze własnej wartości w adresie - wtedy nie pokazuje się nic. Chciałbym jakoś zabezpieczyć taką ewentualność, a kompletnie nie wiem jak się za to zabrać, dlatego prosiłbym o jakieś wskazówki, przykładowy kod.
erix
25.09.2009, 13:59:39
Cytat
Chciałbym jakoś zabezpieczyć taką ewentualność
Przestaw zmienną na
false, daj gdzieś jeszcze
die. (jaki opis, taka odpowiedź)
Mamy Ci odpowiedzieć bez jakiegokolwiek Twojego kodu...?
devbazy
25.09.2009, 14:18:14
Tak to mniej więcej wygląda.
{
echo '<li><a href="index.php?site=img&id='.$rekord['img'].'"><img src="images/'.$rekord['img'].'.jpg" border="0" alt="" /></a></li>'; }
if($_GET['site'] == 'img' && isset($_GET['id'])) {
}
Pole img przechowuje wartości jako int.
erix
25.09.2009, 17:51:35
Cytat
Użytkownik ma do wyboru kilka obrazków (które są odnośnikami), wszystko działa jak należy, dopóki ręcznie nie wpisze własnej wartości w adresie - wtedy nie pokazuje się nic
Na przykład? Żadnego błędu wtedy nie wysypuje?
devbazy
25.09.2009, 18:04:36
Wybrany obrazek, który jest odnośnikiem zostaje jeszcze później wyświetlany. Jeżeli któryś z nich zostanie wybrany normalnie - czyli poprzez kliknięcie w dany link, to wszystko jest w jak najlepszym porządku, a z kolei gdy ktoś wpisze w adresie przykładowo: index.php?site=img&id=3, bądź też 180000 - nie pokazuje się nic, bowiem pole img nie posiada takowej wartości. Po wpisaniu błędnej liczby, bądź też tekstu - w polu img, które znajduje się w tabela2 - zmienia się wartość na 0. Chciałbym zrobić to w taki sposób, że gdy ktoś wpisze błędną liczbę (różną od tych pobranych z tabeli "tabela") zwróci false, jednak by do tego dojść najpierw muszę wrzucić pobrane rekordy do tablicy, a następnie je porównywać z tym wybranym.
Mam nadzieję, że zrozumiesz, sam się już powoli motam.
erix
25.09.2009, 18:17:22
Zrozumiałem, że zwraca Ci pustą stronę...
if($_GET['site'] == 'img' && isset($_GET['id'])) {
}
Dodaj tu sprawdzanie, czy w bazie (poprzednia tabela) taki rekord już istnieje. Możesz również zrobić to nieco wcześniej:
{
echo '<li><a href="index.php?site=img&id='.$rekord['img'].'"><img src="images/'.$rekord['img'].'.jpg" border="0" alt="" /></a></li>'; }
Wyciągasz w końcu wszystkie rekordy, więc:
- daj zmienną ($jest) przed pętlą
- w pętli sprawdzaj, czy ID bieżącego jest zgodny z tym, co wysłałeś w URL - jeśli tak - $jest = true
- jeśli podasz zły kod w URI, zmienna $jest będzie w takim stanie, co przed pętlą - false
- dalej chyba wiesz, co robić

devbazy
25.09.2009, 18:42:34
Cytat(erix)
Zrozumiałem, że zwraca Ci pustą stronę...
Wręcz przeciwnie. Po wpisaniu błędnej liczby/tekstu w adresie linku (przykład: index.php?site=img&id=cos /189000) - wartość pola img w tabeli tabela2 zmienia się na 0. W każdym bądź razie spróbuje jeszcze pokombinować, a jeżeli nic z tego nie wyjdzie, to cóż - odezwę się ponownie.
EDIT: Dzięki za zainteresowanie erix, leci pomógł.