Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pomoc w popraiwe kodu
Forum PHP.pl > Forum > PHP
cor7ez
Witam

w zasadzie na php się nie znam (dopiero zaczynam) a muszę oddać projekt na dniach żeby zaliczyć przedmiot. Mam kod ale jakieś błędy mi wyskakują i nie mam zielonego pojęcia co jest grane :/ wydaje mi sie że jest to jakaś drobnostka dla tych którzy się znają (czego nie mogę powiedzieć o sobie). Będę wdzięczny za pomoc.

z góry dzięki i pozdrawiam



  1. <?php
  2. //pobranie pliku dodaj.html
  3. $tpl = file_get_contents("dodaj.html");
  4.  
  5. //sprawdzamy czy ktos nie probuje odswierzyc pliku
  6. if (empty($_SESSION['petycja'])) {
  7.  
  8. //sprawdzamy czy post nie jest pusty
  9. if ($_POST != NULL) { 
  10. $out["status"] = 0;
  11. $out["dane"] = $_POST;
  12. //do weryfikacji ip 
  13. $spr_ip = array();
  14. //do komunikatów
  15. $er = "";
  16. //sprawdzamy imie (pierwsza litera duza, reszta mała)
  17. if ($_POST["imie"] != ucfirst(strtolower($_POST["imie"])) or empty($_POST["imie"])) {
  18. $out["bledy"]=1;
  19. $er.= "Błędny format imienia (1 litera duża, reszta mała)<br>";
  20. }
  21. //sprawdzamy nazwisko (pierwsza litera duza, reszta mała)
  22. if ($_POST["nazwisko"] != ucfirst(strtolower($_POST["nazwisko"])) or empty($_POST["nazwisko"])) {
  23. $out["bledy"]=1;
  24. $er.= "Błędny format nazwiska (1 litera duża, reszta mała)<br>";
  25. }
  26. //sprawdzamy format email
  27. if (!preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9._-]+)+$/",$_POST["email"])) {
  28. $out["bledy"]=1;
  29. $er.= "Błędny format e-maila<br>";
  30. }
  31. //sprawdzamy ip
  32. $f = fopen("dane.txt","r");
  33. $l = split(" ",fgets($f));
  34. $spr_ip[] = trim($l[4]);
  35. if (in_array($_SERVER["REMOTE_ADDR"],$spr_ip)) {
  36. $out["bledy"]=1;
  37. $er.= "Już się dopisałeś palancie!<br>";
  38. } 
  39. fclose($f);
  40.  
  41. //w przypadku braku bledow, status=1
  42. if (empty($out["bledy"])) {
  43. $out["status"] = 1;
  44. } else {
  45. $akcja = "Nie dopisałeś się do naszej petycji";
  46. }
  47. $dane = array();
  48. //sprawdzamy czy plik dane.txt istnieje
  49. if (empty($out["bledy"])) {
  50. if (file_exists("dane.txt")) { 
  51. //nastepuje otwarcie pliku z mozliwoscia odczytania i dopisania kolejnych linii
  52. $f = fopen("dane.txt","a");
  53. //zliczamy ilosc linii w pliku dane.txt
  54. $ilosc_linii = count(file("dane.txt"));
  55. //dodajemy jeden do ilosci linii juz istniejacych
  56. $ct = $ilosc_linii+1;
  57.  
  58. //pobieramy dane (format zapisu "imie nazwisko email ip")
  59. if ($ct == 1) {
  60. $dane = implode(" ",array($ct, $_POST["nazwisko"],$_POST["imie"],$_POST["email"],$_SERVER["REMOTE_ADDR"]));
  61. } else {
  62. $dane = implode(" ",array($ct, $_POST["nazwisko"],$_POST["imie"],$_POST["email"],$_SERVER["REMOTE_ADDR"]));
  63. $dane = "r\n".$dane;
  64. }
  65.  
  66. // blokada pliku na czas zapisu
  67. flock($f, 1);
  68.  
  69. // zapisanie danych do pliku i sprawdzanie czy się dopisały nasze dane
  70. if (fwrite($f, $dane)) {
  71. $er.= "Dziękujemy za wsparcie naszej akcji!<br>";
  72. $akcja = "Dopisałeś się do naszej petycji";
  73. $_SESSION['petycja']=1;
  74. }
  75.  
  76. // odblokowanie pliku
  77. flock($f, 3);
  78.  
  79. // zamknięcie pliku
  80. fclose($f); 
  81.  
  82. }
  83. }
  84. //wartosc post jest pusta
  85. } else {
  86. $er.="Tego pliku nie wolno uruchamiać samodzielnie!";
  87. $akcja = "Nie dopisałeś się do naszej petycji";
  88. }
  89. } else {
  90. $er.="Tego pliku nie wolno odświerzać!";
  91. $akcja = "Nie dopisałeś się do naszej petycji";
  92. $_SESSION['petycja']=1;
  93. }
  94. $tpl = str_replace("[akcja]",$akcja,$tpl);
  95. $tpl = str_replace("[er]",$er,$tpl);
  96. echo $tpl;
  97. ?>
