Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wyszukiwanie danych z pliku txt
Peragorn
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 22.03.2011

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


Witam napisałem taki oto kawałek kodu
Kod
<div id="formu">
<form method="post" name="pytanie">
<input type="hidden" name="pytanie" value="szukaj" />
<table border="0">
<tr><td><input type="submit" value="SZUKAJ" />
</td><td><input size="20" type="text" name="pytanie" value="" /></td></tr>

</table>
</form>
<?php
if (isset($pytanie) && ($pytanie != "")) { $p=fopen("text.txt","r");
$zawartosc=fread($p,filesize("text.txt"));
fclose($p);
echo str_replace($pytanie,"<STRONG>$pytanie</STRONG>",$zawartosc); }
?>

Moje pytanie polega na tym gdzie w kodzie PHP jest błąd oraz jak zrobić aby po wyszukaniu danego słowa wyświetliło całą zawartość wiersza ( w moim przypadku to jest imię nazwisko i nr telefonu)
Go to the top of the page
+Quote Post
sadistic_son
post
Post #2





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Po pierwsze form musi mieć parametr action, którego u Ciebie zabrakło. Zrób tak:
  1. <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" >


Po drugie, po co Ci w ogóle to:
  1. <input type="hidden" name="pytanie" value="szukaj" />
? Wywal to.

Po trzecie nadaj name inputowi submit. np name="submit".

Dalej, warunek musi wyglądać tak:
  1. if (isset($_POST['submit']) && isset($_POST['pytanie']) && $_POST['pytanie']!= "") {


I po kolejne... nie powinieneś używać zmiennej $pytanie nie przypisując do niej wcześniej wartości z $_POST['pytanie']. Jeśli na serwerze będzie wyłączona funkcja register_globals, a powinna być wyłączona ze względów bezpieczeństwa to serwer nie rozpozna tej zmiennej. Tak więc na dzień dobry w warunku daj to:
  1. $pytanie=$_POST['pytanie'];


Ten post edytował sadistic_son 25.03.2011, 00:18:38
Go to the top of the page
+Quote Post
Peragorn
post
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 22.03.2011

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


Teraz to wygląda tak ale nadal nie działa
Kod
<div id="formu">
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" >
<table border="0">
<tr><td><input type="submit" name="submit" value="SZUKAJ" />
</td><td><input size="20" type="text" name="pytanie" value="" /></td></tr>
</table>
</form>


<?php
$pytanie=$_POST['pytanie'];
if (isset($_POST['submit']) && isset($_POST['pytanie']) && $_POST['pytanie']!= "") {
$zawartosc=fread($p,filesize("text.txt"));
fclose($p);
echo str_replace($pytanie,"<STRONG>$pytanie</STRONG>",$zawartosc); }
?>
Go to the top of the page
+Quote Post
kadlub
post
Post #4





Grupa: Zarejestrowani
Postów: 548
Pomógł: 105
Dołączył: 4.06.2010

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



nie otworzyłeś pliku daj przed zmienną $zawartosc
  1. $p=fopen("text.txt","r");
Go to the top of the page
+Quote Post
Peragorn
post
Post #5





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 22.03.2011

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


Ok dzięki teoretycznie dział niestety jak wpisze jakieś zapytanie to wyszuka je w pliku ,wypisze na stronie jako pogrubione ale oprócz szukanego słowa wypisuje cała zawartość pliku text.txt mimo że w tym pliku po hasłach Imię Nazwisko Telefon występuje ENTER .
Gdy zaś wpisze słowo , które nie występuje również wyświetlana jest cała zawartość pliku text.txt
Chciałbym żeby wyświetlało tylko 1 wiersz w którym występuje podane w SZUKAJ słowo
Go to the top of the page
+Quote Post
kadlub
post
Post #6





Grupa: Zarejestrowani
Postów: 548
Pomógł: 105
Dołączył: 4.06.2010

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


  1. <?php
  2. $pytanie=$_POST['pytanie'];
  3. if (isset($_POST['submit']) && isset($_POST['pytanie']) && $_POST['pytanie']!= "") {
  4. $p=fopen("text.txt","r");
  5. while(!feof($p)){
  6. $zawartosc=fgets($p);
  7. if(strstr($zawartosc,$pytanie)){
  8. echo str_replace($pytanie,"<STRONG>$pytanie</STRONG>",$zawartosc).'<br>';
  9. }
  10. }}
  11. fclose($p);
  12. ?>
  13.  
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 07:04