Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Obsługa formularza i zapis danych do pliku
Forum PHP.pl > Forum > Przedszkole
Itep
Korzystam z Krasnala. Poprzez formularz przekazuje 3 dane do pliku formularz.php: $jablka, $cytryny, $orzechy. Zadaniem wspomnianego pliku jest zapisanie ich do pliku zamowienia.txt, ale nie wiem dlaczego skryptowi nie udaje się to.

Oto kod formularz.php:

Kod
<?php
$data = date("F j, Y, g:i a");
if (isset($jablka) && isset($cytryny) && isset($orzechy))
{
echo "Zamówienie przyjęte ".$data."<br /><br />";
echo "Ilość jabłek: ".$jablka."<br />";
echo "Ilość cytryn: ".$cytryny."<br />";
echo "Ilość orzechów: ".$orzechy."<br /><br />";

define(CENAJABLEK, 1);
define(CENACYTRYN, 2);
define(CENAORZECHOW, 3);

echo "Cena jabłek: ".CENAJABLEK."<br />";
echo "Cena cytryn: ".CENACYTRYN."<br />";
echo "Cena orzechów: ".CENAORZECHOW."<br /><br />";

$koszt = CENAJABLEK * $jablka + CENACYTRYN * $cytryny + CENAORZECHOW * $orzechy;
echo "Wartość zamówienia: ".$koszt." złotych<br /><br />";

$otworz = fopen("zamowienia.txt", 'ab');
flock($otworz, LOCK_SH);
$tekst = "Ilość jabłek: ".$jablka. "\t Ilość cytryn: ".$cytryny. "\t Ilość orzechów ".$orzechy."\t";
$zapisz = fwrite($otworz, $tekst);
flock($otworz, LOCK_UN);
fclose($otworz);
if (!$zapisz)
{
echo "Wystąpił błąd podczas zapisu pliku!";
}
else
{
echo "Zamówienie zapisane.";
}
}
else
{
echo "Nie wypełniłeś wszystkich pól!";
}
?>


E: Skrypt zwraca "Wystąpił błąd podczas zapisu pliku!".
.radex
skąd żeś wziął coś takiego?! *

Wyłącz te register_globals!

* $jablka, $cytryny, $orzechy
Itep
Rzeczywiście, zapomniałem dodać:

Kod
$jablka = $_POST['jablka'];
$cytryny = $_POST['cytryny'];
$orzechy = $_POST['orzechy'];


Nie zmienia to jednak faktu, że wciąż z zapisywaniem danych do pliku jest problem.
matx132
ja zrobiłem jakoś tak

forumlarz.html
Kod
<form action="for.php" method="get">
<input type="text" name="jablka"><br>
<input type="text" name="cytryny"><br>
<input type="text" name="orzechy"><br>
<input type="submit"><br>
</form>



for.php
Kod
<?php
$data = date("F j, Y, g:i a");
$jablka=$_GET['jablka'];
$cytryny=$_GET['cytryny'];
$orzechy=$_GET['orzechy'];
if (isset($jablka) && isset($cytryny) && isset($orzechy))
{
echo "Zamówienie przyjęte ".$data."<br /><br />";
echo "Ilość jabłek: ".$jablka."<br />";
echo "Ilość cytryn: ".$cytryny."<br />";
echo "Ilość orzechów: ".$orzechy."<br /><br />";

define(CENAJABLEK, 1);
define(CENACYTRYN, 2);
define(CENAORZECHOW, 3);

echo "Cena jabłek: ".CENAJABLEK."<br />";
echo "Cena cytryn: ".CENACYTRYN."<br />";
echo "Cena orzechów: ".CENAORZECHOW."<br /><br />";

$koszt = CENAJABLEK * $jablka + CENACYTRYN * $cytryny + CENAORZECHOW * $orzechy;
echo "Wartość zamówienia: ".$koszt." złotych<br /><br />";

$otworz = fopen("zamowienia.txt", 'ab');
flock($otworz, LOCK_SH);
$tekst = "Ilość jabłek: ".$jablka. "\t Ilość cytryn: ".$cytryny. "\t Ilość orzechów ".$orzechy."\t";
$zapisz = fwrite($otworz, $tekst);
flock($otworz, LOCK_UN);
fclose($otworz);
if (!$zapisz)
{
echo "Wystąpił błąd podczas zapisu pliku!";
}
else
{
echo "Zamówienie zapisane.";
}
}
else
{
echo "Nie wypełniłeś wszystkich pól!";
}
?>


