Pokrewne
menu      Odtwarzacz CD przeskakuje przy odtwarzaniu
menu      Sqwebmail, error 500 przy wysyłaniu poczty, premature end...
menu      Błąd 302 na serwerze 1000GP przy korzystaniu z narzędzi analizujących
menu      Czy ktoś może słuzyc radą przy diagnozie awarii telewizora?
menu      ERROR 403, 404 PRZY ZAKŁADANIU FORUM phpBB2
menu      Babrdzo duży load przy pewnych operacjach na plesk 8.3
menu      Kłopot na 100gp z zabezpieczeniem folderów przy pomocy .htaccess
menu      [PHP]Przekazywanie zmiennych przy użyciu sesji
menu      Zmiana lilo na gruba przy soft raid
menu      własny sshd i czas przy nie prawidłowym haśle
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • kucharkazen.opx.pl
  • Pomóżcie przy Księdze Gosci





    Rav27 - 22-04-2007 21:30
    Pomóżcie przy Księdze Gosci
      Witam

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

    plik ksiega wygląda tak:

    <?php

    $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

    <?php

    $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 "<br>";
    echo $tresc[$k];
    echo "<br>";
    echo "<hr>";

    }

    }

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

    ?>

    tu formularz

    <form method="POST" action="ksiega.php">
    <p>Napisz swój nick lub imię <input type="text" name="mail" size="20"></p>
    <p><textarea rows="7" name="tresc" cols="50"></textarea></p>
    <p><input type="submit" value="Dodaj">
    </form>
    <p><a onFocus="blur()" href="http://redbridgefan.ovh.org/ksiega.php?load=prev"><-poprzednie</a> | <a onFocus="blur()" href="http://redbridgefan.ovh.org/ksiega.php?load=next">następne-></a></p>

    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




    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)



    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.



    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 - 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:D 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 - 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
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • konstruktor.keep.pl
  • Design by flankerds.com