Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Formularz(czytanie pliku txt na stronie)i rozmieszczanie odnosnikow
Forum PHP.pl > Forum > Przedszkole
iPrezes
Witam,
tworze wlasny formularz na informatyke i mam kilka problemow, ktore mysle z wasza pomoca rozwiaze...
Potrzebuję mianowicie
- Aby na stronie glownej klikajac w odnosnik o nazwie "Lehrer" mozna bylo czytac wpisane dane jak i je edytowac i zapisywac.
- I prosilbym o kod za pomoca ktorego bede mogl rozmieszczac odsylacze do nastepnej strony tam gdzie chcę...

Tu podam moje 3 Kody 1 do strony glownej 2 do formularzu 3 do odczytywania danych po wyslaniu formularzu
1. Str. Glowna
Kod
</php
><center><text><b><font size="+5"><font face="Kartika">Formular</font></font></b></text><center>
<P>
<P>
<P>
<a href="http://localhost/Daniel/Kupa.php">Schueler</a>
<a href="http://localhost/Daniel/plik do czytania wpisanych danych do pliku txt">Lehrer</a>
<P>
<P>
<br>
</center>

<body onLoad="Formular" bgcolor="" style="background: url(images/imgres.png);" >

</form
></php>

2. Formularz:
Kod
<html>
<head>
<head>
    <meta name="Author" content="Daniel Zimek" />
<form action="Formularabgesendet.php" method="POST">
<center><text><b><font size="+5"><font face="Kartika">Formular</font></font></b></text><center>
</head>
<body onLoad="Formular" bgcolor="" style="background: url(images/imgres.png);" >

<P>

<P>
<P>

<font size="+2"><font face="Kartika">Vorname:</font> <input type=text name="Vorname"/>
<font size="+2"><font face="Kartika">Nachname:</font> <input type=text name="Nachname"/>
<font size="+2"><font face="Kartika">Klasse:</font> <input type=text name="Klasse"/>
<P>
<P>
<P>
<br><B><font size="+2"><font face="Kartika">Ertswahl</font><B></br>
<P>
<line width="20%">
<div><font size="+1"><font face="Kartika">W1:</font>
<select name="Fach1">
    <option value="">                </option>      
    <option value="DSP">DSP</option>
    <option value="Psychologie">Psychologie</option>
    <option value="Kunst">Kunst</option>
        <option value="Technik">Technik</option>
</select>
<div><font size="+1"><font face="Kartika">W2 :</font>
<select name="Fach2">  
    <option value="">                </option>
    <option value="Sport">Sport</option>
    <option value="Chemie">Chemie</option>
    <option value="Informatik">Informatik</option>
        <option value="Biologie">Biologie    </option>
</select>
<div><font size="+1"><font face="Kartika">W3 :</font>
<select name="Fach3">  
    <option value="">                </option>
    <option value="Philosophie">Philosophie</option>
    <option value="Geschichte">Geschichte</option>
    <option value="Geographie">Geographie</option>
    <option value="Stretschlichtung">Stretschlichtung</option>
</select>
<P>
<line align="RIGHT WIDTH=50%">
<br><B><font size="+2"><font face="Kartika">Zweitwahl</font><B><br>
<div width="">
<div><font size="+1"><font face="Kartika">W1 :</font>
<select name="Fach4">
    <option value="">                  </option>
    <option value="Mathematik">Mathematik</option>
    <option value="Deutsch">Deutsch</option>
   <option value="Spanisch">Spanisch</option>
    <option value="Polnisch">Polnisch</option>
</select>
<div><font size="+1"><font face="Kartika">W2 :</font>
<select name="Fach5">  
    <option value="">                </option>
    <option value="Russisch">Russisch</option>
    <option value="Tuerkisch">Tuerkisch</option>
    <option value="Latein">Latein</option>
    <option value="Chor">Chor</option>
</select>
<div><font size="+1"><font face="Kartika">W3 :</font>
<select name="Fach6">
    <option value="">                </option>
    <option value="Physik">Physik</option>
    <option value="Englisch">Englisch</option>
    <option value="PGW">PGW</option>
        <option value="Technik">Technik</option>
</select>
</P>

<div align=center>
<br><font color="#FF0000">Hinweis</font>: Einverstaendnis der Eltern: <input type=checkbox name="Einverstaendnis"/><br/>
  <input type="submit" value="Senden" />
