Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]kod-problem odczytu danych w formularzu
Forum PHP.pl > Forum > Przedszkole
robin5hood
napisałem taki kod do formularza ksiega_wpisy.php
  1. <?php
  2. echo '<h1>Księga gości</h1>
  3. <form action=ksiega_zapisz.php>
  4.  Wpisz swój komentarz<br>
  5.  <textarea cols=40 rews=15 name=komentarz></textarea><br>
  6.  <input type="text" name=podpis>Podpis<br>
  7.  <input type="submit" value="Zapisz">
  8. </form>'
  9. ?>

a w pliku ksiega_zapisz.php taki kod
  1. <?php
  2. if(file_exist("ksiega_wpisy.php"))
  3. fopen("ksiega_wpisy.php","a")
  4. else 
  5. $plik=fopen("ksiega_wpisy.php","w")
  6. fwrite($plik,<hr>$komentarz<br>$podpis<br>)
  7. fclose($plik)
  8. ?>

co jest nie tak ? bo nie wiem
pablo114
w tym ksiega_zapisz.php podałes zeby dane z formularza wpisywał do pliku ksiega_wpisy.php
robin5hood
Co mam zmienić? bo trochę się pogubiłem sad.gif
krzmig
Najlepiej napisz co nie działa lub co działa nie tak jak trzeba ;]
l0ud
Zacznij od nauki podstaw PHP:
- linie kodu w PHP zakańczamy średnikami (poza warunkami pętlami etc)
- gdy w warunku jest więcej niż 1 akcja umieszczamy linie kodu pomiędzy { }
- ciągi tekstu umieszczamy w cudzysłowach, nie można od tak po prostu wstawić kodu html w php.

  1. <?php
  2. if(file_exists("ksiega_wpisy.php"))
  3. fopen("ksiega_wpisy.php","a");
  4. else {
  5. $plik=fopen("ksiega_wpisy.php","w");
  6. fwrite($plik,'<hr>'.$komentarz.'<br>'.$podpis.'<br>');
  7. fclose($plik);
  8. }
  9. ?>
robin5hood
nie wyświetla danych wpisany w formularzu po kliknieciu zapisz a formularzu?
pokazuje je w url a nie na przeglądarce
pablo114
jeszcze nie masz dopisanych zmiennych pobierajacych dane z formularza
musisz sobie dorobic jeszcze jeden plik np. ksiega.dat, w nim bedziesz zapisywał dane podane w formularzu

czyli bedzie tak:
ksiega_wpisy.php
  1. <?php
  2. echo '<h1>Księga gości</h1>
  3. <form action=ksiega_zapisz.php>
  4.  Wpisz swój komentarz<br>
  5.  <textarea cols=40 rews=15 name=komentarz></textarea><br>
  6.  <input type="text" name=podpis>Podpis<br>
  7.  <input type="submit" value="Zapisz">
  8. </form>'
  9. ?>


ksiega_zapisz.php
  1. <?php
  2. $komentarz = $_POST['komentarz'];
  3. $podpis = $_POST['podpis'];
  4.  
  5. if(file_exists("ksiega.dat"))
  6. fopen("ksiega.dat","a");
  7. else {
  8. $plik=fopen("ksiega.dat","w");
  9. fwrite($plik,'<hr>'.$komentarz.'<br>'.$podpis.'<br>');
  10. fclose($plik);
  11. }
  12. ?>
robin5hood
zmieniłem tak jak napisałeś, ale jak je wyswietlić bo nadal tylko są widoczne w urll?
pablo114
ale gdzie chcesz ty to wyswietlic
robin5hood
poprzez kliknięcie zapisz chciałbym je np zobaczyć w ten sposób
"twój komentarz to: i tu treść komentarza "
"twój podpis to:"
Crozin
ksiega_wpisy.php
  1. <h1>Księga gości</h1>
  2. <form action="ksiega_zapisz.php" method="post">
  3. Wpisz swój komentarz<br>
  4. <textarea cols=40 rews=15 name=komentarz></textarea><br>
  5. <input type="text" name=podpis>Podpis<br>
  6. <input type="submit" value="Zapisz">
  7. </form>
  8.  
  9. <h2>WPISY:</h2>
  10. <?php echo file_get_contents('ksiega.dat'); ?>
ksiega_zapisz.php
  1. <?php
  2. $komentarz = $_POST['komentarz'];
  3. $podpis = $_POST['podpis'];
  4.  
  5. if(!file_exists("ksiega.dat"))
  6. exit('Błąd!');
  7. else {
  8. $plik=fopen("ksiega.dat", "a");
  9. fwrite($plik, '<hr>'.$komentarz.'<br>'.$podpis.'<br>');
  10. fclose($plik);
  11. }
  12. ?>
