Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak zrobić przekierowanie linku dla bezpieczeństwa użytkowników?
Forum PHP.pl > Forum > PHP
Saki
  1. <?php
  2. /*
  3. Witam chce zrobić takie przekierowanie linku, już pisze o co mi dokładnie chodzi,
  4. a więc jak ktoś poda link na moim forum i jak ktoś będzie później chciał na niego kliknąć a link odnosi się do innej strony, to chce aby przed przejściem na tą stronę była wyświetlana strona informatyczna, np. Uważaj bądź ostrożny! Próbujesz przejść na strone http://...... , kliknij na przejdź aby przejśc ablbo cofnij się.
  5.  
  6. Wie może jak coś takiego zrobić?
  7. Mam coś takiego już ale nie wiem jak dale robić, bardzo proszę o pomoc:
  8. */
  9.  
  10. echo '
  11. <form action="'.$_SERVER['REQUEST_URI'].'" method="POST">
  12. <table>
  13. <tr><td>Twoja Wiadomość:</td> <td><textarea name="message"></textarea></td></tr>
  14. <tr><td> </td> <td><input type="submit" class="submit" value="Wyślij"/></td></tr>
  15. </table>
  16.  
  17. </form>
  18.  
  19. ';
  20.  
  21.  
  22.  
  23. $serwer = $_SERVER['HTTP_REFERER'];
  24. #domena z którego bedzie szukane czy ma pokazywać informacje czy nie, jak są linki z mojej domeny to nie pokazuje informacji o przejściu na inną strone tylko od razu przenosi.
  25. $domena = "tmp.itunix.eu";
  26. #strpos() szuka w linku czy jest moja domena w linku
  27. if(strpos($serwer, $domena)!== FALSE) {
  28.  
  29. header("Location: ".$_POST['message']."");
  30.  
  31. }
  32.  
  33. ?>


O tu jest przykład: http://www.deviantart.com/users/outgoing?h...//forum.php.pl/
Jak coś takiego zrobić?
CuteOne
Po co ci formularz??

  1.  
  2. if(!empty($_GET['url'])) {
  3.  
  4. if($_GET['confirm'] == 1) {
  5.  
  6. header("Location: ".$_GET['url']."");
  7. }
  8. else {
  9.  
  10. echo 'Jezeli chcesz przejsc dalej kliknij <a href="http://www.example.com/?url='.$_GET['url'].'&confirm=1"> Przejdz </a>';
  11. }
  12. }


oczywiście to tylko przykład..
Saki
Cytat(CuteOne @ 26.01.2011, 21:16:58 ) *
Po co ci formularz??

  1.  
  2. if(!empty($_GET['url'])) {
  3.  
  4. if($_GET['confirm'] == 1) {
  5.  
  6. header("Location: ".$_GET['url']."");
  7. }
  8. else {
  9.  
  10. echo 'Jezeli chcesz przejsc dalej kliknij <a href="http://www.example.com/?url='.$_GET['url'].'&confirm=1"> Przejdz </a>';
  11. }
  12. }


oczywiście to tylko przykład..


Dziękuje działa smile.gif
A wiesz może jak zwykłe linki (http://tmp.itunix.eu/) po kliknięciu zamienić na http://itunix.eu/redirect.php?url=http://t...u&confirm=1



  1. <?php
  2.  
  3. #Zrobiłem coś takiego:
  4.  
  5. $wzorzec = array( '/[a-zA-Z]{1,2}tp[s]?:\/\/[a-zA-Z0-9\-.]+\.[a-zA-Z]{2,4}(:[0-9]*)?\/[^\n\s]*/',
  6. '/([^\/]{2})(www\.[a-zA-Z0-9\-.]+\.[a-zA-Z]{2,4})/');
  7. $zamiana = array( '<a href="http://tmp.itunix.eu/a/a/go.php?url=\0">\0</a>',
  8. '\1<a href="http://tmp.itunix.eu/a/a/go.php?url=\2">\2</a>');
  9. $com = preg_replace($wzorzec, $zamiana, $com);
  10.  
  11. /* Cały tekst przeszukuje w poszukiwaniu linku i zamienianie go na link z przejściem na strony czy uważasz że to dobry pomysł?
  12. Czy może jest jakiś inny lepszy?
  13. PS. Może znasz jakiś inny wzorzec? Bo aby ten wzorzec zadziałał trzeba mieć link w formie <a href="http://itunix.eu/" target="_blank">http://itunix.eu/</a> a czy jest jakiś wzorzec co rozpoznaje już linki w formie www.itunix.eu lub chociaż <a href="http://ituniz.eu" target="_blank">http://ituniz.eu</a> bez (slasha na koncu)*/
  14. echo $com;
  15.  
  16.  
  17. ?>
Crozin
1. Przy pomocy preg_replace_callback wyszukujesz wszystkie linki w tekście i poddajesz je obróbce.
2. Rozbijasz sobie URL na jego konkretne części (parse_url) i sprawdzasz czy link prowadzi do hostu domena.com (domena Twoje serwisu).
3. Jeśli tak to nic nie robisz, jeśli nie to zamieniasz linka na domena.com/przejdzDoStrony.php?link=TUTAJ_LINK
4. Na koniec zamieniasz wszystko na ładny klikalny element <A>

Tak, więc wyświetlając treść, którą podał użytkownik będziesz miał coś takiego:
  1. <p>Bardzo fajna galeria <a href="http://domena.com/uzytkownik/crozin">crozina</a>, a tutaj jego <a href="http://domena.com/przejdzDoStrony.php?link=http%3A%2F%2Fcrozin.com%2Fgaleria">strona domowa</a>


Na stronie przejdzDoStrony.php wystarczy już tylko:
  1. Uwaga! Czy na pewno chcesz opuścić moją stronę i przejść do <a href="<?php echo $_GET['link'] ?>"><?php echo $_GET['link'] ?></a>?
(oczywiście dane z $_GET trzeba jest odpowiednio przefiltrować).
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.