Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Problem z zapisem plików.
Forum PHP.pl > Forum > Przedszkole
rudald
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ę";
       }
       ?>
wookieb
1) Wywal fopeny i zastosuj file_put_contents
2) Sprawdz czy masz odpowiednie chmody dla plikow. Tzn czy są zapisywalne.
rudald
Mam zamiast fopen wrzucić file_put_contents('./users/'.$name_user); ?
Nie kumam. To jest tylko pojedyncza konstrukcja, czy mam usunąć też fclose, fwrite itd. ?
wookieb
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
rudald
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);
wookieb
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.
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.