Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Skrypt przestał działać
Forum PHP.pl > Forum > Przedszkole
majestiq
  1. <?php
  2.  
  3. if(isset($_COOKIE[sent]))
  4. $komunikat = 'Nie możesz tak szybko po sobie wysyłać wiadomosci.'; //jesli jest ustawione ciacho to taka wiadomosć
  5.  
  6. if ((isset($_POST[pozdrowienia])) AND (!isset($_COOKIE[sent]))) {
  7.  
  8. // pozdrowienie mozna wyslac jezeli ilosc znakow bedzie miedzy 5 - 40
  9. if ( (strlen(trim($_POST[pozd])) > 4) AND (strlen(trim($_POST[pozd])) < 41) ) {
  10.  
  11. // ucina slashe, biale znaki oraz zamienia znaki specjalne m.in. zabezpiecza przed wyswietleniem kodu html wykonywalnego w polu pozdrowien
  12. $_POST[pozd] = stripslashes(htmlspecialchars(trim($_POST[pozd])));
  13.  
  14. // odczyt pliku do tablicy
  15. $tekst = file("pozdrowienia.txt"); // odczytuje dane z pliku, nadac chmod 777
  16. $ile = 15; // ile linijek ma zapisywac do pliku (zero liczy sie tez jako linijka)
  17.  
  18. // cenzura
  19.  
  20. function Cenzura($tekst){
  21. //$txt=file_get_contents('zmiennap.txt');
  22. $Bluzgi=array(
  23. "/bluzg(a|i|asz)?/i",
  24. "/dup(a|y|o|sko)?/i",
  25. "/cip(a|y|o|sko)?/i",
  26. "/dziw(a|y|ka|sko|encja)?/i",
  27. "/peda(ły|le|lska|lsko|lstwo)?/i",
  28. "/kurw(a|y|iszony|isko|ia)?/i",
  29. "/[z]?jeb(ana|any|y)?/i",
  30. "/jeba(ć|ny|na|ncy|lem)?/i",
  31. "/[c]?huj(a|i|e|u)?/i");
  32. return preg_replace( $Bluzgi, ' cenzura, $tekst );
  33.  
  34. }
  35.  
  36. //echo Cenzura($tekst);
  37.  
  38.  
  39. // zapisanie nowej linijki i starej zawartości
  40. $plik = fopen("pozdrowienia.txt", "w");
  41. flock($plik, 2);
  42. fwrite($plik, Cenzura($_POST[pozd])." r\n");
  43. for($i=0; $i < $ile; $i++) fwrite($plik, $tekst[$i]);
  44. flock($plik, 3);
  45. fclose($plik);
  46. setcookie ("sent", "sent", time()+60); //ustawia ciasto mowiace o tym, ze już wyslal pozdrowienia. 1=1 sekunda
  47. }
  48. else {
  49. $komunikat = 'Pozdrowienie musi mieć 5 - 40 znaków';
  50. } }
  51.  
  52. $tekst = file("pozdrowienia.txt"); // odczytuje dane z pliku, nadac chmod 777
  53. // zmienna $tekst[] to pozdrowienie, $gwiazdka to przerywnik miedzy pozdrowieniami
  54. $gwiazdka = '<span style="margi: 0 20px;">*</span>';
  55. $pozdrowienia = $gwiazdka . $tekst[0] . $gwiazdka . $tekst[1] . $gwiazdka . $tekst[2] . $gwiazdka .  $tekst[3] . $gwiazdka . $tekst[4] . $gwiazdka . $tekst[5] . $gwiazdka . $tekst[6] . $gwiazdka . $tekst[7] . $gwiazdka;
  56. ?>
  57. <html><head></head><body>
  58. <form action="<?php $_SERVER['PHP_SELF'] ?>" method="post">
  59. <fieldset><legend>Pozdrowienia</legend>
  60. <label for="pole1">Pozdrowieni: </label>
  61. <input type="text" name="pozd" size="40" value="" id="pole1">
  62. <input type="submit" value="Pozdrów" name="pozdrowienia">
  63. </fieldset>
  64. </form>
  65.  
  66.  
  67. <?php
  68. // wyswietla pozdrowienia oraz wyglad pola pozdrowien w css
  69. echo '<div style="backgroun: black; color: white; font-siz: 16px; paddin: 15px; margi: 15px;"><marquee>'.$pozdrowienia.'</marquee></div>';
  70. echo '<p style="color: red; font-siz: 15px;">'.$komunikat.'</p>;
  71. ?>
  72.  
  73. </body><html>


Funkcja cenzura wczesniej dzialala, po zmianie na php5 żadne z podanych slow nie jest zamieniane.
O co chodzi ?
help_mee
skrypt ma błędy tj. brak znaków otwarcia/zamknięca instrukcji { i } oraz [b]'
Popatrz:
  1. <?php
  2. if(isset($_COOKIE[sent]))
  3. $komunikat = 'Nie możesz tak szybko po sobie wysyłać wiadomosci.'; //jesli jest ustawione ciacho to taka wiadomosć[b]
  4. ?>

[b]
  1. <?php
  2. [/b]return preg_replace( $Bluzgi,  cenzura, $tekst );
  3. ?>

Korzystaj z edytorów php tj. ConTEXT itp... wtedy łatwiej będzie Ci pisać...

Nie wiem czy wszystko wyłapałem:
  1. <?php
  2.  
  3. if(isset($_COOKIE[sent])) {
  4. $komunikat = 'Nie możesz tak szybko po sobie wysyłać wiadomosci.'; //jesli jest ustawione ciacho to taka wiadomosć
  5. }
  6. if ((isset($_POST[pozdrowienia])) AND (!isset($_COOKIE[sent]))) {
  7.  
  8. // pozdrowienie mozna wyslac jezeli ilosc znakow bedzie miedzy 5 - 40
  9. if ( (strlen(trim($_POST[pozd])) > 4) AND (strlen(trim($_POST[pozd])) < 41) ) {
  10.  
  11. // ucina slashe, biale znaki oraz zamienia znaki specjalne m.in. zabezpiecza przed wyswietleniem kodu html wykonywalnego w polu pozdrowien
  12. $_POST[pozd] = stripslashes(htmlspecialchars(trim($_POST[pozd])));
  13.  
  14. // odczyt pliku do tablicy
  15. $tekst = file("pozdrowienia.txt"); // odczytuje dane z pliku, nadac chmod 777
  16. $ile = 15; // ile linijek ma zapisywac do pliku (zero liczy sie tez jako linijka)
  17.  
  18. // cenzura
  19.  
  20. function Cenzura($tekst){
  21. //$txt=file_get_contents('zmiennap.txt');
  22. $Bluzgi=array(
  23. "/bluzg(a|i|asz)?/i",
  24. "/dup(a|y|o|sko)?/i",
  25. "/cip(a|y|o|sko)?/i",
  26. "/dziw(a|y|ka|sko|encja)?/i",
  27. "/peda(ły|le|lska|lsko|lstwo)?/i",
  28. "/kurw(a|y|iszony|isko|ia)?/i",
  29. "/[z]?jeb(ana|any|y)?/i",
  30. "/jeba(ć|ny|na|ncy|lem)?/i",
  31. "/[c]?huj(a|i|e|u)?/i");
  32. return preg_replace( $Bluzgi, cenzura, $tekst );
  33.  
  34. }
  35.  
  36. //echo Cenzura($tekst);
  37.  
  38.  
  39. // zapisanie nowej linijki i starej zawartości
  40. $plik = fopen("pozdrowienia.txt", "w");
  41. flock($plik, 2);
  42. fwrite($plik, Cenzura($_POST[pozd])." r\n");
  43. for($i=0; $i < $ile; $i++) fwrite($plik, $tekst[$i]);
  44. flock($plik, 3);
  45. fclose($plik);
  46. setcookie ("sent", "sent", time()+60); //ustawia ciasto mowiace o tym, ze już wyslal pozdrowienia. 1=1 sekunda
  47. } else {
  48. $komunikat = 'Pozdrowienie musi mieć 5 - 40 znaków';
  49. }
  50. }
  51.  
  52. $tekst = file("pozdrowienia.txt"); // odczytuje dane z pliku, nadac chmod 777
  53. // zmienna $tekst[] to pozdrowienie, $gwiazdka to przerywnik miedzy pozdrowieniami
  54. $gwiazdka = '<span style="marg: 0 20px;">*</span>';
  55. $pozdrowienia = $gwiazdka . $tekst[0] . $gwiazdka . $tekst[1] . $gwiazdka . $tekst[2] . $gwiazdka .  $tekst[3] . $gwiazdka . $tekst[4] . $gwiazdka . $tekst[5] . $gwiazdka . $tekst[6] . $gwiazdka . $tekst[7] . $gwiazdka;
  56. ?>
  57. <html><head></head><body>
  58. <form action="<?php $_SERVER['PHP_SELF'] ?>" method="post">
  59. <fieldset><legend>Pozdrowienia</legend>
  60. <label for="pole1">Pozdrowien: </label>
  61. <input type="text" name="pozd" size="40" value="" id="pole1">
  62. <input type="submit" value="Pozdrów" name="pozdrowienia">
  63. </fieldset>
  64. </form>
  65.  
  66.  
  67. <?php
  68. // wyswietla pozdrowienia oraz wyglad pola pozdrowien w css
  69. echo '<div style="backgrou: black; color: white; font-si: 16px; paddi: 15px; marg: 15px;"><marquee>'.$pozdrowienia.'</marquee></div>';
  70. echo '<p style="color: red; font-si: 15px;">'.$komunikat.</p>;
  71. ?>
  72.  
  73. </body><html>
majestiq
Hmm... Dodałem to [/b] ale nic nie pomoglo, a tak w ogole to co to ma niby być ? Po co to przed 'return' questionmark.gif
Może napisz gdzie brakuje { i }. Jak mówię wcześniej było ok a teraz 'cenzor' nie działa :/
help_mee
a wyskakuje jakiś error czy po prostu nie działa?
taktu
przede wszystkim to proponuje:

  1. <?php
  2. $_COOKIE['sent'] ...
  3. ?>


zamiast

  1. <?php
  2. $_COOKIE[sent] ...
  3. ?>


podobnie zmienna $_POST

i dodatkowo:

  1. <?php
  2. return preg_replace( $Bluzgi, cenzura, $tekst ); ...
  3. ?>


'cenzura' lub $cenzura, w orginalnym kodzie miałeś ' cenzura - bez zamknięcia
help_mee
Nie wiem jak go przerabiałeś na php5 ale błędów a błędów...
  1. <?php
  2.  
  3. if(isset($_COOKIE['sent'])) {
  4. $komunikat = 'Nie możesz tak szybko po sobie wysyłać wiadomosci.'; //jesli jest ustawione ciacho to taka wiadomosć
  5. }
  6. if ((isset($_POST['pozdrowienia'])) AND (!isset($_COOKIE['sent']))) {
  7.  
  8. // pozdrowienie mozna wyslac jezeli ilosc znakow bedzie miedzy 5 - 40
  9. if ( (strlen(trim($_POST['pozd'])) > 4) AND (strlen(trim($_POST['pozd'])) < 41) ) {
  10.  
  11. // ucina slashe, biale znaki oraz zamienia znaki specjalne m.in. zabezpiecza przed wyswietleniem kodu html wykonywalnego w polu pozdrowien
  12. $_POST['pozd'] = stripslashes(htmlspecialchars(trim($_POST['pozd'])));
  13.  
  14. // odczyt pliku do tablicy
  15. $tekst = file("pozdrowienia.txt"); // odczytuje dane z pliku, nadac chmod 777
  16. $ile = 15; // ile linijek ma zapisywac do pliku (zero liczy sie tez jako linijka)
  17.  
  18. // cenzura
  19.  
  20. function Cenzura($tekst){
  21. //$txt=file_get_contents('zmiennap.txt');
  22. $Bluzgi=array(
  23. "/bluzg(a|i|asz)?/i",
  24. "/dup(a|y|o|sko)?/i",
  25. "/cip(a|y|o|sko)?/i",
  26. "/dziw(a|y|ka|sko|encja)?/i",
  27. "/peda(ły|le|lska|lsko|lstwo)?/i",
  28. "/kurw(a|y|iszony|isko|ia)?/i",
  29. "/[z]?jeb(ana|any|y)?/i",
  30. "/jeba(ć|ny|na|ncy|lem)?/i",
  31. "/[c]?huj(a|i|e|u)?/i");
  32. return preg_replace( $Bluzgi, Cenzura, $tekst );
  33.  
  34. }
  35.  
  36. //echo Cenzura($tekst);
  37.  
  38.  
  39. // zapisanie nowej linijki i starej zawartości
  40. $plik = fopen("pozdrowienia.txt", "w");
  41. flock($plik, 2);
  42. fwrite($plik, Cenzura($_POST['pozd'])." r\n");
  43. for($i=0; $i < $ile; $i++) fwrite($plik, $tekst[$i]);
  44. flock($plik, 3);
  45. fclose($plik);
  46. setcookie ("sent", "sent", time()+60); //ustawia ciasto mowiace o tym, ze już wyslal pozdrowienia. 1=1 sekunda
  47. } else {
  48. $komunikat = 'Pozdrowienie musi mieć 5 - 40 znaków';
  49. }
  50. }
  51.  
  52. $tekst = file("pozdrowienia.txt"); // odczytuje dane z pliku, nadac chmod 777
  53. // zmienna $tekst[] to pozdrowienie, $gwiazdka to przerywnik miedzy pozdrowieniami
  54. $gwiazdka = '<span style="mar: 0 20px;">*</span>';
  55. $pozdrowienia = $gwiazdka . $tekst[0] . $gwiazdka . $tekst[1] . $gwiazdka . $tekst[2] . $gwiazdka .  $tekst[3] . $gwiazdka . $tekst[4] . $gwiazdka . $tekst[5] . $gwiazdka . $tekst[6] . $gwiazdka . $tekst[7] . $gwiazdka;
  56. ?>
  57. <html><head></head><body>
  58. <form action="<?php $_SERVER['PHP_SELF'] ?>" method="post">
  59. <fieldset><legend>Pozdrowienia</legend>
  60. <label for="pole1">Pozdrowi: </label>
  61. <input type="text" name="pozd" size="40" value="" id="pole1">
  62. <input type="submit" value="Pozdrów" name="pozdrowienia">
  63. </fieldset>
  64. </form>
  65.  
  66.  
  67. <?php
  68. // wyswietla pozdrowienia oraz wyglad pola pozdrowien w css
  69. echo '<div style="backgro: black; color: black; font-: 16px; pad: 15px; mar: 15px;"><marquee>'.$pozdrowienia.'</marquee></div>';
  70. echo '<p style="color: red; font-: 15px;">'.$komunikat.'</p>';
  71. ?>
  72.  
  73. </body><html>

Poprawiłem mnóstwo błędów podstawowych... i działa...
PS. DEMO: http://www.mnh-serv.yoyo.pl/1/pozdr.php

patrz jak coś piszesz... zamykaj apostrofy i cudzysłowy...
Szunaj85
No nie zupełnie help_mee. Pomijając to, że skrypt ma błędy, zabezpieczenie w postaci cookie nie działa. Pozdrowienia mogę wysyłać w nieskończoność. smile.gif Poza tym jakieś "r" się pojawia na końcu każdego pozdrowienia. Jeszcze tak sobie myślę, że powinien mieć dodatkowo zabezpieczenia przed znakiem "@" oraz ciągiem znaków np: ".pl". żeby pozdrowienia nie zamieniły się w reklamę
help_mee
ale w temacie nie chodzi mu o cookies tylko że nie działała funkcja cenzura a teraz działa ;P

PS> Skrypt sprawdzony i działa jak należy snitch.gif

smile.gif
majestiq
Nie no cookie działa(ło).
W każdym wielkie dzięki za pomoc jest ok biggrin.gif

P.S Jak dodaje do wyrażeń cośtakiego:

"/pl/i",
"/eu/i",
"/com/i",
"/www/i",

to jest ok, ale jak zapisze to w ten sposób:

"/[pl]./i",
"/[eu]./i",
"/[com]./i",
"/[www]./i",

(bez kropki też) a przeciez taki zapis jest chyba w porządku ?

to skrypt zaczyna dosłownie wariować
help_mee
odwołuję:
http://forum.php.pl/index.php?showtopic=100489
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.