We are in the process of migrating this forum. A new space will be available soon. We are sorry for the inconvenience.

Pomóżcie przy Księdze Gosci


Rav27
04-05-2007, 00:24
WOW
będziesz miał u mni piwo za ten skrypt
chciałbym żeby był podobny do tego co mam, tzn. wyświetlał tyle wpisów ile będe chciał (co łątwo będzie mi oczywiście zmienić w każdej chwili)
ew. wersja wyświetlająca wszystkie wpisy

jeśli masz stronke daj adres, zlinkuje cię jako PODZIĘKOWANIE

deallas
03-05-2007, 22:33
nic dziwnego że przestało ci wyświetlać napisy. Ten skrypt jest trochę zrąbany. Też mi zaczęły znikać napisy jak miałem w pliku txt miej wpisów niż 3. Dlatego przygotowałem nowy skrypt który będzie kompatybilny z tamtym (tzn nie będziesz musiał przenosić ręcznie wpisów). Wyśle ci na maila jak skończę. Jak coś nie będzie grało to na PW.

Rav27
03-05-2007, 11:46
Dzięki za pomoc
zmieniłem to co napisałeś
na for( $k=$j-19 ; $k>=0; $k--){
i $skok=20;

Rezultat: przestało mi wyświetlać wpisy...
Mam taką prośbe - mógłbym ci wysłać ten plik ksiega.php a ty byś wprowadził te małe zmianki, bo ja naprawdę jestem ciemny z php )-:

Poza tym niebardzo wiem co zrobić z tą radą na temat blokowania ENTER'a itd.

Z góry dzięki

deallas
28-04-2007, 14:55
A może potrzebujecie jakiegoś webmastera do strony. Przydał by mi się hajs a ostatnio dosyć go potrzebuję. Jak co to pisz na PW lub na maila.

deallas
28-04-2007, 14:50
To tak. Twój problem tkwi w tej linii
Kod:
if($k<$licznik && $k>=($licznik-$skok)){
jak widzimy mamy do zmiany 2 zmienne $k i $skok. Jeśli chcesz żeby wyświetlało ci co 20 komentarzy zmień z
Kod:
for( $k=$j-2 ; $k>=0; $k--){
na
Kod:
for( $k=$j-19 ; $k>=0; $k--){
i oczywiście zmienną $skok daj na 20.
Aha jeszcze coś zauważyłem że twój skrypt jest podatny na ataki XSS które umożliwiają np. zasłoniecie całej strony jakimś syfem. Dlatego lepiej filtrować dane przychodzące (czyli te od POST i GET) przy pomocy funckji htmlspecialchars() W takiej postaci:
Kod:
htmlspecialchars($_POST['tresc'])
i to powtórz także dla zmiennej $_POST['mail']. Co do enterów najprościej posłużyć się html dodając do textarea wrap="hard". Chociaż można to obejść wiec lepiej stosować funkcje trim() w php ktora usuwa wszystkie znaki nowych linii. Mam nadzieję że pomogłem (sorry że tak długo)

Rav27
22-04-2007, 21:30
Witam

pewien znajomy napisał mi prostą księge gości w php

plik ksiega wygląda tak:


$mail=$_POST['mail'];
$wiadomosc=$_POST['tresc'];
$data=date('Y-m-d');
$godzina=date('H:i');
$open=fopen("ilosc.txt","r");
$id=fgets($open);
$id++;
if(strlen($mail) && strlen($wiadomosc)){
$uchwyt=fopen("wpisy.txt","a");
fputs($uchwyt,$id);
fputs($uchwyt,"\n");
fputs($uchwyt,$data);
fputs($uchwyt,"\n");
fputs($uchwyt,$godzina);
fputs($uchwyt,"\n");
fputs($uchwyt,$mail);
fputs($uchwyt,"\n");
fputs($uchwyt,$wiadomosc);
fputs($uchwyt,"\n");
}

?>

no i potem html ze stroną a w niej kolejny kod



$j=0;
$plik=fopen("wpisy.txt","r");
while(!feof($plik)){
$idd[]=fgets($plik);
$dataa[]=fgets($plik);
$godzinaa[]=fgets($plik);
$email[]=fgets($plik);
$tresc[]=fgets($plik);
$j++;


}

fclose($plik);
$iloscU=fopen("ilosc.txt","w");
fputs($iloscU,$j-1);
fclose($iloscU);

$file=fopen("licznik.txt","r");
$licznik=fgets($file);
fclose($file);
$skok=3;

if(!strlen($_GET['load'])) $licznik=$j-1;

if(!strcmp($_GET['load'],"next") && $licznik>=0){

$licznik=$licznik-$skok;}

else if(!strcmp($_GET['load'],"prev") && $licznik<=$j-1 ){

$licznik=$licznik+$skok;} else if(!strcmp($_GET['load'],"prev")) $licznik=$j-1-$skok;

if($licznik>=$j-1) $licznik=$j-1-$skok;

if($licznik<0) $licznik=0;

for( $k=$j-2 ; $k>=0; $k--){

if($k<$licznik && $k>=($licznik-$skok)){
echo $idd[$k];
echo ' | ';
echo $dataa[$k];
echo ' | ';
echo $godzinaa[$k];
echo ' | ';
echo $email[$k];
echo "
";
echo $tresc[$k];
echo "
";
echo "
";

}

}


$file=fopen("licznik.txt","w");
fputs($file,$licznik);
fclose($file);


?>

tu formularz



Napisz swój nick lub imię





<-poprzednie | następne->




no i końcówka stronki html

o co mi chodzi
chciałem żeby mi wyświetlało po 20 kontaktów, a jeśli będzie więcej to można reszte ładować linkami next-prev
ale od jakiegoś czasu to nie działa
wyświetla po 3 wpisy i nawet zmiana cyferki 3 w $skok=3; nic nie pomaga a jeszcze knoci

czy może mi ktoś pomóc i tak lekko zmienić kod aby wyświetlało po prostu wszystkie wpisy??
Księga jest na plikach txt co łatwo odczytać z kodu

do tego jest plik del.php ze stronka, która kasuje wpis o określonum numerze ale z tym nie ma kłopotów

no i gdyby ktoś potrafił załatwić kłopot z klepnięciem ENTER'a który to knoci wyświetlanie wpisów

redbridgefan.ovh.org/ksiega.php - oto adres ksiegi