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
#2
ZLE ZLE ZLE ZLE ZLE.
Hasła administratora w tekstowym pliku?!
Co ty chcesz tworzyć nowe gadu-gadu?

Baza mysql i tylko to.

Pamiętam jak sam kiedyś tworzyłem strony w oparciu o pliki tekstowe. W domowych warunkach się to sprawdzało bo łatwo było edytować itp. Ale w praktyce to jest nie wygodne jak diabli. Samo odczytanie kilku linii pliku to problem. Z sensownym wyszukaniem danych już nie wspomnę. Ogólnie - NIE

Do problemu:
Jeżeli chcesz mieć 4 guziki wyślij to musisz mieć 4 formularze. W praktyce spokojnie można 1 formularz, można zrobić to ajaxem, w ogóle można czarować. Ale ty pozostań może przy tych 4 formularzach, bo to najłatwiejsze.
Teoretycznie wszystko jest w twoim kodzie dobrze. W sensie powinien działać. Ogólnie nie ma sensu rozbijać go na 2 części, bo przecież i tak sprawdzasz czy istnieje dana zmienna.
Myślę, że gdzieś jakiś babol się zakradł, ale ciężko to sprawdzić bez gotowych kodów. Może jakaś paczka czy coś?
Odpowiedz
#3
Chyba masz racje z tą bazą danych.
Posiadasz może kod na logowanie, który korzystałby z bazy danych? Ma to być proste logowanie, bez rejestracji.
Szukam już prawie 2H znalazłem kilka, ale jak na razie w każdym pojawiał się jakiś błąd ;/

Z góry dziękuję!
Odpowiedz
#4
co za problem samemu napisać takie proste logowanie? Pobierasz z formularza login hasło szukasz takiego usera w bazie i sprawdzasz czy dobre hasło do tego cookies i sesje i będzie git

http://phpkurs.pl/obsluga-sesji/

http://www.php.net/manual/pl/features.cookies.php

http://www.wykop.pl/ramka/12509/przydatne-zapytania-mysql/

http://www.eioba.pl/a/1ou/podstawy-tworzenia-zapytan-sql-mysql


próbuj coś napisać, a jak będziesz miał z czymś problem lub coś będzie nie jasne zawsze możesz przedstawić na forum.
Odpowiedz
#5
Dobra już znalazłem po kilku godzinach szukania, jeszcze drobne poprawki i myślę, że będzie dobrze.
Samemu takie coś napisać dla początkującego jest trudne. Problem jest taki, że aby się czegoś nauczyć trzeba na to poświecić czas, którego ja nie mam 6-14 w pracy a od 1 września do tego dojdzie jeszcze szkoła od 15-20. Poza tym jako Elektryk roboty mi nie brakuje Wink


Pozdrawiam!
Odpowiedz
#6
Nikt nie mówił, że będzie łatwo. Ale jak to mawia pewna znana osobistość - "nie ma opierdalania"
Odpowiedz
#7
(31-08-2011, 01:38)Ds3 napisał(a): Dobra już znalazłem po kilku godzinach szukania, jeszcze drobne poprawki i myślę, że będzie dobrze.
A my tę wiedzę wyssaliśmy z mlekiem swoich matek, nie?

(31-08-2011, 01:38)Ds3 napisał(a): Samemu takie coś napisać dla początkującego jest trudne. Problem jest taki, że aby się czegoś nauczyć trzeba na to poświecić czas, którego ja nie mam 6-14 w pracy a od 1 września do tego dojdzie jeszcze szkoła od 15-20. Poza tym jako Elektryk roboty mi nie brakuje Wink
Cool story, bro :]

Pzdr
Dobre samopoczucie w tym tygodniu sponsoruje cytat:
Cytat:Mogę tylko tylko na prawo i lewo ale na środek nie mogę.
Odpowiedz


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