piotrooo89
jakie błędy sprecyzuj.
cor7ez
coś takiego



Warning: session_start() [function.session-start]: open(/mnt/tmp/sess_b7fefd10ddbd247d55fe040b8b4b6d20, O_RDWR) failed: Permission denied (13) in /mnt/storage/users/g/a/n/gandziorz/php/dodaj.php on line 3

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /mnt/storage/users/g/a/n/gandziorz/php/dodaj.php:1) in /mnt/storage/users/g/a/n/gandziorz/php/dodaj.php on line 3

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /mnt/storage/users/g/a/n/gandziorz/php/dodaj.php:1) in /mnt/storage/users/g/a/n/gandziorz/php/dodaj.php on line 3


Warning: Unknown: open(/mnt/tmp/sess_b7fefd10ddbd247d55fe040b8b4b6d20, O_RDWR) failed: Permission denied (13) in Unknown on line 0

Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/mnt/tmp) in Unknown on line 0


podaję jeszcze link gdzie projekt "stoi"

projekt
piotrooo89
daj sobie kodowanie utf-8 bez BOM i powiedz co sie dzieje.
cor7ez
mam zapisane w utf-8 a to BOM to co to ?
piotrooo89
ściągnij sobie notepad++ i tam masz Format i koduj bez BOM a tu masz linka http://pl.wikipedia.org/wiki/BOM
nospor
piotroo to nie chodzi o kodowanie, a o pierwszy blad, ktory mowi ze nie ma praw do dostepu do pliku/katalogu sesyjnego

edit down:
hmm, w zasadzie po numerach linii mozna wnioskowac ze masz racje ze swoimi bledami
Co nie zmienia faktu ze ten pierwszy tez powazny winksmiley.jpg
piotrooo89
nospor możliwe że masz racje i pozostałe błędy są wynikiem tego pierwszego...
cor7ez
Cytat(nospor @ 27.05.2008, 15:44:31 ) *
piotroo to nie chodzi o kodowanie, a o pierwszy blad, ktory mowi ze nie ma praw do dostepu do pliku/katalogu sesyjnego


tzn do jakiego pliku ? jeśli codzi o plik gdzie zapisywane są dane to mam ustawione na 666
piotrooo89
to ustaw aby mogło być wykonywany tzn 777
cor7ez
to samo :/
piotrooo89
ja bym jednak z tym kodowaniem popróbował winksmiley.jpg
cor7ez
jeszcze zauważyłem że mi dodaje do pliku dane po odświeżeniu :/
ściągam plik i poprawiam kodowanie
piotrooo89
mam prośbę popraw ten kod żeby był czytelny to Ci pomogę (tak mi sie wydaje) bo z takiej papki nic nie widać...
cor7ez
Warning: session_start() [function.session-start]: open(/mnt/tmp/sess_de220d72decbe6b5d585951671a8aa4e, O_RDWR) failed: Permission denied (13) in /mnt/storage/users/g/a/n/gandziorz/php/dodaj.php on line 3



Warning: Unknown: open(/mnt/tmp/sess_de220d72decbe6b5d585951671a8aa4e, O_RDWR) failed: Permission denied (13) in Unknown on line 0

Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/mnt/tmp) in Unknown on line 0


takie błędy pozostały, postaram się to jakoś poprawić
piotrooo89
zmień chmody pliku dodaj.php na 777 powinno poskutkować.
sniezny_wilk
Przecież w błędach masz napisane co to jest, ba nawet masz napisane co masz zrobić.

@piotrooo89 tu nie chodzi o dodaj.php tylko o sesję, zakładam, że nie masz stworzonego folderu /mnt/tmp, lub nie masz odpowiednich praw nadanych do tego folderu, lub tak jak błędy mówią upewnij się że save_path w sesjach jest dobrze ustawiony.
cor7ez
Cytat(piotrooo89 @ 27.05.2008, 16:09:15 ) *
zmień chmody pliku dodaj.php na 777 powinno poskutkować.


nie poskutkowało :/

Cytat
Przecież w błędach masz napisane co to jest, ba nawet masz napisane co masz zrobić.

jak juz napisałem jestem w zasadzie zielony :/

Cytat
@piotrooo89 tu nie chodzi o dodaj.php tylko o sesję, zakładam, że nie masz stworzonego folderu /mnt/tmp, lub nie masz odpowiednich praw nadanych do tego folderu, lub tak jak błędy mówią upewnij się że save_path w sesjach jest dobrze ustawiony.

to co musiałbym zrobić ?

wrzuciłem na inny serwer i działa z małym "ale"
po wyczyszczeniu zawartości pliku txt z danymi nie mozna sie ponownie dopisac :/


poprawiłem kod i jest czytelny (tak mi sie wydaje)
na tym drugim serwie nie wywala mi blędów ale odswiezajac dopisuje mi do pliku a nie powinien :/
jak temu zaradzic ?
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.