<form action="">
    <input type="reset" value="Reset" />
</form>
  <form action="adres" method="post" onReset="if (!confirm('Wollen sie wirklich das Loeschen?')) return false">...</form>
<a href="http://localhost/Daniel/startseite.php">Zurueck zur Startseite</a>

<P>

<P>
<P>
Zahl der Besucher: <br><? $type = "text"; include("count.php"); ?></br>
</form>
<a href="http://gymhamm.de/2010/">GymHamm Startseite</a>
</body>
</html>

</php>

3. Plik pokazujacy wpisane dane po wypelnieniu formularzu i zapisujacy je w pliku txt.
Kod
<center>
<body onLoad="Formular" bgcolor="" style="background: url(images/imgres.png);" >
<center><text><b><font size="+5"><font face="Kartika">Sie haben gewaehlt:</font></font></b></text><center>
<?php

print($_POST['Vorname']).'<br /><br />';
print($_POST['Nachname']).'<br /><br />';
print($_POST['Klasse']).'<br /><br />';
?>
<center><text><b><font size="+3"><font face="Kartika">Erstwahl:</font></font></b></text><center>
<?php
print($_POST['Fach1']).'<br /><br />';
print($_POST['Fach2']).'<br /><br />';
print($_POST['Fach3']).'<br /><br />';
?>
<center><text><b><font size="+3"><font face="Kartika">Zweitwahl:</font></font></b></text><center>
<?php
print($_POST['Fach4']).'<br /><br />';
print($_POST['Fach5']).'<br /><br />';
print($_POST['Fach6']).'<br /><br />';

   // przypisanie zmniennej $file nazwy pliku
    $file = "eingaben.txt";
    // uchwyt pliku, otwarcie do dopisania
    $fp = fopen($file, "a");
    flock($fp, 2);
    flock($fp, 3);
    fclose($fp);
?>

<a href="http://localhost/Daniel/Kupa.php">Zurueck</a>
</center>

Dzieki za pomoc z gory
emajl22
nie utrudniaj sobie życia, po co?

zapoznaj się z bazami danych mysql - lepiej, szybciej i dużoooo łatwiej
Daiquiri
Nic nie stoi na przeszkodzie, aby połączyć PHP i MySQL. Na gotowy skrypt nie licz, bo na forum nie odrabiamy prac domowych. Tutaj możesz liczyć jedynie na pomoc smile.gif. W jaki sposób przechowujesz dane? W osobnych plikach txt czy wszystko w jednym?

I jeszcze jedno: popraw temat na jakiś sensowniejszy. Problemiki to ma prawie tutaj każdy.
iPrezes
Wiem wiem wiem....tylko jak szukam kodu i znalezc nie moge to ktos mi nie moze go tu podac?
Zmienilem to co chciales ;]
I takze zmienilem to co potrzebuje!!! Pilne musze oddac to do 18:15!!!!!!!!!!!
Daiquiri
Powtarzam nie odrabiamy zadań domowych. Tematu nie zamykam tylko z racji tego, że sam coś już napisałeś.
Cytat
- Aby na stronie glownej klikajac w odnosnik o nazwie "Lehrer" mozna bylo czytac wpisane dane jak i je edytowac i zapisywac.
Utwórz odnośnik do postrony, w której:
- dla wczytania wykonasz operację wczytania zawartości z pliku,
- dla edycji (wczytasz te dane z pliku do formularza),
- dla zapisu obsłużysz wysyłane dane przez formularz powyżej i dokonasz ponownego zapisu do pliku,

Cytat
- I prosilbym o kod za pomoca ktorego bede mogl rozmieszczac odsylacze do nastepnej strony tam gdzie chcę...
Nie rozumiem.

Manual to Twój przyjaciel smile.gif
iPrezes
Teraz dodalem skrypt zeby zapisywalo ale w lini 36 mam niby blad
  1. <center>
  2. <body onLoad="Formular" bgcolor="" style="background: url(images/imgres.png);" >
  3. <center><text><b><font size="+5"><font face="Kartika">Sie haben gewaehlt:</font></font></b></text><center>
  4. <?php
  5.  
  6. print($_POST['Vorname']).'<br /><br />';
  7. print($_POST['Nachname']).'<br /><br />';
  8. print($_POST['Klasse']).'<br /><br />';
  9. ?>
  10. <center><text><b><font size="+3"><font face="Kartika">Erstwahl:</font></font></b></text><center>
  11. <?php
  12. print($_POST['Fach1']).'<br /><br />';
  13. print($_POST['Fach2']).'<br /><br />';
  14. print($_POST['Fach3']).'<br /><br />';
  15. ?>
  16. <center><text><b><font size="+3"><font face="Kartika">Zweitwahl:</font></font></b></text><center>
  17. <?php
  18. print($_POST['Fach4']).'<br /><br />';
  19. print($_POST['Fach5']).'<br /><br />';
  20. print($_POST['Fach6']).'<br /><br />';
  21.  
  22.  
  23. // wczytanie starych danych
  24.  
  25. // otwarcie pliku do odczytu
  26. $fp = fopen("eingaben.txt", "r");
  27.  
  28. //odczytanie danych
  29. $stareDane = fread($fp, filesize("eingaben.txt"));
  30.  
  31. // zamknięcie pliku
  32. fclose($fp)
  33.  
  34. // stworzenie nowych danych
  35.  
  36. $noweDane = $Vorname."`".$Nachname."`".$Klasse."\n".$_POST['Fach1']."\n".$_POST['Fach2']."\n".$_POST['Fach3']."\n".$_POST['Fach4']."\n".$_POST['Fach5']."\n".$_POST['Fach6'];
  37. $noweDane .= $stareDane;
  38.  
  39. // zapisanie nowych danych
  40.  
  41. // otwarcie pliku do zapisu
  42. $fp = fopen("eingaben.txt", "w");
  43.  
  44. // zapisanie danych
  45. fputs($fp, $noweDane);
  46.  
  47. // zamknięcie pliku
  48. fclose($fp);
  49.  
  50. ?>
  51. echo '<a href="Formularabgesendet.php">Guck dir dein abgespeichertes Formular an.</a>';
  52. <a href="http://localhost/Daniel/Kupa.php">Zurueck</a>
  53. </center>
Daiquiri
Jaki błąd? Tylko nie mów, że parse error. Gdzie masz średnik po fclose($fp)?
iPrezes
[/php]
Cytat(iPrezes @ 17.02.2011, 16:24:33 ) *
Teraz dodalem skrypt zeby zapisywalo ale w lini 36 mam niby blad
  1. <center>
  2. <body onLoad="Formular" bgcolor="" style="background: url(images/imgres.png);" >
  3. <center><text><b><font size="+5"><font face="Kartika">Sie haben gewaehlt:</font></font></b></text><center>
  4. <?php
  5.  
  6. print($_POST['Vorname']).'<br /><br />';
  7. print($_POST['Nachname']).'<br /><br />';
  8. print($_POST['Klasse']).'<br /><br />';
  9. ?>
  10. <center><text><b><font size="+3"><font face="Kartika">Erstwahl:</font></font></b></text><center>
  11. <?php
  12. print($_POST['Fach1']).'<br /><br />';
  13. print($_POST['Fach2']).'<br /><br />';
  14. print($_POST['Fach3']).'<br /><br />';
  15. ?>
  16. <center><text><b><font size="+3"><font face="Kartika">Zweitwahl:</font></font></b></text><center>
  17. <?php
  18. print($_POST['Fach4']).'<br /><br />';
  19. print($_POST['Fach5']).'<br /><br />';
  20. print($_POST['Fach6']).'<br /><br />';
  21.  
  22.  
  23. // wczytanie starych danych
  24.  
  25. // otwarcie pliku do odczytu
  26. $fp = fopen("eingaben.txt", "r");
  27.  
  28. //odczytanie danych
  29. $stareDane = fread($fp, filesize("eingaben.txt"));
  30.  
  31. // zamknięcie pliku
  32. fclose($fp)
  33.  
  34. // stworzenie nowych danych
  35.  
  36. $noweDane = $Vorname."`".$Nachname."`".$Klasse."\n".$_POST['Fach1']."\n".$_POST['Fach2']."\n".$_POST['Fach3']."\n".$_POST['Fach4']."\n".$_POST['Fach5']."\n".$_POST['Fach6'];
  37. $noweDane .= $stareDane;
  38.  
  39. // zapisanie nowych danych
  40.  
  41. // otwarcie pliku do zapisu
  42. $fp = fopen("eingaben.txt", "w");
  43.  
  44. // zapisanie danych
  45. fputs($fp, $noweDane);
  46.  
  47. // zamknięcie pliku
  48. fclose($fp);
  49.  
  50. ?>
  51. echo '<a href="Formularabgesendet.php">Guck dir dein abgespeichertes Formular an.</a>';
  52. <a href="http://localhost/Daniel/Kupa.php">Zurueck</a>
  53. </center>

Juz zmienilem cod znalazlem rozwiazanie z tej stronki co podales polaczylem i wyszlo ze mi zapisuje do pliku
  1. <!--c1--><div class='codetop'>Kod</div><div class='codemain'><!--ec1-->print($_POST['Vorname']).'<br /><br />';
  2. print($_POST['Nachname']).'<br /><br />';
  3. print($_POST['Klasse']).'<br /><br />';
  4. ?>
  5. <center><text><b><font size="+3"><font face="Kartika">Erstwahl:</font></font></b></text><center>
  6. <?php
  7. print($_POST['Fach1']).'<br /><br />';
  8. print($_POST['Fach2']).'<br /><br />';
  9. print($_POST['Fach3']).'<br /><br />';
  10. ?>
  11. <center><text><b><font size="+3"><font face="Kartika">Zweitwahl:</font></font></b></text><center>
  12. <?php
  13. print($_POST['Fach4']).'<br /><br />';
  14. print($_POST['Fach5']).'<br /><br />';
  15. print($_POST['Fach6']).'<br /><br />';
  16. $dane = "\n".$_POST['Vorname']."\n".$_POST['Nachname']."\n".$_POST['Klasse']."\n".$_POST['Fach1']."\n".$_POST['Fach2']."\n".$_POST['Fach3']."\n".$_POST['Fach4']."\n".$_POST['Fach5']."\n".$_POST['Fach6'];
  17.     $file = "eingaben.txt";
  18.     $fp = fopen($file, "a");
  19.     flock($fp, 2);
  20.     fwrite($fp, $dane);
  21.     flock($fp, 3);
  22.     fclose($fp);<!--c2--></div><!--ec2-->

Rowniez zrobilem ze mi pokazuje wpisana tresc wczesniej
  1. <!--c1--><div class='codetop'>Kod</div><div class='codemain'><!--ec1--><?php
  2. $fp = fopen('eingaben.txt', 'r');
  3. if (!$fp) {
  4.     echo 'Nie można otworzyć plik.txt';
  5. }
  6. while (false !== ($char = fgetc($fp))) {
  7.     echo "$char\n";
  8. }
  9. ?><!--c2--></div><!--ec2-->

Teraz mi pozostalo abym dodal opcje edytuj i zapisz moglbys podpowiedziec ktorymi funkcjami bym to mogl zdzialac?
Daiquiri
Zbuduj zwykły formularz z polem np. textarea i przyciskiem. Jeżeli zawartość Twojego pliku zapisałeś do zmiennej $zawartosc to w formularzu, w polu textarea wyświetlasz tę zmienną np.
  1. <textarea><?php echo $zawartosc; ?> </textarea>
w ten sposób budujesz właśnie formularz do edycji. Potem obsługujesz wciśnięcie przycisku i robisz zapis do pliku tych danych, które zostały zmienione w polu textarea.

Możesz oczywiście rozbudować formularz o dowolną liczbę pól i do nich wczytać odpowiednie treści.
iPrezes
Cytat(Daiquiri @ 17.02.2011, 17:15:16 ) *
Zbuduj zwykły formularz z polem np. textarea i przyciskiem. Jeżeli zawartość Twojego pliku zapisałeś do zmiennej $zawartosc to w formularzu, w polu textarea wyświetlasz tę zmienną np.
  1. <textarea><?php echo $zawartosc; ?> </textarea>
w ten sposób budujesz właśnie formularz do edycji. Potem obsługujesz wciśnięcie przycisku i robisz zapis do pliku tych danych, które zostały zmienione w polu textarea.

Możesz oczywiście rozbudować formularz o dowolną liczbę pól i do nich wczytać odpowiednie treści.

<form action="eingaben.txt" method="POST">
<textarea>
<?php

$fp = fopen('eingaben.txt', 'r');
if (!$fp) {
echo 'Nie można otworzyć plik.txt';
}
while (false !== ($char = fgetc($fp))) {
echo "$char\n";
}

?>
</textarea>
<input type="submit" value="Senden" />

