Problem na winXP z zapisem zmiennych do pliku .txt przez PHP

Języki, których efekty są wykonywane po stronie serwera. PHP, ASP czy CGI w połączeniu z bazami danych SQL dają niezwykłe możliwości budowy i zarządzania stron WWW. Tu zadajemy pytania oraz demonstrujemy kod, z którym mamy problem.
Atropos
Nowy
Nowy
Posty: 45
Rejestracja: śr paź 08, 2003 1:05 am
Lokalizacja: Rybnik

Problem na winXP z zapisem zmiennych do pliku .txt przez PHP

Post autor: Atropos »

Jestem początkujący.

Zainstalowałem FoxServ na winXP (Apache 2.0.39, PHP 4.2.2, MYSQL), teoretycznie wszystko się samo konfiguruje.

Serwer działa, skrypty PHP uruchamiają się lecz nie zapisują zmiennych do plików .txt.
Skrypty są poprawnie napisane - działają na serwerze komercyjnym w necie.

Bardzo proszę o pomoc.

Poprzednio zainstalowałem Apache i PHP w oddzielnych dystrybucjach, skonfigurowałem i problem był identyczny.
Dawid Pytel
Nowy
Nowy
Posty: 67
Rejestracja: śr cze 19, 2002 8:58 pm
Lokalizacja: Tychy
Kontakt:

Re: Problem na winXP z zapisem zmiennych do pliku .txt przez PHP

Post autor: Dawid Pytel »

Nikt tutaj wróżyć nie potrafi więc... podaj kod gdzie zapisujesz do pliku!
Atropos
Nowy
Nowy
Posty: 45
Rejestracja: śr paź 08, 2003 1:05 am
Lokalizacja: Rybnik

Re: Problem na winXP z zapisem zmiennych do pliku .txt przez PHP

Post autor: Atropos »

To jest skrypt, który zapisuje zmienne z flasha do pliku text_file.txt.
Flash przesyła wartość zmiennej "n" i "e". Próbowałem obu metod: get i post
Wygląda na to, że zmienne są przesyłane prawidłowo: w przypadku get są widoczne na pasku adresu.

Wszystkie pliki znajdują się w domyślnym katalogu www FoxServa czyli C:\FoxServ\www. Pliki uruchamiam wpisując w przeglądarkę http://localhost/test.htm

sam skrypt wygląda tak:

[php]<?php
$f=fopen("text_file.txt","a");

fwrite($f,"***************************************\r\n\r\n");
fwrite($f," Name:\t\t\t$n\r\n");
fwrite($f," E-Mail:\t\t$e\r\n\r\n");

fclose($f);

echo "<BR><BR><B>Submit successful!</B>";
?>[/php]
Po uruchomieniu i przesłaniu danych, okno wyświetla komunikat "Submit successful!", w piku .txt mam:
***************************************
Name:
E-Mail:
czyli wszystko oprócz zmiennych.

To jest najprostszy przykład jaki znalazłem i jedyny który choć trochę działa.
Inne skrypty nie zapisują zupełnie nic.
Krzysztof Aszkiełowicz
Zaczyna działać
Zaczyna działać
Posty: 458
Rejestracja: pn maja 26, 2003 9:29 pm
Lokalizacja: Warszawa
Kontakt:

Re: Problem na winXP z zapisem zmiennych do pliku .txt przez PHP

Post autor: Krzysztof Aszkiełowicz »

Spróbuj tak:
[php]<?php
$f=fopen("text_file.txt","a");

fwrite($f,"***************************************\r\n\r\n");
fwrite($f," Name:\t\t\t$_GET[n]\r\n");
fwrite($f," E-Mail:\t\t$_GET[e]\r\n\r\n");

fclose($f);

echo "<BR><BR><B>Submit successful!</B>";
?>[/php]

$_GET[n] jeżeli z flasha przesyłasz metodą get lub $_POST[n] gdy metodą post!!
Atropos
Nowy
Nowy
Posty: 45
Rejestracja: śr paź 08, 2003 1:05 am
Lokalizacja: Rybnik

Re: Problem na winXP z zapisem zmiennych do pliku .txt przez PHP

Post autor: Atropos »

Niesamowite !!! - działa !

Wielkie dzięki

Dlaczego mój skrypt działa na serwerze w necie, a u mnie na kompie nie ?
($_POST[x] także działa na serwerze w necie więc wszystko ok.)

I czy to znaczy, że książki które mam mogę sobie wsadzić gdzieś :)
Dawid Pytel
Nowy
Nowy
Posty: 67
Rejestracja: śr cze 19, 2002 8:58 pm
Lokalizacja: Tychy
Kontakt:

Re: Problem na winXP z zapisem zmiennych do pliku .txt przez PHP

Post autor: Dawid Pytel »

Chyba wszystkie ksiazki o PHP stosuja globalne zmienne. A to wszystko zalezy jedynie od ustawien Twojego Apacha. Musisz tylko w pliku php.ini ustawic zmienne globalne na Off i tyle :)
Atropos
Nowy
Nowy
Posty: 45
Rejestracja: śr paź 08, 2003 1:05 am
Lokalizacja: Rybnik

Re: Problem na winXP z zapisem zmiennych do pliku .txt przez PHP

Post autor: Atropos »

Rzeczywiście pomogło :)
(register_globals = on)

To dla mnie znacznie bardziej ważna rada - jeszcze raz dzięki

Lepiej jest używać lokalnych czy globalnych zmiennych ?
(w komentarzu php.ini trochę straszą)

Przez globalne rozumiem: $x - nie wiem czy dobrze :)
Dawid Pytel
Nowy
Nowy
Posty: 67
Rejestracja: śr cze 19, 2002 8:58 pm
Lokalizacja: Tychy
Kontakt:

Re: Problem na winXP z zapisem zmiennych do pliku .txt przez PHP

Post autor: Dawid Pytel »

O wiele bezpieczniejsze uzywanie jest zmiennych przy register_globals=off dlaczego?
Poniewaz wowczas masz pewnosc skad pochodza zmienne. Potrzebne jest to zeby nikt nie wykorzystywal mogacych powstac w ten sposob dziur w Twoim skrypcie. M.in. mozesz sprawdzic czy dane przesylane do Twojego skryptu naprawde pochodza z formularza ($_POST).
ODPOWIEDZ