Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyszukiwanie danych z pliku txt
Forum PHP.pl > Forum > PHP
Peragorn
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)
sadistic_son
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'];
Peragorn
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); }
?>
kadlub

nie otworzyłeś pliku daj przed zmienną $zawartosc
  1. $p=fopen("text.txt","r");
Peragorn
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
kadlub
  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.  
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.