Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Problem z zapisem plików., Na Krasnalu wszystko działa, na innych serwerach już nie.
rudald
post 10.12.2008, 18:47:32
Post #1





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 10.12.2008

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


Mianowicie, jestem wstępniakiem. Trochę myślenia, zaowocowało taką pracą. Jednak co z tego, jeśli nie można tego na stronach wykorzystać. Póki co, nie chcę czegoś zaawansowanego, tylko by załapać tok rozumowania. To skrypt po uzupełnieniu formularza rejestracji.

Słyszałem coś na temat zmiennych globalnych off i on. Czy wszystkie zmienne musimy zadeklarować jako $_post ?

Proste. Co zrobić, zmienić, poprawić, by serwer zaczął dobrze interpretować odczytywanie, tworzenie, zapis pliku? Z góry dziękuję.

Kod
       <?
       $name_user = $_POST['name_user'];
       $haslo = $_POST['haslo'];
       $haslo2 = $_POST['haslo2'];
       $mail = $_POST['mail'];
       $mail2 = $_POST['mail2'];
      
       /* nie mam zielonego pojęcia, czy potrzebne są następne trzy linijki.
      
       $plik = $_POST['plik'];
       $plik2 = $_POST['plik2'];
       $plik3 = $_POST['plik3'];
      
      
      
       if (strstr($mail,'@'))
       {
       if (($name_user<>'') and ($haslo<>'') and ($haslo2<>'') and ($mail<>'')
       and ($mail2<>''))
       {
       if (file_exists("./users/$name_user"))
       {
       echo "Ta nazwa użytkownika już istnieje!";
       }
       else
       {
       if (($haslo<>$haslo2) and ($haslo='') and ($name_user==$haslo))
       {
       echo '
       ';
       echo 'Błędnie podany adres email lub hasło';
       echo "Hasło nie może być takie same jak login";
       }
       else
       {
       if (($name_user<>$haslo) and ($haslo==$haslo2))
       {
       echo "Konto zostalo wlasciwie utworzone";
       $plik=fopen("./users/$name_user","w+");
             fclose($plik);
       $plik2=fopen("./users/$name_user","a+");
              fwrite($plik2,$haslo);
       fclose($plik2);
       $plik3=fopen("./users/$name_user a","w+");
              fwrite($plik3," Email: ");
              fwrite($plik3,$mail2);
              fwrite($plik3,' ');
              fclose($plik3);
       }
       else
       {
       echo "
       Hasło nie moze być takie samo jak login,exclamation.gif!
       ";
       echo "Hasła muszą być takie same.";
       }
       }
       }
       }
       else
       {
       echo "Wypelnij wszystkie pola";
       }
       }
       else
       {
       echo "Nie poprawny adres email, Rejestracja nie powiodła się";
       }
       ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
wookieb
post 10.12.2008, 18:54:05
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




1) Wywal fopeny i zastosuj file_put_contents
2) Sprawdz czy masz odpowiednie chmody dla plikow. Tzn czy są zapisywalne.

Ten post edytował wookieb 10.12.2008, 18:54:28


--------------------
Go to the top of the page
+Quote Post
rudald
post 10.12.2008, 19:42:42
Post #3





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 10.12.2008

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


Mam zamiast fopen wrzucić file_put_contents('./users/'.$name_user); ?
Nie kumam. To jest tylko pojedyncza konstrukcja, czy mam usunąć też fclose, fwrite itd. ?
Go to the top of the page
+Quote Post
wookieb
post 10.12.2008, 20:20:25
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Zgadłeś. Już kumasz. Jakbyś uważnie czytał http://php.net/file_put_contents to byś nie zadał tego pytania. Ale niech cie będzie tongue.gif


--------------------
Go to the top of the page
+Quote Post
rudald
post 10.12.2008, 21:02:09
Post #5





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 10.12.2008

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


Tak czy siak jeden wał ^^. Zmieniłem i 'konto zostało właściwie utworzone', a to taki bonus:
Fatal error: Call to undefined function: file_put_contents() in c:\usr\apache\httpd\html\rejestracja.php on line 35

Tak zamieniłem
Kod
echo "Konto zostalo wlasciwie utworzone";
file_put_contents('./users/'."$name_user");
      fclose($plik);

file_put_contents('./users/'.$name_user);
       fwrite($plik2,$haslo);
fclose($plik2);
file_put_contents('./users/'.$name_user);
       fwrite($plik3," Email: ");
       fwrite($plik3,$mail2);
       fwrite($plik3,' ');
       fclose($plik3);


Ten post edytował rudald 10.12.2008, 21:24:48
Go to the top of the page
+Quote Post
wookieb
post 10.12.2008, 21:26:05
Post #6





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




1) Jezeli mozesz to zmien php na 5 (hosting najczesciej umozliwia prelaczenie na php5)
2) No i nie wywaliłies fopeno, fwritow i w dodatku NIE UMIESZ CZYTAĆ MANUALA. Przeczytaj JESZCZE RAZ link do manuala bo nawet nie podałes prawidłowych argumentów.

Ten post edytował wookieb 10.12.2008, 21:46:58


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 08:48