Wyszukiwarka - jeżeli tak to można nazwać - jak zrobić?


(TheMegaCherry) #1

Witajcie,

 

Może na początku opiszę jak ta "wyszukiwarka" miała by działać.

 

Na mojej stronie znajduje się pole tekstowe gdzie możesz wpisać kod składający się z liter i cyfr.

Jeżeli wpiszesz np.: A0164 i wciśniesz enter to przeniesie Cię na podstronę a0164.html, a jak wpiszesz np.: 6C9364 to przeniesie Cię na podstronę 6c9364.html (oczywiście te podstrony wcześniej stworzę).

Chodzi o to że dany kod będzie przypisany do danej podstrony, a jeżeli ktoś wpisze kod który nie posiada podstrony to przenosi do wcześniej przygotowanej podstrony błędu.

 

Jak to uczynić?

Za najlepszą pomoc czeka pewna nagroda :wink:

 


(krypton) #2

Najprościej użyć polecenia PHP file_exists

 

http://www.w3schools.com/php/func_filesystem_file_exists.asp


(TheMegaCherry) #3

 

A jak dokładnie miałby wyglądać kod?

Nie ukrywam, że znam CSS jak i HTMLa, ale z PHP mam niestety problem :frowning:


(bachus) #4

No już bez przesady… Tu nie chodzi o programowanie w PHP, tylko o podstawy if/else…

http://php.net/manual/en/function.file-exists.php


(TheMegaCherry) #5

Użyłem sposobu file_exists, lecz chyba to nie jest to czego szukam…

…chodzi mi o to, że mam przygotowane np.: 10 podstron i każda podstrona ma inną nazwę (nazwę konkretnego kodu) i jeżeli ktoś wpisze na głównej stronie w pole tekstowe np.: kod 12345 i wciśnie enter to przeniesie go do podstrony 12345.html (jeżeli oczywiście istnieje), a jeżeli wpisze kod 54321 a takiej podstrony nie przygotowywałem i jej po prostu nie ma więc, przenosi go do strony blad.html, gdzie wyświetli mu się pewne informacje, że kodu nie ma w systemie.

 

W jeden skrypt PHP mam wpisać 10 razy to samo? czyli:
 

$nazwa_pliku1 = '/podstrona/12345.html';

if (file_exists($nazwa_pliku)) {

	echo "Plik $nazwa_pliku istnieje";

} else {

	echo "Plik $nazwa_pliku nie istnieje";

}



$nazwa_pliku2 = '/podstrona/6789.html';

if (file_exists($nazwa_pliku)) {

	echo "Plik $nazwa_pliku istnieje";

} else {

	echo "Plik $nazwa_pliku nie istnieje";

}



$nazwa_pliku3 = '/podstrona/834678.html';

if (file_exists($nazwa_pliku)) {

	echo "Plik $nazwa_pliku istnieje";

} else {

	echo "Plik $nazwa_pliku nie istnieje";

}



i tak dalej, aż do 10 podstron...

Jakoś mi to nie działa…

Naprawdę nie mam pojęcia jak to zrobić ;(


(krypton) #6
<?php

if(isset($_POST['numer'])){

$strona = $_POST[numer].'.html';

if(file_exists($strona)){

header('Location: '.$strona);

} else {

header('Location: error.html');

}

}

?>

tak na szybko to, nie wiem czy nie popełniłem literówki


(TheMegaCherry) #7

Niestety Twój powyższy skrypt wypluwa tylko pustą stronę :frowning:

Chyba, że ja coś źle wypełniłem:

<?php

	if(isset($_POST['12345'])){

		$strona = $_POST[numer].'podstrona/1.html';

		if(file_exists($strona)){

			header('Location: '.$strona);

	} else {

		header('Location: podstrona/blad.html');

	}

}

?>

 


(krypton) #8

Na stronie powinien być formularz z polem o nazwie “numer” formularz ustawiony na metodę POST a akcja na stronę z kodem PHP, przy czym kod PHP powinien być na początku pliku.

 

 

Sprawdź załączony plik

search.php


(TheMegaCherry) #9

Na stronie ma tak:

<form method="post" action="sprawdz.php" target="_blank"><input type="text" name="numer" placeholder="Sprawdź kod"/><input type="submit" value="Sprawdzam"/></form>

W pliku sprawdz.php mam tak:

<?php

	if(isset($_POST['numer'])){

		$strona = $_POST[12345].'podstrona/12345.html';

		if(file_exists($strona)){

			header('Location: '.$strona);

	} else {

		header('Location: podstrona/blad.html');

	}

}

?>

I gdy wpiszę na stronie głównej kod 12345 to przenosi mnie na stronę 12345.html, lecz jak wpisze inny kod (który nie istnieje) to także przenosi mnie na stronę 12345.html , dlaczego tak się dzieje? 


(krypton) #10

$strona = $_POST[12345].‘podstrona/12345.html’;

 

na

 

$strona = ‘/podstrona/’.$_POST[’‘numer].’.html’;

 


(TheMegaCherry) #11

Okej wszystko jak na razie działa, wielkie dzięki :wink:

Na PW wysyłam Ci obiecany mały upominek :slight_smile: