Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL] Proszę o wskazówki do prostej wyszukiwarki newsów
Guli
post
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 25.04.2007

Ostrzeżenie: (0%)
-----


Mam tabelkę o nazwie news a w nim:
id
nazwa_kat_id
data_utw
tytul
tekst

Zrobiłem sobie taką prościutką wyszukiwarkę, która wyszukuje posty id, tytul i tekst a kod wygląda tak (wszystko w jednym pliku o nazwie wyszukiwarka.php):

  1. <form action="wyszukiwarka.php" method="post">
  2. <legend>Szukaj</legend>
  3. <input type="text" name="slowo" id="slowo" value="<?php echo $slowo; ?>" size="17" />
  4. <input type="submit" name="znajdz" value="Szukaj" class="button" />
  5. </form>


  1. <?php
  2. echo '<table summary="Tabela testowa" class="tabela2">';
  3. echo '<tbody><tr><th class="first">Lp</th>';
  4. echo '<th>Tytuł</th>';
  5. echo '<th>Data</th></tr>';
  6. require('mysql.php');
  7.  
  8. if(isset($_REQUEST['slowo'])) {
  9.  
  10. $slowo = stripslashes($_REQUEST['slowo']);
  11.  
  12. $query = 'SELECT id, tytul, tekst FROM ' . $prefix . 'news WHERE tytul LIKE '%' . $slowo . '%' OR tekst LIKE '%' . $slowo . '%' ORDER BY data_utw DESC';
  13.  
  14. $result = mysql_query($query);
  15. $n = mysql_num_rows($result);
  16.  
  17. if (strlen($slowo)<3){
  18.  
  19. echo 'Szukany ciąg musi mieć przynajmniej trzy znaki';
  20. }
  21. else {
  22.  
  23. if($n > 0) {
  24.  
  25. while($wiersz = mysql_fetch_assoc($result)
  26. {
  27.  
  28. echo '<tr>';
  29. echo '<td>'.$wiersz['id'].'</td>';
  30. echo '<td>'.$wiersz['tytul'].'</td>';
  31. echo '<td>'.$wiersz['tekst'].'</td>';
  32. echo '</tr>';
  33. }
  34. echo '</tbody>';
  35. echo '</table>';
  36. }
  37.  
  38. else { 
  39. echo 'Nie ma tego słowa w bazie';
  40. } 
  41. }
  42. }
  43. ?>
  44. </form>


I mam pytania z nim związane.

1. Czy wystarczy zabezpieczenie przed atakami tylko słowa $keyword poprzez stripslashes ? Jeśli nie to co można dodać ? Czy to wystarczy mysql_real_escape_string ?
2. Czy przy wyświetlaniu wyników id, tytul i tekst trzeba dodać stripslashes i strip_tags np. stripslashes($wiersz['tytul']) ?
3. Gdzie należy dopisać echo z informacją:

- że pusta jest baza
- że tego słowa nie ma w bazie
- jeśli nie wpisałem słowa a kliknąłem w przycisk submit to ma pojawić się info, że nie podałem słowa kluczowego ?

Nie jestem pewien czy w kodzie jest dobrze i w którym to miejscu.

4. Czy najlepsze jest tak pisać po wpisaniu słowa i kliknięciu w submit formularza ?
  1. <?php
  2. if(isset($_REQUEST['slowo'])) {
  3. $keyword = stripslashes($_REQUEST['slowo']);
  4.  
  5. itd.
  6. ?>


czy tak :
  1. <?php
  2. if(array_key_exists('slowo', $_POST) ) {
  3. $slowo = stripslashes($_POST['slowo']);
  4.  
  5. itd.
  6. ?>


Co można jeszcze dodać do kodu lub zmienić ?

Za pomoc dziekuje

Ten post edytował Guli 3.10.2007, 17:30:59
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 23:58