robin5hood
ale nadal po kliknięciu przycisku zapisz nic się nie pojawia w przeglądarce sad.gif
Crozin
Na końcu ksiega_zapisz.php dodaj:
  1. <?php
  2. header('Location: ksiega_wpisy.php');
  3. ?>
robin5hood
wpisałem to co napisałeś. a potem wpisałem coś do formularza i nie pokazuje po kliknieciu zapisz niestety tych wpisów
pablo114
to zamiast tego co ci podał Crozin uzyj tego

  1. <?php
  2. header('Location: ksiega.dat');
  3. ?>
robin5hood
po wpisaniu tego pokazuje tylko cos takiego
><hr><br><br><hr><br><br><hr><br><br><hr><br><br>
co mam zmienić bo już sie załamuję sad.gif
Crozin
Sprawdź czy jak dodasz nowy komentarz to czy jego treść się pokaże. Bo teraz wygląda jakby zmienne $komentarz i $podpis były puste. Możesz sprawdzić ich wartośc przed dodaniem (var_dump" title="Zobacz w manualu PHP" target="_manual)
robin5hood
A jak mam to wisać w kodzie bo nie bardzo zrozumiałem (jestem początkujący w php)
Crozin
Księga_zapisz.php
  1. <?php
  2.  
  3. echo 'DANE Z FORMULARZA: <pre>' . print_r($_POST, 1) . '</pre><br /><br />';
  4.  
  5. $komentarz = $_POST['komentarz'];
  6. $podpis = $_POST['podpis'];
  7.  
  8. echo 'Dane przypisane do lokalnych zmiennych: ';
  9. var_dump($komentarz);
  10. var_dump($podpis);
  11.  
  12. if(!file_exists("ksiega.dat"))
  13. exit('Błąd!');
  14. else {
  15. $plik=fopen("ksiega.dat", "a");
  16. $insert = '<hr>'.$komentarz.'<br>'.$podpis.'<br>';
  17. fwrite($plik, $insert);
  18. fclose($plik);
  19.  
  20. echo 'Treść dopisana do pliku: ';
  21. var_dump($insert);
  22. }
  23.  
  24. //obecnie (poki masz te echo/var_dump()) ponizsza linia nie zadziala i wywali blad
  25. //ale gdy wywalisz w/w f-cje bedzie dzialac.
  26. header('Location: ksiega_wpisy.php');
  27.  
  28. ?>
likedat
Po pierwsze: kursy dla poczatkujacych, sa przyklejone na forum, polecam takze jakis kurs HTML winksmiley.jpg
Po drugie: wlacz obsluge bledow, a jesli jest wlaczona, to wklejaj je na forum wraz z pytaniem i kodem, ktory rzekomo nie dziala.

plik: ksiega_wpisy.php:
  1. <h1>Księga gości</h1>
  2. <?php if (isset($_GET['msg'])) echo($_GET['msg']); ?>
  3. <form action='ksiega_zapisz.php' method="post">
  4.  Wpisz swój komentarz<br>
  5.  <textarea cols=40 rows=15 name="komentarz"></textarea><br>
  6.  <input type="text" name="podpis">Podpis<br>
  7.  <input type="submit" value="Zapisz">
  8. </form>
  9. <?php echo file_get_contents('wpisy.dat'); ?>


plik: ksiega_zapisz.php
  1. <?php
  2. $plik = "wpisy.dat";
  3. $msg = "Wpis został dodany."
  4.  
  5. if(file_exists($plik)) {
  6. if (isset($_POST['podpis']) && !empty($_POST['podpis']) && isset($_POST['komentarz']) && !empty($_POST['komentarz'])) {
  7. $komentarz = $_POST['komentarz'];
  8. $podpis = $_POST['podpis']
  9.  
  10. $plik=fopen($plik,"a+");
  11. fwrite($plik,"<hr>".$komentarz."<br>".$podpis."<br>");
  12. fclose($plik);
  13. } else
  14. $msg = "Nie wszystkie pola zostały wypełnione.";
  15. } else
  16. $msg = "Wystąpił problem z bazą, spróbój później.";
  17.  
  18. header("Location: ksiega_wpisy.php?msg=".$msg);
  19. ?>
robin5hood
A mógłbyś napisac te kody poprawnie bo nadal nie działają mimo, że pozmieniałem , proszę
A efektu nie widze, zeby wyswietlało te wpisy sad.gif
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.