Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] strona bledu i jego zle wpisany url
Forum PHP.pl > Forum > Przedszkole
bialko0019
Witam.

Myślę, żeby zrobić stronę błędu i od razu ze zgłoszeniem, które by zapisywało do pliku tekstowego adres strony, która miała być otwarta ale nie jest z powodu różnego błędu : 404, 503 itp i tak, najpierw zróbmy w .htaccess, żeby wyświetlało taką stronę:

  1. <?php
  2. ErrorDocument 404 <a href=&#092;"http://www.example.boo.pl/error/404.php\" target=\"_blank\">http://www.example.boo.pl/error/404.php</a>
  3. ?>



No dobra. Mamy stronę, która sie otwiera gdy zadanego pliku wpisanego w domenie example.boo.pl nie ma.

Teraz myślę zróbmy formularz, w którym wyświetli się adres, który nie został otwarty bo nie ma takiego pliku.... tylko jak ? heh i tu jest cały pies pogrzebany jak taki adres uzyskać ? ;p

Może ma ktoś jakiś pomysł ?

Oczywiście potem to już z górki bo albo do pliku tekstowego poleceniem fputs() albo do bazy danych i to nie jest problem, tylko myślę jak tu wyświetlać taki adres, który powinien zostać otwarty a nie jest bo nie ma pliku smile.gif
lnn
1) brak tematu postu winksmiley.jpg exclamation.gif
2) adres wlasciwy czy ten co podal blednie uzytkownik??
jesli wlasciwy to chyba musi jakos przeszukac podobna fraze posrod dostepnych adresow? w tym wypadku chyba trzebaby sprawdzac klika ciagow znakow na raz (duzo roboty) ..
bialko0019
1. Już, jakoś nie zauważyłem ;p
2. Ten co żle wpisał, ale jaki był odnośnik - po kliknieciu albo wpisaniu adresu www.example.boo.pl/kontakt.php (takiego pliku nie ma) to pojawia sie wpis ten co zle został wprowadzony czyli www.example.boo.pl/kontakt.php . Jak to można zrobic ?
Pride
Jedynie co przychodzi mi do głowy to:
  1. <?php
  2. $_SERVER['HTTP_REFERER']
  3. ?>
erix
Kod
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) strona404.php?skad=$1
DREEMus
hmm, ja mam tak i zdaje egzamin smile.gif
.htaccess
Kod
# 404
RewriteRule ^404$ 404.php [L]
ErrorDocument 404 /404


404.php
  1. <?php
  2. if ( isset ( $_SERVER['HTTP_REFERER'] ) ) {
  3.  $dbDodaj = mysql_query ( 'INSERT INTO `bledy` (`blad`, `adres`, `skad`, `data`) VALUES ("'.$_SERVER['REDIRECT_STATUS'].'", "'.$_SERVER['SCRIPT_URI'].'", "'.$_SERVER['HTTP_REFERER'].'", CURRENT_TIMESTAMP);' )
  4.    or die ( '<p>Błąd podczas dodawania błędu do bazy ...</p>' );
  5.    } else {
  6.      $dbDodaj = mysql_query ( 'INSERT INTO `bledy` (`blad`, `adres`, `skad`, `data`) VALUES ("'.$_SERVER['REDIRECT_STATUS'].'", "'.$_SERVER['SCRIPT_URI'].'", "NULL", CURRENT_TIMESTAMP);' )
  7.        or die ( '<p>Błąd podczas dodawania błędu do bazy ...</p>' );
  8.        }
  9. ?>
erix
Ale referer jest często blokowany.

Moje rozwiązanie działa od niego niezależnie. winksmiley.jpg
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.