|
SWiSH Forum Forum użytkowników programów SWiSH |
 |
Skrypty do programu SWiSH2 i SWISHmax - księga gości - guestbook
nugatt - Sob 20 Sty, 2007 23:19 Temat postu: 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));'
deejay_robby - Sob 20 Sty, 2007 23:56
bys mogl mi wyslac wszystkie pliki? tzn swi i co potrzebne?
nugatt - Nie 21 Sty, 2007 00:39
Bejruth - 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 - 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
Bejruth - 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 - Nie 25 Mar, 2007 10: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";
?> |
Seb - Czw 26 Kwi, 2007 20: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 - Czw 26 Kwi, 2007 22: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
Seb - Czw 26 Kwi, 2007 23: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 - Czw 26 Kwi, 2007 23: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
Seb - Czw 26 Kwi, 2007 23: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 - Pią 27 Kwi, 2007 00:12
readUsoon chyba
|
|