Mam wtedy area ale nie wyswietla sie w niej to co na w srodku poniedzy textare jest i jak wysylam do eingaben.txt to jest oczywiste ze nie wysle chyba nie?
Daiquiri
Szczerze powiedziawszy nie rozumiem Cię. Jeżeli chcesz w jednym polu formularza edytować to, co masz w pliku to pobierz wszystkie dane do jakiejś zmiennej np. $zmienna. Wtedy echo $zmienna wyświetli Ci zawartość tego pliku. Jeżeli wrzucisz ją w textarea w formularzu to otrzymasz formularz z danymi do edycji.
iPrezes
Cytat(Daiquiri @ 17.02.2011, 17:31:34 ) *
Szczerze powiedziawszy nie rozumiem Cię. Jeżeli chcesz w jednym polu formularza edytować to, co masz w pliku to pobierz wszystkie dane do jakiejś zmiennej np. $zmienna. Wtedy echo $zmienna wyświetli Ci zawartość tego pliku. Jeżeli wrzucisz ją w textarea w formularzu to otrzymasz formularz z danymi do edycji.

Za pomoca tego kodu:
  1. <!--c1--><div class='codetop'>Kod</div><div class='codemain'><!--ec1--><body onLoad="Formular" bgcolor="" style="background: url(images/imgres.png);" >
  2. <form action="eingaben.txt" method="POST">
  3.  
  4. <center>
  5. <center><text><b><font size="+5"><font face="Kartika">Editiren von Formularloesungen:</font></font></b></text><center>
  6. <textarea>
  7. <?php
  8.  
  9. $fp = fopen('eingaben.txt', 'r');
  10. if (!$fp) {
  11.     echo 'Nie można otworzyć plik.txt';
  12. }
  13. while (false !== ($char = fgetc($fp))) {
  14.     echo "$char";
  15. }
  16.  
  17. ?>
  18. </textarea>
  19.   <br><input type="submit" value="Veraendern" /></br>
  20. <br><a href="http://localhost/Daniel/startseite.php">Zurueck zur Startseite</a></br>
  21. </center><!--c2--></div><!--ec2-->

moge widziec na stronie text z .txt i moge go zedytowac ,lecz klikajac wyslij, wysyla mi to do pliku eingaben.txt czyli do tego samego, lecz dane sie nie zmieniaja gdy je zmieniam... moze dlatego ze za pomcoa tego kodu nie da sie nadpisywac pliku?
Daiquiri
Ale Ty przecież nigdzie nie obsługujesz zapisu w formularzu. Musisz jeszcze dokonac zapisu na pliku jeżeli przycisk został wciśnięty, np.
  1. if ($_POST['przycisk'] == "Veraendern" ) {
  2. // tutaj dokonujemy zapisu do pliku
  3. }
  4.  
W formularzu dla pola tekstowego musiałbyś dodać nazwę np. <textarea name="zawartosc"> i dla submit też (dla przykładu wyżej) name="przycisk", a action="eingaben.txt" w formularzu nie będzie Ci raczej potrzebne, bo chcesz zostać na tej samej stronie.
iPrezes
mozesz mi gotowe podac mam 25 minut a musze to jeszcze ozdobic ;/ prosze jedyna rzecz tongue.gif
i jak to nie posiadam jak posiadam
<form action="eingaben.txt" method="POST">
Daiquiri
Nie odrabiamy tutaj prac domowych. Zasadniczo napisałam Ci co masz zrobić:
  1. <?php
  2. if ($_POST['przycisk'] == "Veraendern" ) {
  3. echo "tutaj dokonujemy zapisu do pliku";
  4. // np. korzystasz z fwrite()
  5. // do pliku zapisujesz zawartość $_POST['zawartosc']
  6. }
  7. ?>
  8. <form method="POST" action="">
  9. <center>
  10. <center><text><b><font size="+5"><font face="Kartika">Editiren von Formularloesungen:</font></font></b></text><center>
  11. <textarea name="zawartosc">
  12. <?php
  13.  
  14. $fp = fopen('eingaben.txt', 'r');
  15. if (!$fp) {
  16. echo 'Nie można otworzyć plik.txt';
  17. }
  18. while (false !== ($char = fgetc($fp))) {
  19. echo "$char";
  20. }
  21.  
  22. ?>
  23. </textarea>
  24. <br><input type="submit" value="Veraendern" name="przycisk" />
  25. </form>


fwrite - masz w manualu.
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.