Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] stworzenie pliku na serwerze + zapis
qwe
post
Post #1





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 3.02.2009

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


Witam

Mam stronę na której wypełnia się formularz i dane zostają zapisane do pliku txt na serwerze.
Jednak ten plik robi się coraz większy przez zapisywanie wszystkich danych osób.

kod
index.php

Kod
<br><center><form action="formularz.php" method="post">
<table cellspacing="0" class="tekst">
<tr>
<td width="200px" valign="top">
Nazwa Firmy:* </td>
<td width="230px;"><input type="text" name="nazwa" style="width: 200px;" /></td>
</tr>
<tr>
<td valign="top">
Telefon: </td>
<td> <input type="text" name="telefon" style="width: 200px;" /></td>
</tr>
<tr>
<td valign="top">
e-mail: </td>
<td><input type="text" name="mail" style="width: 200px;" /></td>
</tr>
<tr>
<td valign="top">
Adres:* </td>
<td><input type="text" name="adres" style="width: 200px;" /></td>
</tr>
<tr>
<td valign="top">
Miejscowość:* </td>
<td><input type="text" name="miejscowosc" style="width: 200px;" /></td>
</tr>
<tr>
<td>Pola ozaczone gwiazdką (*) są wymagane</td>
<td>
<input type="submit" value="Dopisz" /> </td>
</tr>
</table>
</form></center>



i formluarz.php


Kod
<?php
/*********************************************
* plik formularz.php
*********************************************/

if(!empty($_POST['nazwa']) and !empty($_POST['adres'])  and !empty($_POST['miejscowosc'])  and !empty($_POST['opis'])) {

$nazwa = trim($_POST['nazwa']);
$telefon = (empty($_POST['telefon'])) ? 'nie podano' : trim($_POST['telefon']);
$mail = (empty($_POST['mail'])) ? 'nie podano' : trim($_POST['mail']);
$adres = trim($_POST['adres']);
$miejscowosc = trim($_POST['adres']);
$opis = trim($_POST['opis']);
// dane pochodz╣ce z formularza
$dane = "|Nazwa:|".$nazwa."|telefon:|".$telefon."|mail:|".$mail."|opis:|".$opis."\n";
// przypisanie zmniennej $file nazwy pliku
$file = "bazafirm.txt";
// uchwyt pliku, otwarcie do dopisania
$fp = fopen($file, "a");
// blokada pliku do zapisu
flock($fp, 2);
// zapisanie danych do pliku
fwrite($fp, $dane);
// odblokowanie pliku
flock($fp, 3);
// zamkniŕcie pliku
fclose($fp);

echo '<p>Dane zosta│y dopisane!</p>';
}

?>



Chciałbym zrobić aby po wypełnienie formularza i kliknięciu buttona został utworzony plik o nazwie takiej jak nazwa firmy czyli np ktoś wpisał w formularzu
Nazwa firmy: intel i zostanie utworzony plik intel.txt i do niego zapisane dane z formularza

Ale nie wiem jak to wykonań (przeszukałem formu ale nic nie znalazłem ) proszę o pomoc

z góry dziękuje

Ten post edytował qwe 24.02.2009, 19:04:13
Go to the top of the page
+Quote Post
Rafal Filipek
post
Post #2





Grupa: Zarejestrowani
Postów: 274
Pomógł: 54
Dołączył: 2.05.2006
Skąd: Nadarzyn

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


Kod
$file = "bazafirm.txt";

ta linijka okresla nawe pliku tak wiec musisz podpiac zamiast stringu tak jak jest teraz zminna z formularza i juz.
Go to the top of the page
+Quote Post
kefirek
post
Post #3





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

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


Zamiast
  1. <?php
  2. $fp = fopen($file, "a");
  3. ?>

daj

  1. <?php
  2. $fp = fopen($nazwa.'txt', "a");
  3. ?>


Ten post edytował kefirek 24.02.2009, 19:13:48
Go to the top of the page
+Quote Post
qwe
post
Post #4





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 3.02.2009

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


no tak .... tylko nie mogę zapisać bo tego pliku o $nazwa.'txt', nie ma na serwerze .. najpierw trzeba go stworzyć i właśnie z tym mam problem
Go to the top of the page
+Quote Post
artur_dziocha
post
Post #5





Grupa: Zarejestrowani
Postów: 320
Pomógł: 53
Dołączył: 18.09.2007
Skąd: Radom

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


a ja odsyłam do manuala - tam jest pieknie cudownie wszystko opisane
http://pl.php.net/manual/pl/ref.filesystem.php
Go to the top of the page
+Quote Post
kefirek
post
Post #6





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

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


Cytat(qwe @ 24.02.2009, 19:33:36 ) *
no tak .... tylko nie mogę zapisać bo tego pliku o $nazwa.'txt', nie ma na serwerze .. najpierw trzeba go stworzyć i właśnie z tym mam problem



No przecierz fopen z trybem a
Kod
a Otwiera tylko do zapisu; umieszcza wskaźnik pliku na jego końcu. Jeśli plik nie istnieje to próbuje go utworzyć.