i działa musisz pobierac skad zmienne

po tej operacji napisał mi takie coś

Kod
Zamówienie przyjęte June 14, 2008, 8:25 pm

Ilość jabłek: 1
Ilość cytryn: 2
Ilość orzechów: 3

Cena jabłek: 1
Cena cytryn: 2
Cena orzechów: 3

Wartość zamówienia: 14 złotych

Zamówienie zapisane.


a w plik zamowienia.txt

Kod
Ilość jabłek: 1     Ilość cytryn: 2     Ilość orzechów 3
Itep
Ale w czym Twój kod różni się od mojego? smile.gif

Miałem wcześniej utworzony plik formularz.html, który wyglądał tak:

Kod
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
<title>Formularz zamówienia</title>
</head>
<body>
<form action="formularz.php" method=post>
<table>
<tr>
<td>Jabłek: </td>
<td><input type="text" name="jablka"></td>
</tr>
<tr>
<td>Cytryn: </td>
<td><input type="text" name="cytryny"></td>
</tr>
<tr>
<td>Orzechów: </td>
<td><input type="text" name="orzechy"></td>
</tr>
<tr>
<td><input type="submit" value="Dalej"></td>
</table>
</form>
</body>
</html>
matx132
po zrobieniu takiego czegoś mi działa na krasnalu:)

Kod
<?php
$data = date("F j, Y, g:i a");
$jablka=$_POST['jablka'];
$cytryny=$_POST['cytryny'];
$orzechy=$_POST['orzechy'];
if (isset($jablka) && isset($cytryny) && isset($orzechy))
{
echo "Zamówienie przyjęte ".$data."<br /><br />";
echo "Ilość jabłek: ".$jablka."<br />";
echo "Ilość cytryn: ".$cytryny."<br />";
echo "Ilość orzechów: ".$orzechy."<br /><br />";

define(CENAJABLEK, 1);
define(CENACYTRYN, 2);
define(CENAORZECHOW, 3);

echo "Cena jabłek: ".CENAJABLEK."<br />";
echo "Cena cytryn: ".CENACYTRYN."<br />";
echo "Cena orzechów: ".CENAORZECHOW."<br /><br />";

$koszt = CENAJABLEK * $jablka + CENACYTRYN * $cytryny + CENAORZECHOW * $orzechy;
echo "Wartość zamówienia: ".$koszt." złotych<br /><br />";

$otworz = fopen(dirname(__FILE__) . ''.'\zamowienia.txt', 'ab');
$tekst = "Ilość jabłek: ".$jablka. "\t Ilość cytryn: ".$cytryny. "\t Ilość orzechów ".$orzechy."\t";
$zapisz = fwrite($otworz, $tekst);
flock($otworz, LOCK_UN);
fclose($otworz);
if (!$zapisz)
{
echo "Wystąpił błąd podczas zapisu pliku!";
}
else
{
echo "Zamówienie zapisane.";
}
}
else
{
echo "Nie wypełniłeś wszystkich pól!";
}
?>
widmo17
Prosty przykład, z pominięciem filtrowania itd:
Kod
<?php
if($_POST["x"]!="" && $_POST["y"]!=""){
$plik=fopen("plik.txt","a");
$tekst="X = ".$_POST["x"]." & Y = ".$_POST["y"];
if(!fputs($plik,$tekst)){
  die("Błąd: Dane nie zostały zapisane...");
}
fclose($plik);
}else{
echo '<form method="post" action="">
          <input type="text" name="x">
          <br><input type="text" name="y">
          <br><input type="submit" value="zapisz">
         </form>';
}
?>
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.