|
SWiSH Forum
Forum użytkowników programów SWiSH
|
księga gości - guestbook |
Autor |
Wiadomość |
nugatt
Pomógł: 75 razy Wiek: 42 Dołączył: 16 Maj 2005 Posty: 1389 Skąd: Warszawa
|
Wysłany: Sob 20 Sty, 2007 23:19 księga gości - guestbook
|
|
|
Na stronie www.swishmaxxx.prv.pl znajduje się najnowsza wersja mojej księgi gości (php + flash). Pliku nie załączam gdyż zdarza się, że 'update'uje' pliki (tak jak dziś). Kod PHP:
Kod: | <?php
if ($_POST['Submit'] == "Yes") {
$userIP = $_SERVER['REMOTE_ADDR'];
$userBROWSER = $_SERVER['HTTP_USER_AGENT'];
$Name = ereg_replace("%", "%25", $_POST['Name']);
$Comments = ereg_replace("%", "%25", $_POST['Comments']);
$Name = ereg_replace("&", "%26", $Name);
$Comments = ereg_replace("&", "%26", $Comments);
$Name = ereg_replace("<", "", $Name);
$Comments = ereg_replace("<", "", $Comments);
$Name = ereg_replace(">", "", $Name);
$Comments = ereg_replace(">", "", $Comments);
$Name = mb_strtolower($Name, mb_detect_encoding($Name));
$Comments = mb_strtolower($Comments, mb_detect_encoding($Comments));
$Name = stripslashes($Name);
$Comments = stripslashes($Comments);
$filename = "guestbook.txt";
$fp = fopen( $filename,"r");
$OldData = fread($fp, 80000);
fclose( $fp );
$OldData = ereg_replace("&GuestBook=", "", $OldData);
$Today = (date ("d.m.Y/H:i:s"));
$Input = "<b>$Name:</b> $Comments<br><font size=\"9\">info: $Today</font><!-- IP: $userIP; browser: $userBROWSER --><br><br>
";
$New = "&GuestBook=$Input$OldData";
$fp = fopen( $filename,"w");
fwrite($fp, $New, 800000);
fclose( $fp );
echo '&load=loaded&';
}
$filename = "guestbook.txt";
$fp = fopen( $filename,"r");
$data = fread($fp, 800000);
fclose( $fp );
print "&load=loaded$data";
?> |
Jeśli chodzi o $_POST['Submit'], $_SERVER['REMOTE_ADDR'], $_POST['Comments']... to przez specyfikę mojego serwera. Jak by nie działało to spróbujcie $Submit, $REMOTE_ADR, $Comments... Chodzi tu o ile pamiętam o niejaki 'safe mode'. Chyba. Zresztą nie nie znam się na PHP.
Pamiętajcie o CHMOD pliku php i txt.
Do każdego wpisu dołączany jest komentarz <!-- IP: $userIP; browser: $userBROWSER -->, który to nie wyświetla się w księdze gości. Dzięki niemu poznajemy IP i przeglądarkę osoby wpisującej się.
Zamiast 'fwrite($fp, $New, 800000);' może być 'fwrite($fp, $New);', a zamiast 'fread($fp, 800000);' może być 'fread($fp, filesize($filename));' |
_________________ tomekf /// swishmaxxx |
|
|
|
|
deejay_robby
Bywalec
Dołączył: 20 Sty 2007 Posty: 10
|
Wysłany: Sob 20 Sty, 2007 23:56
|
|
|
bys mogl mi wyslac wszystkie pliki? tzn swi i co potrzebne? |
|
|
|
|
nugatt
Pomógł: 75 razy Wiek: 42 Dołączył: 16 Maj 2005 Posty: 1389 Skąd: Warszawa
|
|
|
|
|
Bejruth
Początkujący
Dołączył: 24 Mar 2007 Posty: 2
|
Wysłany: Sob 24 Mar, 2007 02:17
|
|
|
Kolejne słodkie pytanie... "guestbook" jest umieszczony jako jeden ze sprite'ów na listwie czasowej. Przy pierwszym zaliczeniu danego label'a zawierającego sprite "guestbook" komunikacja z php i plikiem tekstowym jest poprawna - tekst się pojawia. Jeśli jednak przeskoczę do innego label'a a później ponownie wracam do księgi, coś się sypie i plik tekstowy nie jest wczytywany (odczyt uruchamia dopiero dokonanie wpisu do księgi)?
Będę wdzięczny za wskazówkę gdzie mam szukać błędu, lub co może być powodem...
pzdr |
|
|
|
|
nugatt
Pomógł: 75 razy Wiek: 42 Dołączył: 16 Maj 2005 Posty: 1389 Skąd: Warszawa
|
Wysłany: Sob 24 Mar, 2007 07:34
|
|
|
zamień Kod: | _root.loadVariablesNum("guestbook.php?"+Math.round(Math.random()*100),0,'GET') |
na Kod: | this.loadVariablesNum("guestbook.php?"+Math.round(Math.random()*100),0,'GET') |
to chyba to |
_________________ tomekf /// swishmaxxx |
|
|
|
|
Bejruth
Początkujący
Dołączył: 24 Mar 2007 Posty: 2
|
Wysłany: Sob 24 Mar, 2007 13:08
|
|
|
imho to na pewno to. przynajmniej w moim przypadku działa jak ta lala. dzięki serdeczne i pzdr :c)
ale... :c)) jeszcze jedno. mam problemy ze znakami. plik "startowy" html puszczałem już z różnymi ustawieniami charset (utf, iso, etc), oczywiście zaczynając od windows-1250. sam swf jest ok - testowany w standalone przyjmuje wszystkie znaki z klawiatury. niestety po odpaleniu przez html, w pole inputcomment nie można wpisać polskich znaków. wtf?
wiem, że to jakiś duperel. a przynajmniej tak mi się wydaje.
dzięki raz jeszcze i pzdr |
|
|
|
|
nugatt
Pomógł: 75 razy Wiek: 42 Dołączył: 16 Maj 2005 Posty: 1389 Skąd: Warszawa
|
Wysłany: Nie 25 Mar, 2007 09:53
|
|
|
nie wiem co jest (było) nie tak z tą księgą. na na swishmaxxx.prv.pl działa dobrze więc ja wyjąłem i teraz można ją zciągnąć
-------------------------------------------------------
udoskonaliłem tym razem plik php:
#1 ulepszony kod
#2 komentarze (po angielsku). wypada więc przeprosić za moją angielszczyznę.
#3 usuwa wielokrotne entery (w sumie wszystkie, bo tak lubię). jak usunąć wielokrotne, a zostawić jeden? poszukaj na www.php.net
#4 usuwa wielokropki. jak ktoś ich nie lubi: "wiesz co......... mogłoby nam być........ a teraz zostało............"
#5 usuwa wielokrotne spacje
#6 opcja z hasłem. wstawiamy na początku wiadomości swój tekst (hasło) i wtedy plik php pozwoli nam użyć tagów html w naszej wiadomości, np. żeby zmienić kolor czcionki (trzeba umieć to robić, bo księga może nawet przestać się wyświetlać). hasło zostanie usunięte z wiadomości. zmieńcie hasło. "nugatt" nie jest hasłem na moich stronach
#3, #4, #5 - zmieniamy poprzez usunięcie odpowiedniej linii albo "kastomizację".
możemy usunąć linijkę ze zmianą małych dużych znaków na małe - $str = mb_strtolower($str, mb_detect_encoding($str)); zmienić format daty - $Today; sposób zapisu nowej wiadomości - $Input.
do każdej wiadomości dodawana jest w postaci komentarza informacja o IP i przeglądarce osoby wpisującej. komentarz ten nie wyświetla się w waszej księdze gości, bo jest wewnątrz <!-- -->
plik php edytujecie na własną odpowiedzialność. jak coś po edycji nie działa to wasza wina.
ps. księgę zcigągamy z www.swishmaxxx.prv.pl
Kod: | <?php
//guestbook by nugatt - www.swishmaxxx.prv.pl
function clean($str) {
$str = str_replace("\r", " ", $str); // multiple 'enter' removal. you can remove this line if you want.
$str = ereg_replace (" +", " ", $str); //multiple 'space' removal. you can remove this line if you want.
$str = ereg_replace("&", "%26", $str);
$str = ereg_replace("%", "%25", $str);
$str = ereg_replace ("[.]+", ".", $str); //multiple 'dot' removal. you can remove this line if you want.
$str = stripslashes($str);
$str = mb_strtolower($str, mb_detect_encoding($str));//string to lowercase. you can remove this line if you want.
//if you enter 'nugatt' at the beggining of comments, 'nugatt' will be removed but html tags you entered won't be stripped. it's something like a admin password. do customise it.
$pass = "nugatt";
if (substr($str, 0, strlen($pass)) == $pass) {
$str = ereg_replace ($pass, "", $str);
} else {
$str = strip_tags($str);
}
return $str;
}
if ($_POST['Submit'] == "Yes") {
$userIP = $_SERVER['REMOTE_ADDR'];
$userBROWSER = $_SERVER['HTTP_USER_AGENT'];
$Name = $_POST['Name'];
$Comments = $_POST['Comments'];
$Name = clean($Name);
$Comments = clean($Comments);
$filename = "guestbook.txt";
$fp = fopen( $filename,"r");
$OldData = fread($fp, filesize($filename));
fclose( $fp );
$OldData = ereg_replace("&GuestBook=", "", $OldData);
$Today = (date ("d.m.Y/H:i:s")); //you can customise it if you want.
$Input = "<b>$Name:</b> $Comments<br><font size=\"9\">info: $Today</font><!-- IP: $userIP; browser: $userBROWSER --><br><br>
"; //you can customise it if you want. data in '<!-- -->' will not be displayed in your guestbook.
$New = "&GuestBook=$Input$OldData";
$fp = fopen( $filename,"w");
fwrite($fp, $New);
fclose( $fp );
echo '&load=loaded&';
}
$filename = "guestbook.txt";
$fp = fopen( $filename,"r");
$data = fread($fp, filesize($filename));
fclose( $fp );
echo "&load=loaded$data";
?> |
|
_________________ tomekf /// swishmaxxx |
|
|
|
|
Seb
Ekspert
Pomógł: 28 razy Wiek: 42 Dołączył: 09 Paź 2005 Posty: 591 Skąd: takie pytanie?
|
Wysłany: Czw 26 Kwi, 2007 19:51
|
|
|
wow
gdybym był kobietą lub choć tak jak Dejv... a Ty byś był w potrzebie Mistrzu
... niestety nie w tym wcieleniu się tak mogę oddźwięczyć
dzięki $nugatt - świetna rzecz |
|
|
|
|
nugatt
Pomógł: 75 razy Wiek: 42 Dołączył: 16 Maj 2005 Posty: 1389 Skąd: Warszawa
|
Wysłany: Czw 26 Kwi, 2007 21:35
|
|
|
zamiast Kod: | $str = str_replace("\r", " ", $str); | bądź teź $str = ereg_replace("\r", " ", $str);
użyj Kod: | $str = ereg_replace("(\r)+", "\r", $str); | i wtedy będzie zamieniane wiele enterów w jeden |
_________________ tomekf /// swishmaxxx |
|
|
|
|
Seb
Ekspert
Pomógł: 28 razy Wiek: 42 Dołączył: 09 Paź 2005 Posty: 591 Skąd: takie pytanie?
|
Wysłany: Czw 26 Kwi, 2007 22:18
|
|
|
super, thx )
btw. tak właśnie myślałem jak zrobić zeby wielokropek był tylko 3 kropkami i na więcej nie pozwalał, ale jeszcze tego nie testowałem bo ponoć grzebanie w php to już na własną odpowiedzialność tak czy inaczej wsadzę swoje trzy kropki m/dzy "..." cudzysłów
kaj mi się nie uda, to proszę kebaba na wynos, bo już od miesiąca kroisz kurczaka na szpiclu a nikt się nie upomina
pzdroovki |
|
|
|
|
nugatt
Pomógł: 75 razy Wiek: 42 Dołączył: 16 Maj 2005 Posty: 1389 Skąd: Warszawa
|
Wysłany: Czw 26 Kwi, 2007 22:43
|
|
|
Seb napisał/a: | trzy kropki m/dzy "..." cudzysłów | pewnie nawet z jednej zrobi ci trzy. ale sprawdź i napisz o tym. a może Kod: | $str = ereg_replace ("[...]+", "...", $str); |
ps. nie ja tylko wujek sadam |
_________________ tomekf /// swishmaxxx |
|
|
|
|
Seb
Ekspert
Pomógł: 28 razy Wiek: 42 Dołączył: 09 Paź 2005 Posty: 591 Skąd: takie pytanie?
|
Wysłany: Czw 26 Kwi, 2007 22:51
|
|
|
ten ostatni pewnie to rozwiąże nie wujek ale kod, dziś już kimono jedynie na mnie czeka, thx za sugestie i kebaba nadal bym wtrąchnął cUsoon |
|
|
|
|
nugatt
Pomógł: 75 razy Wiek: 42 Dołączył: 16 Maj 2005 Posty: 1389 Skąd: Warszawa
|
Wysłany: Czw 26 Kwi, 2007 23:12
|
|
|
readUsoon chyba |
_________________ tomekf /// swishmaxxx |
|
|
|
|
|
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Możesz ściągać załączniki na tym forum
|
Dodaj temat do Ulubionych Wersja do druku
|
|
|
|
|
|
Nowe zasady dotyczące cookies. Wykorzystujemy pliki cookies, aby nasz serwis lepiej spełniał Państwa oczekiwania. Można zablokować zapisywanie cookies, zmieniając ustawienia przeglądarki.
| Strona wygenerowana w 0.16 sekundy. Zapytań do SQL: 13 |
|
|