Ten post edytował kefirek 24.02.2009, 19:43:20
Go to the top of the page
+Quote Post
qwe
post
Post #7





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 3.02.2009

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


wywala mi błąd

Warning: fopen(intelxt) [function.fopen]: failed to open stream: Permission denied in /baza1/formularz.php on line 20

Warning: flock() expects parameter 1 to be resource, boolean given in /baza1/formularz.php on line 22

Warning: fwrite(): supplied argument is not a valid stream resource in /baza1/formularz.php on line 24

Warning: flock() expects parameter 1 to be resource, boolean given in /baza1/formularz.php on line 26

Warning: fclose(): supplied argument is not a valid stream resource in /baza1/formularz.php on line 28


znalazłem coś takiego do tworzenia pliku


// zakladanie wskazanego pliku
$nowy = $_GET["nowy"];
if (!file_exists($nowy) && $nowy<>"") {
touch($nowy);
chmod($nowy, 0664);
} else if ($nowy<>"" && file_exists($nowy)) {
echo "Plik o podanej nazwie już istnieje!";
}

Ten post edytował qwe 24.02.2009, 20:15:42
Go to the top of the page
+Quote Post
kefirek
post
Post #8





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

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


Daj tak zapomniałem o kropce
  1. <?php
  2. $fp = fopen($nazwa.'.txt', "a");
  3. ?>
Go to the top of the page
+Quote Post
qwe
post
Post #9





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 3.02.2009

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


Cytat(kefirek @ 24.02.2009, 20:31:06 ) *
Daj tak zapomniałem o kropce
  1. <?php
  2. $fp = fopen($nazwa.'.txt', &#092;"a\");
  3. ?>


też błąd

failed to open stream
Go to the top of the page
+Quote Post
Kamil Jura
post
Post #10





Grupa: Zarejestrowani
Postów: 65
Pomógł: 2
Dołączył: 28.01.2009
Skąd: Opole

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


Proponuję zmienić atrybuty katalogu w którym zapisujesz te pliki smile.gif Nie wiem czego używasz, ale Total Commanderem robi się tak:

PPM na Katalog (zaznaczamy biggrin.gif ) i później: plik -> zmień atrybuty wpisz tam sobie 777 i po sprawie. Jeśli nie będzie działać to coś jeszcze pomyślimy.

Ps. te txt powinny być archaizmem w dziedzinie programowania, nie lepiej baza danych ?


--------------------
Agencja Interaktywna ENERO - Strony www, reklama, identyfikacja wizualna - www.enero.com.pl
Go to the top of the page
+Quote Post
qwe
post
Post #11





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 3.02.2009

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


Cytat(Kamil Jura @ 24.02.2009, 22:22:13 ) *
Proponuję zmienić atrybuty katalogu w którym zapisujesz te pliki smile.gif Nie wiem czego używasz, ale Total Commanderem robi się tak:

PPM na Katalog (zaznaczamy biggrin.gif ) i później: plik -> zmień atrybuty wpisz tam sobie 777 i po sprawie. Jeśli nie będzie działać to coś jeszcze pomyślimy.

Ps. te txt powinny być archaizmem w dziedzinie programowania, nie lepiej baza danych ?



hehe wiem jak się zmienia atrybuty w total comanderze i mam dla katalogu ustawione 777 tongue.gif

Wiem, że powinienem korzystać z bazy danych jednak nie opanowałem jeszcze tego wszystkiego co się wiąże właśnie z bazami.

Dlatego póki co korzystam z prostych metod i txt tongue.gif

Wziąłem przykładowy prostszy skrypt do zapisu 2 danych do pliku utworzonego i zrobiłem

Kod
<form action="index.php" method="post">
<input type="text" name="nowy" />

<b><input name="imie" size="10" maxlength="10" type="imie">
<input name="wiek" size="30" maxlength="2" type="wiek"></b>

<br /><input type="submit" value="Wykonaj" />
</form>

<?
// zakladanie  pliku
$nowy = $_POST["nowy"];
if (!file_exists($nowy) && $nowy<>"") {
touch($nowy);
chmod($nowy, 0664);
} else if ($nowy<>"" && file_exists($nowy)) {
echo "Plik o podanej nazwie już istnieje!";
}

?>


i chcę dołączyć aby do pliku podanym jako nowy zostały zapisane dane

Kod
$imie = $_POST['imie'];
$wiek = $_POST['wiek'];
<b>
$file = "baza.txt";

$fp = fopen($file, "a");</b>
flock($fp, 2);

fwrite($fp, $user.' '.$wiek."\n");

flock($fp, 3);
fclose($fp);



i te 2 linijki

$file = "baza.txt";
$fp = fopen($file, "a");</b>


będzie dobrze jak zrobie $file =$_POST["nowy"];

questionmark.gif



--------------
doszedłem jak tu zrobić

musi być

Kod
$file = $nowy;

$fp = fopen($file, "a");



to teraz idę się meczyć z tym 1 skryptem

Ten post edytował qwe 25.02.2009, 10:53:09
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 Aktualny czas: 19.08.2025 - 21:37