![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 12.09.2005 Ostrzeżenie: (0%) ![]() ![]() |
Mam wielki problem - otóż posiadam formularz, który metodą POST przekazuje pewną informację do skryptu php (pole formularza ma name="Napisano"). Skrypt ten ma utworzyć nowy plik tekstowy i zapisać tę informację w nim. Wygląda to tak:
Otóż to działało bez zarzutu dopóki nie admini nie zaczęli coś zmieniać w php na serwrze. Teraz plik jest tworzony, ale pusty - informacja się nie zapisuje. Bardzo proszę o pomoc, bo już nie w głowę zachodze co jto jest! ![]() |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 61 Pomógł: 0 Dołączył: 30.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
Prawdopodobnie to wina praw dostępu, najlepiej będzie jeśli ustalisz która funkcja zawodzi.
fopen, flock, fwrite i fclose zwracają false w przypadku błędu, dodatkowo fopen zwraca komunikat na poziomie E_WARNING w przypadku niepowodzenia więc możesz włączyć
Ten post edytował KG- 27.07.2006, 16:51:30 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 12.09.2005 Ostrzeżenie: (0%) ![]() ![]() |
Nie ma żadnego błędu. W dodatku wszystko działa poprawnie, jeżeli zamiast zmiennej z tablicy POST fwrite ma zapisać cokolwiek innego, np. takie coś zadziała bez zarzutu:
Zamiszczam link do konfiguracji php na serwerze. Może to coś komuś powie :-( http://jerzy.sopot.pl/skrypty/php_info.php Ten post edytował elipsa 27.07.2006, 18:23:38 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 504 Pomógł: 2 Dołączył: 31.03.2006 Skąd: Londyn Ostrzeżenie: (0%) ![]() ![]() |
Sprobuj tak i powiedz czy widzisz na ekrenie zawartos zmiennej. -------------------- "Wizja czasu jest szeroka, lecz kiedy sie przez nia przechodzi, czas staje sie waskimi drzwiami"
![]() |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 12.09.2005 Ostrzeżenie: (0%) ![]() ![]() |
Tak, zawartość zmiennej się wyświetla.
Wymyśliłem coś takiego, ale nie wiem czy to poprawnw (ale chyba działa):
Jak się zapisze zmienną z POST w ciasteczku, to coś takiego fwrite zapisze, a jak ma zapisać bezpośrednio z POST, to tego nie robi. O co tu może chodzić? A można zapisać wartośćz tablicy POST jeszcze gdzieś indziej? ![]() |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
a moze sprobuj inny tryb zapisu do pliku
P.S
nielepiej bylo uzyc
ale to nie istotne Ten post edytował skowron-line 27.07.2006, 19:19:55 -------------------- I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy. QueryBuilder, Mootools.net, bbcradio1::MistaJam http://www.phpbench.com/ |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 12.09.2005 Ostrzeżenie: (0%) ![]() ![]() |
A co to znaczy z tym trybem zapisu?
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
zamiast w daj "ab" -------------------- I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy. QueryBuilder, Mootools.net, bbcradio1::MistaJam http://www.phpbench.com/ |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 12.09.2005 Ostrzeżenie: (0%) ![]() ![]() |
Nie działa :-/
Wygląda to tak, jak gdyby php uparło się, aby nie zapisywać do pliku czegoś przesłanego metodą POST. Dla próby dałem metodą GET i wtedy zadziałało. Czy gdzieś w ustawieniach php (php.ini?) można coś takiego ustawić? A co myślicie o sztuczce z ciasteczkiem? |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
wiesz jezeli dziala to chyba mozna to nazwac dobra metoda ale wiesz ja osobiscie nie wiem ale ciasteczko moze miec ograniczona ilosc znakow
-------------------- I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy. QueryBuilder, Mootools.net, bbcradio1::MistaJam http://www.phpbench.com/ |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 12.09.2005 Ostrzeżenie: (0%) ![]() ![]() |
No tyak, ale można jakoś inaczej?
|
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
a probowales tak.A moze jeszcze jedna mysl moze zmienna daj w cudzyslow zobacz czy zwyklego stringa zapisze nie ze zmiennej. pozdrowki Ten post edytował skowron-line 27.07.2006, 20:34:34 -------------------- I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy. QueryBuilder, Mootools.net, bbcradio1::MistaJam http://www.phpbench.com/ |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 12.09.2005 Ostrzeżenie: (0%) ![]() ![]() |
Z cudzysłowem podwójnym, pojedynczym i bez jest to samo. Najgorsze, że to wszystko działało, dopóki ostatnio nie padł serwer. Wgrali na nowo php i teraz są same niespodzianki. Dlatego też zastanawiam się, czy jest może jakaś dyrektywa w php zabraniająca skryptom zapis do pliku danych przesłanych metodą POST.
|
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 504 Pomógł: 2 Dołączył: 31.03.2006 Skąd: Londyn Ostrzeżenie: (0%) ![]() ![]() |
raczej nie, bo zapisujesz te dane do zwyklej zmiennej.
Sprobuj jesio dla elegancji zmienic $_POST[Napisano]; na $_POST['Napisano']; -------------------- "Wizja czasu jest szeroka, lecz kiedy sie przez nia przechodzi, czas staje sie waskimi drzwiami"
![]() |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 12.09.2005 Ostrzeżenie: (0%) ![]() ![]() |
Ja już się poddaję - 2 dni nad tym myślałem i nic. Widać są na tym świecie rzeczy "dla zmysłów niepojęte", skoro nawet tu, na takim forum nikt nie zna odpowiedzi.
Ten post edytował elipsa 28.07.2006, 14:06:37 |
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 1 657 Pomógł: 125 Dołączył: 29.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
raczej nie, bo zapisujesz te dane do zwyklej zmiennej. Sprobuj jesio dla elegancji zmienic $_POST[Napisano]; na $_POST['Napisano']; Nie znam się dobrze na tym ale czy apostrofy nie robią też różnicy w działaniu ? Bo jak ja raz napisałem skrypt z odwołaniem do POST bez apostrofów to wyskoczył mi błąd -------------------- |
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 504 Pomógł: 2 Dołączył: 31.03.2006 Skąd: Londyn Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem czy apostrofy to konwencja, elegancja czy moze cos wymaganego co roznie dziala na roznych konfiguracjach serwera. Jednak wszyscy gonia do ich uzywania wiec lepiej sobie zlych nawykow nie wyrabiac. Jesli na jakims problemie maja pojawic sie problemy po nie ma ' to lepiej dodac je od razu wtedy przy przenosinach nie ma przykrych niespodzianek
![]() -------------------- "Wizja czasu jest szeroka, lecz kiedy sie przez nia przechodzi, czas staje sie waskimi drzwiami"
![]() |
|
|
![]()
Post
#18
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Nie znam się dobrze na tym ale czy apostrofy nie robią też różnicy w działaniu ? Bo jak ja raz napisałem skrypt z odwołaniem do POST bez apostrofów to wyskoczył mi błąd Cytat Nie wiem czy apostrofy to konwencja, elegancja czy moze cos wymaganego co roznie dziala na roznych konfiguracjach serwera. Jednak wszyscy gonia do ich uzywania wiec lepiej sobie zlych nawykow nie wyrabiac. Jesli na jakims problemie maja pojawic sie problemy po nie ma ' to lepiej dodac je od razu wtedy przy przenosinach nie ma przykrych niespodzianek A teraz idziemy do manuala i sie juz wiecej nie zastanawiamy czy to tradycja, wymysl chorych ludzi czy może blad: http://pl2.php.net/manual/pl/language.types.array.php Cytat Co wolno, a czego nie w tablicach?
Dlaczego zapis $foo[bar] jest niepoprawny? W starych skryptach można spotkać taką składnię: $foo[bar] = 'coś'; echo $foo[bar]; // itd. Ten zapis jest niepoprawny, ale działa. Dlaczego zatem jest niepoprawny? Powód jest to, co opisano w rozdziale składnia, że pomiędzy nawiasami kwadratowymi ('[' i ']') musi znajdować się wyrażenie. Oznacza to, że można używać czegoś takiego: echo $arr[ foo(true) ]; Jest to przykład użycia wartości zwracanej przez funkcję jako indeksu tablicy. php zna też stałe, więc można spotkać zastosowanie E_*. $opis_błędu[E_ERROR] = "Wystąpił poważny błąd"; $opis_błędu[E_WARNING] = "php wysłało ostrzeżenie"; $opis_błędu[E_NOTICE] = "To jest tylko nieformalna uwaga"; Proszę pamiętać, że E_ERROR jest także ważnym identyfikatorem, tak jak bar w pierwszym przykładzie. Ale ostatni przykład znaczy to samo co: $opis_błędu[1] = "Wystąpił poważny błąd"; $opis_błędu[2] = "php wysłało ostrzeżenie"; $opis_błędu[8] = "To jest tylko nieformalna uwaga"; ponieważ E_ERROR znaczy to samo co 1, itd. W takiem razie, jak to możliwe, że $foo[bar] działa? To działa, ponieważ bar, zgodnie z jego zapisem powinien być stałą. Jednakże w tym przypadku nie instnieje stała o nazwie bar. php teraz zakłada, że masz na myśli bar literalnie, czyli jako łańucuch "bar", tylko że zapomniałeś napisać cudzysłowów. Więc dlaczego tak jest źle? Kiedyś w przyszłości grupa php może chcieć dodać jeszcze jedną stałą lub słowo kluczowe i wtedy będziesz miał kłopot. Dla przykładu, obecnie już nie można używać słów empty i default, gdyż są to specjalne słowa kluczowe. Poza tym, jeśli dotąd argumenty nie przekonują cię: ta składnia jest po prostu odrzucona i kiedyś może przestać działać. Notatka: Po przełączeniu error_reporting na E_ALL, zobaczysz, że php generuje ostrzeżenie, kiedy tylko powyższa składnia zostanie użyta. Tak samo generowane będą ostrzeżenia odnośnie innych odrzuconych "udogodnień". (umieść w swoim skrypcie linię error_reporting(E_ALL) ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 12.09.2005 Ostrzeżenie: (0%) ![]() ![]() |
No, już sobie poradziłem i nie miało to żadnego związku z apostrofami. Zauważyłem, że po rekonfiguracji php zapisywało mi plik 2 razy, tylko że za drugim razem zmienna z tablicy POST była już pusta. W efekcie miało się wrażenie, że php po prostu nie zapisuje zmiennej z tablicy POST do pliku. Wystarczy więc coś takiego:
I to działa! Nie wiem, o co tu dokładnie chodzi i dlaczego probem jest akurat ze zmienną POST (bo zmienna z GET działa). Jakby ktoś potrafił to zjawisko wyjaśnić, to byłoby bardzo fajnie. Pozdrawiam wszystkich zainteresowanych tym tematem. Ten post edytował elipsa 1.08.2006, 11:05:04 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 10:36 |