php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2007

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 07.11.2005, 09:56  
Gast
 
Beiträge: n/a
Standard Datei schreibt sich automatisch beim Öffnen des Formulars

Hallo PHP.de User,

Ich habe ein Formular zum schreiben/erstellen einer essen.txt Datei erstellt. Damit möchte ich für eine Gaststätte bei uns eine Datei erstellen um ein Tagesgericht anzeigen zu lassen.

Wenn man im Formular dasGericht und den Preis einträgt, dann wird die Datei essen.txt geschrieben. Bei der nächsten eingabe wird diese überschrieben, sodass dann wieder ein neues Tagesgericht erscheint.

Folgendes Problem hab ich:
Leider ist es so, das die Datei essen.txt schon geschrieben wird, wenn ich das Formular öffne. Auch vor dem absenden.
Das hat zur Folge, das wenn man das Formular versehentlich öffnet und wieder schließt, dann das vorhande Gericht gelöscht wird und eine Leere Seite zu sehen ist.


Frage:
Wie kann ich erreichen, das die Datei erst nach anklicken des "Absenden" Buttons überschrieben wird und nict beim öffnen der Formularseite?


Der PHP-Code den ich derzeit benutze lautet:

<?php
$fp=fopen("essen.txt",w);
fwrite ($fp, "<span class=grs>$essen</span>$preis
<span class=t3>mit $beilagea
und $beilageb
</span>");
fclose($fp);
?>

<form method="POST" action="essen.php">
<td>Das Gericht: </td><td><input type="text" name="essen" size=
...............
...............


Kann mir jemand weiterhelfen und den Code so ändern, das mein Problem gelöst ist?
Ich danke im Voraus.

Grüße
Mario der Geiseltaler
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 07.11.2005, 10:50  
Gast
 
Beiträge: n/a
Standard

klaro

PHP-Code:

<?php 
function form(){
    echo 
'<form method="POST" action="essen.php"> 
             <td>Das Gericht: </td><td><input type="text" name="essen" size= 
             ............... 
             ...............
             <td>eintragen </td><td><input type="submit" name="eintragen" value="Lecker Essen"></td>'
;
}

function 
schreiben(){
     
$fp=fopen("essen.txt",w); 
     
fwrite ($fp"<span class=grs>$essen</span>$preis
[b] <span class=t3>mit $beilagea
und $beilageb[/b]</span>"
); 
    
fclose($fp); 
    unset(
$_POST["eintragen"];
    
HEADER("LOCATION:http://".$_SERVER['SERVER_NAME'].
                                              
dirname($_SERVER['REQUEST_URI']."/essen.php");
}

if(isset(
$_POST["eintragen"])){
    
schreiben();
}else{
    
form();
}
Sollte so klappen , notfalls übergibst dann einfach noch die notwendigen Daten an die Funktion schreibe weiter.
Normal sollte er aber die $_POST Elemente behalten.
 
Alt 07.11.2005, 15:04  
Gast
 
Beiträge: n/a
Standard

Vielen Dank für die schnelle Hilfe, aber leider bekomme ich da nur eine Fehlermeldung.

Parse error: parse error, unexpected ';', expecting ',' or ')' in /home/www/htdocs/familie-pforte.de/sonne/essen.php on line 51
Zeile 51 mache ich kenntlich mit --- >>> Zeile 51

Ich schreibe hier noch einmal den gesamten Code der Tabelle. Dieses mal komplett. Vieleicht entdeckt jemand noch einen Fehler warum sich die Seite nicht zeigt.
Ich bin leider noch nicht so fit mit PHP das ich das allein finde. Man vergebe mir deshalb.

Hier der Code:


Zitat:
<table width=400><tr><td>Bezeichnung:</td><td>Eingabefeld:</td><td>Bsp.:</td></tr><tr>

<?php
function form(){
echo '<form method="POST" action="essen.php">
<td>Das Gericht: </td><td>
<input type="text" name="essen" size="20"></td><td>Seelachsfilet</td></tr><tr>
<td>Beilage 1: </td><td>
<input type="text" name="beilagea" size="20"></td><td>Kroketten</td></tr><tr>
<td>Beilage 2: </td><td>
<input type="text" name="beilageb" size="20"></td><td>Beilage</td></tr><tr>
<td>Preis: </td><td>
<select name="preis">
<option value="1" selected>1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
</select>,00 Euro</td><td>5



<td>eintragen </td><td><input type="submit" name="eintragen" value="Lecker Essen"></td>';

}

function schreiben(){
$fp=fopen("essen.txt",w);
fwrite ($fp, "<span class=grs>$essen</span>$preis
<span class=t3>mit $beilagea
und $beilageb
</span>");
fclose($fp);
unset($_POST["eintragen"]; --- >>> Zeile 51
HEADER("LOCATION:http://".$_SERVER['SERVER_NAME'].
dirname($_SERVER['REQUEST_URI']."/sonne/essen.php");
}

if(isset($_POST["eintragen"])){
schreiben();
}else{
form();
}

</tr></table>
Die komplette Seitenurl für das Formular lautet: www.familie-pforte.de/sonne/essen.php

Es wäre nett, wennnoch einmal jemand etwas Zeit opfert um zu helfen, ich gebe auch mal einen aus. Versprochen

Mario der Geiseltaler
 
Alt 07.11.2005, 15:51  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Na in der Zeile ist ein Syntax Fehler. Und bevor du schreibst du findest ihn nicht, guck nochmal ganz genau drauf! Denn wenn du ihn nicht findest solltest du mit PHP garnicht erst anfangen, mach am besten den PC aus und geh zur Strassenreinigung.
Zergling-new ist offline  
Alt 07.11.2005, 16:24  
Erfahrener Benutzer
 
Registriert seit: 23.12.2004
Beiträge: 210
PHP-Kenntnisse:
Anfänger
Bonaparte
Bonaparte eine Nachricht über ICQ schicken
Standard

Zitat:
Zitat von Zergling
Na in der Zeile ist ein Syntax Fehler. Und bevor du schreibst du findest ihn nicht, guck nochmal ganz genau drauf! Denn wenn du ihn nicht findest solltest du mit PHP garnicht erst anfangen, mach am besten den PC aus und geh zur Strassenreinigung.
Du bist eine sehr große Hilfe!

Ich hätte da diese Lösung für dich.
Code:
<?php 
echo '<form method="POST" action="essen.php"> 
<td>Das Gericht: </td><td> 
<input type="text" name="essen" size="20"></td><td>Seelachsfilet</td></tr><tr> 
<td>Beilage 1: </td><td> 
<input type="text" name="beilagea" size="20"></td><td>Kroketten</td></tr><tr> 
<td>Beilage 2: </td><td> 
<input type="text" name="beilageb" size="20"></td><td>Beilage</td></tr><tr> 
<td>Preis: </td><td> 
<select name="preis"> 
<option value="1" selected>1</option> 
<option value="2">2</option> 
<option value="3">3</option> 
<option value="4">4</option> 
<option value="5">5</option> 
<option value="6">6</option> 
<option value="7">7</option> 
<option value="8">8</option> 
<option value="9">9</option> 
</select>,00 Euro</td><td>5 


 
<td>eintragen </td><td><input type="submit" name="eintragen" value="Lecker Essen"></td>
</tr></table>';

if(isset($_POST["eintragen"])){
$fp=fopen("essen.txt",w); 
fwrite ($fp, "<span class=grs>$essen</span>$preis
 <span class=t3>mit $beilagea 
und $beilageb</span>"); 
fclose($fp);
echo '<span class=grs>'.$essen.'</span> '.$preis.'
 <span class=t3>mit '.$beilagea.'
und '.$beilageb.'</span>';
}
?>
__________________
MfG David
axinio Internet Marketing - professionelle Suchmaschinenoptimierung
Bonaparte ist offline  
Alt 07.11.2005, 16:29  
Erfahrener Benutzer
 
Benutzerbild von DER_Brain
 
Registriert seit: 18.04.2005
Beiträge: 1.541
PHP-Kenntnisse:
Fortgeschritten
DER_Brain ist zur Zeit noch ein unbeschriebenes Blatt
Standard

fehlt eh einfach nur die Klammer.. dann würds eh hinhauen!

bin aber auch dafür, dass man so kleinigkeiten selbst finden sollte.. aber hin und wieder sieht man den wald vor lauter bäumen nicht

mfg Andi
DER_Brain ist offline  
Alt 07.11.2005, 16:39  
Erfahrener Benutzer
 
Registriert seit: 23.12.2004
Beiträge: 210
PHP-Kenntnisse:
Anfänger
Bonaparte
Bonaparte eine Nachricht über ICQ schicken
Standard

Zitat:
bin aber auch dafür, dass man so kleinigkeiten selbst finden sollte
jap, man sollte aber unterscheiden zw. einem "programmierer" und einem hobbybastler...

da war noch ein prob konnte es nicht beheben

PHP-Code:
<?php
HEADER
("LOCATION:http://".$_SERVER['SERVER_NAME']. 
dirname($_SERVER['REQUEST_URI'])."/sonne/essen.php");
?>
da kommt die meldung already sent by ouput

wenn man dennoch eine weiterleitung erzwingen möchte wie realisiert man sowas?
__________________
MfG David
axinio Internet Marketing - professionelle Suchmaschinenoptimierung
Bonaparte ist offline  
Alt 07.11.2005, 16:47  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Bonaparte: Syntaxfehler sind nun wirklich banale Fehler wie eine Klammer vergessen. In der Zeit in der man das hier postet, hätte man die Zeile Zeichenweise durchgehen können. Das hat einfach was mit Faulheit zu tun und der Unlust, sich schon wieder einem Problem zuwenden zu müssen. Sollen das doch die anderen machen, das geht ja ganz schnell und ich kann währenddessen schnell einkaufen gehen oder so nen Mist. Einfach FAULHEIT.

Und genau, jetzt taucht der nächste Fehler auf und du postest weiter..Ganz prima. Würdest du die Fehlermeldung mal in Google suchen, hättest du die Antwort sofort.

Abgesehen davon, dass dir jetzt sicher jemand den Fehler nennt, hättest du die Antwort doch längst viel schneller haben können. Und wieder liegts einfach nur an der FAULHEIT.

Da kann ich eigentlich nur Biff zitieren: Du faule Sau! :wink:
Zergling-new ist offline  
Alt 07.11.2005, 17:00  
Gast
 
Beiträge: n/a
Standard

Hallo Leute,

Ich danke für die vielen Vorschläge und die große Hilfe.
Es hat nun geklappt und das Ding macht was ich möchte.

Leider betreibe ich das mit den Internetseiten und der Programmierung als Hobby und nicht als Profi. Ich habe erst ca vor 1 1/2 Jahren damit begonnen (heißt mit html, wie sicher jeder mal angefangen hat) und seit etwa 4 Monaten bin ich auf PHP umgestiegen.
Bisher habe ich schon vieles selbst lösen können, aber manchmal ...

Zitat:
...sieht man den wald vor lauter bäumen nicht
Und ich bin mir nicht zu fein mal jemanden um Hilfe zu beten.
Deshalb freue ichmich wenn ich diese dann auch bekomme.
Und wenn ich mal Helfen kann, nur melden, ich komme bestimmt.
Ich denke das jeder mal ein Brett vor dem Kopf hat und deshalb selbst eine Klammer oder irgentetwas anderes übersieht. Das ist überall so. Manhat eben manchmal Vorstellungen und davon will man nicht abkommen, auch wenn es viel viel einfacher und besser klappen würde.

Und ihr wisst ja selbst, ein Quelltext hat wesentlich mehr Zeichen als das Ergebnis auf der Homepage.

Also nochmals Dank an alle und beste Grüße
Mario der Geiseltaler.
 
Alt 07.11.2005, 17:03  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Naja der Gedanke hatte sich eben aufgedrängt, nachdem du 2x so einfache Fehler hintereinander gepostet hast, die du wirklich innerhalb von Sekunden selbst hättest lösen können.
Nix für ungut, Gruß, c
Zergling-new ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Datei per Buttonklick runterladen... go1denboy PHP Tipps 2008 7 14.06.2008 20:25
Großer Baum -> Große Datei -> Hohe Ladezeit :( PsychoEagle PHP Tipps 2008 7 22.09.2007 12:44
Automatisch generierte Datei nach Download löschen querfisch PHP Tipps 2007 2 10.04.2007 19:22
.gz Datei entpacken und mit dem Inhalt weiterarbeiten R4v3r PHP Tipps 2007 8 02.02.2007 14:49
String als Datei speichern Zangelo PHP Tipps 2006 23 25.08.2006 14:13
Einzelne Variablen in Datei editieren snatch-ic PHP Tipps 2006 10 21.06.2006 14:55
Datei durchsuchen Wöllchen Beitragsarchiv 3 02.03.2006 22:23
Datei mit &amp;amp;amp;quot;w&amp;amp;amp;quot; schreiben -&amp;amp;amp;gt; 0 Bytes?! PHP-Fortgeschrittene 17 30.12.2005 13:58
Datei auf FTP-Server ändern ohne lokal abzuspeichern faux PHP-Fortgeschrittene 11 02.09.2005 11:54
[Erledigt] mail versand mit anhang (-- fopen(), fread(), filesize() --) PHP Tipps 2005 5 29.01.2005 18:36
Datei automatisch erzeugen PHP Tipps 2004-2 3 04.12.2004 12:26
[Erledigt] datei editieren PHP Tipps 2004 1 10.09.2004 20:33
automatisch php datei erstellen Kenshin PHP Tipps 2004 1 08.09.2004 21:18
(ich schonwieder) Link seite automatisch imported_DJ Nuno PHP Tipps 2004 14 19.08.2004 17:42
Wie kann ich eine PHP Datei in eine HTML Datei umwandeln PHP Tipps 2004 2 12.08.2004 18:04


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:32 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.