Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: select w zależności od hasła
Forum PHP.pl > Forum > PHP
Pcbecaw
Cześć, jak zrobić, żeby select "Where kolumna=HASŁO" było automatycznie zmieniane w zależności od tego w jaki link kliknę? Dajmy na to, że klikam w link o nazwie "jeden", to automatycznei select zmienia się z HASŁO na "jeden".
Hpsi
jeśli znasz podstawy php'a to nie powinno być do Ciebie problem.
  1. $query= 'select * from kolumna where haslo="'.$_GET['haslo'].'"';

i w linku zrobić index.php?haslo=klucz
Pcbecaw
index.php?haslo=haslo ?
Dzieki za pomoc smile.gif
drPayton
Hpsi+
Jak już komuś coś tłumaczysz, to rób to tak, żeby nie uczyć złych nawyków. Może by tak jakies filtrowanie, co? ;>
wookieb
Cytat(drPayton @ 13.06.2011, 10:44:24 ) *
Hpsi+
Jak już komuś coś tłumaczysz, to rób to tak, żeby nie uczyć złych nawyków. Może by tak jakies filtrowanie, co? ;>

Samo zadanie tak banalengo pytania na forum jest złym nawykiem.
Hpsi
@drPayton, w sumie fakt 100% racji , przepraszam za to więc drogi kolego wyżej przefiltruj dane np tak:
  1. $query= 'select * from kolumna where haslo="'.htmlspecialchars(strip_tags(addslashes(trim($_POST['haslo'])))).'"';


@wookieb - zgodzę się, ale co nie zminia faktu iż mój bład w nauczaniu złych nawyków w programowaniu smile.gif
tehaha
@Hpsi+ świadomie zrobiłeś to filtrowanie czy nawrzucałeś wszystko co się dało, żeby wyglądało profesjonalnie?
Hpsi
@tehaha - wrzucone, tj skopiowane z jednej rzeczy ktora pisze teraz, po prostu ja przewaznie nie przejmuje sie już filtrowaniem w pisaniu zapytań, gdyż w sterowniku do bazy danych (nakladka na pdo) całe filtrowanie mam autmatycznie.
Pcbecaw
To jak powinno być zrobione to filtrowanie?
+ teraz jak w linku wpisze np. index.php?=KLUCZ, to zmienna "hasło" zamieni się w KLUCZ (wziętą z kolumny "haslo")? Dobrze to rozumiem? i będzie to wtedy zwykły selec where haslo=KLUCZ ?
Hpsi
Cytat(Pcbecaw @ 13.06.2011, 10:01:15 ) *
To jak powinno być zrobione to filtrowanie?
+ teraz jak w linku wpisze np. index.php?=KLUCZ, to zmienna "hasło" zamieni się w KLUCZ (wziętą z kolumny "haslo")? Dobrze to rozumiem? i będzie to wtedy zwykły selec where haslo=KLUCZ ?

Kolego jeśli tego nawet nie rozumiesz zapraszam do przestudiowania: http://pl.php.net/manual/en/reserved.variables.get.php
Tfu i sorry wyżej zrobiłem błąd nie $_POST, tylko $_GET
tehaha
aha czyli pchasz co się da z nadzieją, że będzie dobrze, ale czasem warto się zastanowić nad logicznym sensem:
1. najpierw dajesz strip_tags() a potem htmlspecialchars() - kompletnie bez sensu
2. do zabezpieczenia używa się mysql_real_escape_string() a nie addslashes() http://shiflett.org/blog/2006/jan/addslash...l-escape-string
Hpsi
@tehaha Dzięki za uwagę, mój bład :] , dzięki również za linka przestudiuje to smile.gif
Pcbecaw
Męcze się i dalej nic...
Tak działa (zwyczajny keywords):
  1. <?php
  2. /*
  3.   Place code to connect to your DB here.
  4.   */
  5.  
  6. $dbhost = "localhost";
  7. $dbuser = "root";
  8. $dbpass = "";
  9. $dbname = "smf";
  10.  
  11. $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ("Error connecting to database");
  12. mysql_select_db($dbname);
  13. $sql = "SET CHARSET utf8";
  14. $zapytanie= 'select * from hipnoza where keywords="jeden"';
  15. $idzapytania = mysql_query($zapytanie);
  16. echo '<table>';
  17. while ($wiersz = mysql_fetch_row($idzapytania))
  18. {
  19. echo '<tr><td>'. $wiersz[0] .'</td><td>'. $wiersz[1] .'</td><td>'. $wiersz[2] .'</td><td>'. $wiersz[3] .'</td><td>'. $wiersz[4] .'</td><td>'. $wiersz[5] .'</td></tr>';
  20. }
  21. echo '<table>';
  22. ?>

A tak nie działa (tak jak powinno być):
  1. <?php
  2. /*
  3.   Place code to connect to your DB here.
  4.   */
  5.  
  6. $dbhost = "localhost";
  7. $dbuser = "root";
  8. $dbpass = "";
  9. $dbname = "smf";
  10.  
  11. $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ("Error connecting to database");
  12. mysql_select_db($dbname);
  13. $sql = "SET CHARSET utf8";
  14. $zapytanie= 'select * from hipnoza where keywords="'.htmlspecialchars(addslashes(trim($_GET['haslo']))).'"';
  15. $idzapytania = mysql_query($zapytanie);
  16. echo '<table>';
  17. while ($wiersz = mysql_fetch_row($idzapytania))
  18. {
  19. echo '<tr><td>'. $wiersz[0] .'</td><td>'. $wiersz[1] .'</td><td>'. $wiersz[2] .'</td><td>'. $wiersz[3] .'</td><td>'. $wiersz[4] .'</td><td>'. $wiersz[5] .'</td></tr>';
  20. }
  21. echo '<table>';
  22. ?>

Gdzie tkwi błąd?
drPayton
A masz zmienną "haslo" określoną w linku? Po stronie html'a? Czy też zakładasz, że skrypt będzie w myślach czytał? A może my mamy to robić, skoro nie pokazałeś jak wygląda link? ;>
Pcbecaw
Zmienną w linku? link nie powinien wyglądać: index.php?=jeden ?
(w keywords dodałem rekord z "jeden" w tej kolumnie). Jak ten link powinien wygląać? Nie do końca to rozumiem...
drPayton
A spójrz do pierwszego postu @Hpsi+, który sam zaplusowałeś ;>

Skąd wg Ciebie, php miałby wiedzieć, że zmienna o wartości "jeden" nazywa się "haslo"?
Pcbecaw
Bez komentarza dla mnie... wstydnis.gif
Dzięki za pomoc
wookieb
My również dziękujemy za nieuszanowanie nas przez twoje braki edukacyjne. Zamykam.
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.