Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Zapis z formularza i odczyt
#1
Posiada może ktoś kod PHP, w którym są np. 4 pola do pisania i 4 przyciski "zapisz"?
To co wpiszemy w formularz będzie wyświetlało się w innym pliku. Chodzi mi po prostu o zrobienie prostego panelu administratora, w którym będziemy mogli zmienić: adres e-mial, nazwa e-miala, nazwa stopki, słowa kluczowe strony i nazwę strony głównej.

Próbowałem zrobić to na tym kodzie:
Formularz:
Kod:
<?php
/*********************************************
* plik formularz.php
*********************************************/

$pole1 = trim($_POST['pole1']);
$pole2 = trim($_POST['pole2']);

if(empty($pole1) and empty($pole2)) {
    
// prosty formularz zawierający dwa pola
echo '<form action="" method="post">
<input type="text" name="pole1" style="width: 200px;" /><br />
<textarea name="pole2" style="width: 200px; height: 100px;">
</textarea><br />
<input type="submit" value="Zapisz" />
</form>';
}
else {
    
    // dane pochodzące z formularza
    $dane = $pole1."`".$pole2."\n";
    // przypisanie zmniennej $file nazwy pliku
    $file = "baza.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 "Dane zostały zapisane!<br />";
    echo "<a href=\"podglad.php\">Zobacz wpisane dane</a>";
}

?>

Odczyt:
Kod:
<?php
/*********************************************
* plik podglad.php
*********************************************/

// wczytanie zawartości pliku do tablicy
$file = file("baza.txt");
// przechodzimy przez tablicę za pomocą pętli foreach
foreach($file as $value) {
// rozbijamy poszczególne linie na części
$exp = explode("`",$value);
// wyświetlamy rozbity tekst
echo $exp[0]."<br />".$exp[1]."<hr />";
}

?>

Jednak tu jest taki problem, że przycisk "zapisz" oddziałuje na 2 pola, a gdy umieści się go pod 1 polem to i tak oddziałuje na 2 pola.

Próbowałem trochę ten kod zmienić:
Podzieliłem go na 2 części (na każdy formularz z osobna)
Kod:
<?php
/*********************************************
* plik formularz.php
*********************************************/

$pole2 = trim($_POST['pole2']);

if(empty($pole2)) {
    
// prosty formularz zawierający dwa pola
echo '<form action="" method="post">
<input type="text" name="pole2" style="width: 200px;" /><br />
<input type="submit" value="Zapisz" />
</form>';
}
else {
    
    // dane pochodzące z formularza
    $dane1 = $pole2."\n";
    // przypisanie zmniennej $file nazwy pliku
    $file = "baza.txt";
    // uchwyt pliku, otwarcie do dopisania
    $fp = fopen($file, "a");
    // blokada pliku do zapisu
    flock($fp, 2);
    // zapisanie danych do pliku
    fwrite($fp, $dane1);
    // odblokowanie pliku
    flock($fp, 3);
    // zamknięcie pliku
    fclose($fp);
    
    echo "Dane zostały zapisane!<br />";
    echo "<a href=\"podglad.php\">Zobacz wpisane dane</a>";
}

?>

I drugi:
Kod:
<?php
/*********************************************
* plik formularz.php
*********************************************/

$pole1 = trim($_POST['pole1']);


if(empty($pole1)) {
    
// prosty formularz zawierający dwa pola
echo '<form action="" method="post">
<input type="text" name="pole1" style="width: 200px;" /><br />
<input type="submit" value="Zapisz" />
</form>';
}
else {
    
    // dane pochodzące z formularza
    $dane = $pole1."\n";
    // przypisanie zmniennej $file nazwy pliku
    $file = "baza.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 "Dane zostały zapisane!<br />";
    echo "<a href=\"podglad.php\">Zobacz wpisane dane</a>";
}

?>


Odczyt wygląda tak:
Kod:
<?php
/*********************************************
* plik podglad.php
*********************************************/

// wczytanie zawartości pliku do tablicy
$file = file("baza.txt");
// przechodzimy przez tablicę za pomocą pętli foreach
foreach($file as $value) {
// rozbijamy poszczególne linie na części
$exp = explode("`",$value);
}
// wyświetlamy rozbity tekst
?>
<?php
/*********************************************
* plik podglad.php
*********************************************/

// wczytanie zawartości pliku do tablicy
$file = file("baza.txt");
// przechodzimy przez tablicę za pomocą pętli foreach
foreach($file as $value) {
// rozbijamy poszczególne linie na części
$exp = explode("`",$value);
}
// wyświetlamy rozbity tekst
?>
Kod:
<?php echo $exp[1]; ?>
<?php echo $exp[0]; ?>

I tu pojawił się też problem.
Gdy coś wpisze w formularzu pierwszym to drugi formularz też się resetuje, a w zasadzie wydaje mi się, że usuwa zawartość pliku txt.

Męczę się z tym od wczoraj i już nie mam pojęcia jak takie proste menu zrobić.


Z góry dziękuję!
Odpowiedz


Wiadomości w tym wątku
Zapis z formularza i odczyt - przez Ds3 - 28-08-2011, 20:31
RE: Zapis z formularza i odczyt - przez Kartofelek - 29-08-2011, 14:15
RE: Zapis z formularza i odczyt - przez Ds3 - 30-08-2011, 02:00
RE: Zapis z formularza i odczyt - przez hieroshima - 30-08-2011, 13:20
RE: Zapis z formularza i odczyt - przez Ds3 - 31-08-2011, 01:38
RE: Zapis z formularza i odczyt - przez Pedro84 - 31-08-2011, 06:24
RE: Zapis z formularza i odczyt - przez Kartofelek - 31-08-2011, 03:31

Podobne wątki…
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Prosze o pomoc - kolor formularza kontaktowego puchallowen 3 4,017 08-11-2014, 14:40
Ostatni post: Kartofelek
  ponowne wysłanie formularza przy odświeżeniu camelrafal 6 6,043 02-10-2012, 20:24
Ostatni post: Pedro84
  Przekierowanie po wyslaniu formularza marti 7 4,228 23-09-2012, 15:01
Ostatni post: camelrafal
  PHPMailer - dodanie opcji wyboru tematu w skrypcie formularza kontaktowego [PHP],[JS] Apikshos 2 3,238 21-01-2012, 00:27
Ostatni post: Apikshos
  Zapis do już istniejącego pliku i wyświetlenie nowej zawartości Ds3 2 2,871 28-08-2011, 03:18
Ostatni post: Kartofelek

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości
Sponsorzy i przyjaciele
SeoHost.pl