Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]zapis do pliku
Forum PHP.pl > Forum > Przedszkole
pablo_83
witam, to kawałek kodu z mojego formularza który zapisuje dane do pliku txt. Dane są zapisywane nawet gdy nie wszystkie
zostały podane. Pytanie moje jest takie co mam zrobić żeby sprawdzić czy petla działa w przypadku braku zapisu??
próbowałem wykomentować fwrite ale to nic nie daje. Cały czas plik jest tworzony i zapisywane są w nim dane, próbowałem też z != ale także nie działa (nawet nie wiem czy dobrze kombinuje). Prosze o pomoc
  1. <?php
  2. $dane = $login."\n".$haslo."\n".$imie1."\n".$nazwisko1."\n".$mail."\n".$nadw."\n".$poj."\n".$rocznik."\n";
  3.            
  4.            $file = "baza.txt";
  5.            
  6.           $fp = fopen($file, "a");
  7.            
  8.            flock($fp, 2);
  9.            
  10.            fwrite($fp, $dane);
  11.            
  12.            flock($fp, 3);
  13.            
  14.        
  15.            $zapis !=fwrite($fp,$dane);
  16.            
  17.            if (($zapis) !== false)
  18.                echo ("Zapisałem do pliku");
  19.                      else
  20.                        echo ("Wystąpił błąd przy zapisie");
  21.                  fclose($fp);
  22. ?>
nospor
Cytat
Pytanie moje jest takie co mam zrobić żeby sprawdzić czy petla działa w przypadku braku zapisu??
Jaka znowu petla?
Poza tym nawet jak ktos nie poda wszystkich danych to ty nie masz braku zapisu, gdysz wkladasz wowczas same entery, a entery to dane jak kazde inne smile.gif
Musisz dac warunek na wprowadzenie wszystkich danych i dopiero jak jest spelniony to wykonywac operacje na pliku
pablo_83
przejęzyczenie chodzi mi oczywiście o instrukcje if
AngelusPL
Witam

Masz kilka błędów.

Kod
$zapis = fwrite($fp,$dane);
            
if (($zapis) != false)
{
echo ("Zapisałem do pliku");
}
else
{
echo ("Wystąpił błąd przy zapisie");
}
fclose($fp);


Pozdrawiam
pablo_83
dzięki teraz działa, mam jeszcze pytanie, usunąlem entery (\n) żeby plik nie zostawał zapisywany w przypadku pustego formularza ale oczywiście w w przypadku zapisu wszystko jest wyświetlane w jednej linii , jak to zmienić. Jest coś do usuwania enterów tak jak w przypadku białych znaków??
ignas1987
Ja to bym zrobił troszke inaczej... Po co usuwałeś "\n"? daj if'a dla poszczególnych zmiennych, jeżeli wartość zmienych będzie równa "" to wyświetl komunikat "WYPEŁNIJ WSZYSTKIE POLA" i nie zapisuje do pliku, jeżeli wszystko jest podane niech wyświetli "DANE ZAPISANE" i skrypt zapisuje do pliku winksmiley.jpg

[edit] coś w tym stylu:

  1. <?php
  2. if ($login == "" || $haslo == "" ....itd) { tu echo("...") } else { zapis do pliku }
  3. ?>

[/edit]
pablo_83
faktycznie Twoja propozycja wydaje mi się bardzo logiczna i odpowiednia. biggrin.gif
dzięki jeszcze raz
nospor
nie zebym sie czepial, ale co ja napisalem w pierwszym poscie?
Cytat
Musisz dac warunek na wprowadzenie wszystkich danych i dopiero jak jest spelniony to wykonywac operacje na pliku
pablo_83
spoko, poprostu potrzebowałem żeby ktoś mi to wyłożył łopatologicznie laugh.gif
jeszcze raz wszystkim dziękuje za pomoc
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.