Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Warunek na poprawny LINK
Deusx
post 4.07.2010, 19:13:13
Post #1





Grupa: Zarejestrowani
Postów: 126
Pomógł: 2
Dołączył: 27.08.2006

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


Witam, mam w swoim serwisie możliwość zmiany wyglądu zewnętrznym linkiem.

Jednak nie umiem do tego stworzyć zabezpieczenia, aby w przypadku wpisania złego "linku" wyskoczył komunikat.

Link powinien kończyć się znakiem " / "

czyli:

http://domena.pl/skin/

Może być również tak
http://domena.pl/cos/ktos/skin/ (lub podobne)


Proszę o pomoc.

Jeżeli jednak nie da się zrobić na to odpowiedniego warunku, to przynajmniej zablokowanie TYLKO znaków "," ">" "<" (i podobnych, tak żeby link przeszedł).

Ten post edytował Deusx 4.07.2010, 19:26:59
Go to the top of the page
+Quote Post
H4eX
post 4.07.2010, 19:17:46
Post #2





Grupa: Zarejestrowani
Postów: 150
Pomógł: 15
Dołączył: 1.07.2010

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


MOD REWRITE, zmienia się kod w .htaccess
Go to the top of the page
+Quote Post
Deusx
post 4.07.2010, 19:20:47
Post #3





Grupa: Zarejestrowani
Postów: 126
Pomógł: 2
Dołączył: 27.08.2006

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


Zupełnie nie o to mi chodzi, to się wpisuje do formularza.
Go to the top of the page
+Quote Post
H4eX
post 4.07.2010, 19:24:49
Post #4





Grupa: Zarejestrowani
Postów: 150
Pomógł: 15
Dołączył: 1.07.2010

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


To napisz jaśniej?
Go to the top of the page
+Quote Post
Deusx
post 4.07.2010, 19:26:08
Post #5





Grupa: Zarejestrowani
Postów: 126
Pomógł: 2
Dołączył: 27.08.2006

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


Napisałem bardzo dokładnie, trzeba umieć czytać ze zrozumieniem.
Go to the top of the page
+Quote Post
Ulysess
post 4.07.2010, 19:28:31
Post #6





Grupa: Zarejestrowani
Postów: 695
Pomógł: 65
Dołączył: 27.07.2009
Skąd: Y

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


ten typ tylko nabija posty pisząc pierwsze co mu do głowy przyjdzie..
Może sprawdzaj czy ost znak w linku to slash a jeśli nie to dopisuj.
Go to the top of the page
+Quote Post
kapuch
post 4.07.2010, 19:29:03
Post #7





Grupa: Zarejestrowani
Postów: 389
Pomógł: 69
Dołączył: 26.04.2010
Skąd: Łódź

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


preg_match
http://www.php.net/manual/en/function.preg-match.php
3 przyklad

PS. Co masz na mysli piszac "w przypadku zlego linku"?
Tzn ze jak ktos wpisze np "ajdfdxkgnflkg" to ma to wykryc, czy chodzi o to aby link byl poprawyny, czyli prowadzil do istniejeacej strony?
Jesli to 1, to wystarczy sam preg_match, jesli zas drugie to dodaj do tego jeszcze file_get_contents.
Np.
  1. if(preg_match('@^(?:http://)?([^/]+)@i', $_POST['adres']))
  2. {
  3. if(@file_get_contents($_POST['adres']))
  4. {
  5. echo 'strona ok';
  6. }
  7. else
  8. {
  9. echo 'strona nie istnieje';
  10. }
  11. }
  12. else
  13. {
  14. echo 'zly format adresu';
  15. }


edit: zapomnialem dodac @ przed file_get_contents winksmiley.jpg

Ten post edytował kapuch 4.07.2010, 19:39:24


--------------------
Nie chce "Pomógł", aktualna ilość (69) w pełni mnie satysfakcjonuje :)
Go to the top of the page
+Quote Post
Deusx
post 4.07.2010, 19:33:35
Post #8





Grupa: Zarejestrowani
Postów: 126
Pomógł: 2
Dołączył: 27.08.2006

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


No dobrze, tylko jeszcze nie umiem tworzyć tam "warunków"

  1. preg_match('@^(?:http://)?([^/]+)@i',"http://www.php.net/index.html", $matches);


To mi zmieni na
php.net (przynajmniej manual tak mówi winksmiley.jpg )

A mi ma nie zmieniać, tylko sprawdzić,
Jeżeli link nie będzie się kończył znakiem "/" lub zawierał znaki specjalne (poza ":" oraz "/" [do http]) to komunikat i die();.

Ten post edytował Deusx 4.07.2010, 19:34:44
Go to the top of the page
+Quote Post
kapuch
post 4.07.2010, 19:41:45
Post #9





Grupa: Zarejestrowani
Postów: 389
Pomógł: 69
Dołączył: 26.04.2010
Skąd: Łódź

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


Cytat(Deusx @ 4.07.2010, 20:33:35 ) *
No dobrze, tylko jeszcze nie umiem tworzyć tam "warunków"

  1. preg_match('@^(?:http://)?([^/]+)@i',"http://www.php.net/index.html", $matches);


To mi zmieni na
php.net (przynajmniej manual tak mówi winksmiley.jpg )

A mi ma nie zmieniać, tylko sprawdzić,
Jeżeli link nie będzie się kończył znakiem "/" lub zawierał znaki specjalne (poza ":" oraz "/" [do http]) to komunikat i die();.

to ci zwroci tablice z poprawnym ciagiem, ale nie musisz jej uzywac.
wystarczy dac

  1. if(preg_match('@^(?:http://)?([^/]+)@i',"http://www.php.net/index.html"))
  2. {}

wtedy gdy warunek zostanie spelniony (ciag bedzie odpowiadal matchowi) to wykona sie to co w ifie

preg_match nic nie zmienia, to preg_replace zmienia winksmiley.jpg

Ten post edytował kapuch 4.07.2010, 19:42:42


--------------------
Nie chce "Pomógł", aktualna ilość (69) w pełni mnie satysfakcjonuje :)
Go to the top of the page
+Quote Post

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 Wersja Lo-Fi Aktualny czas: 21.06.2025 - 06:06