übertragen und in eine datei eintragen - wie?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
action
alt
beitrag
beschreibung
bild
datei
daten
elemente
formular
funktion
hhen
information
manual
meinst
parameter
speicher
tippfehler
trance
trennstrich
vorarbeit
-
Moinsen ^^
ich hab schon ne bisschen vorarbeit gemacht, aber nun komm ich an den punkt wo ich nicht weiter wei?. wie bekomm ich das hin, dann die daten in eine datei eintragen werden ?
Wenn es ?bertragen wurde sollen die Daten noch mal angezeigt werden und man kann dann vielleicht noch was eintragen. aber das muss die datei alles mit machen.
ich hoffe ich finde hier hilfe.
mfg trance
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <table width="600" border="0" cellspacing="0" cellpadding="0"> <tr> <td colspan="2">Rubrik</td> <td colspan="2"><select name="select"> <option selected>Bitte wählen</option> <option value="allgemein">Allgemein</option> <option value="forum">Forum</option> <option value="hp">Private Homepage</option> <option value="musik">Musik</option> <option value="game">Game</option> <option value="fun">Fun</option> <option value="web">Webmaster</option> <option value="computer">Computer</option> <option value="down">Download</option> </select></td> </tr> <tr> <td colspan="2"><div align="left">Url</div></td> <td width="400" colspan="2"><input type="text" name="url" size="55"></td> </tr> <tr> <td colspan="2"><div align="left">Titel</div></td> <td colspan="2"><input type="text" name="titel" size="55"></td> </tr> <tr> <td colspan="2"><div align="left">Beschreibung</div></td> <td colspan="2"><input type="text" name="beschreibung" size="55"></td> </tr> </table> <p>Falls sie ein Bild zu Hand haben, welches als Garfik aufgebenen soll, bitte folgende Felder ausfüllen.</p> <table width="600" border="0" cellspacing="0" cellpadding="0"> <tr> <td colspan="2"><div align="left">Bild</div></td> <td colspan="2"><input type="text" name="bild" size="55"></td> </tr> <tr> <td width="47"><div align="left">Breite</div></td> <td width="150"><input name="breite" type="text" size="25" maxlength="3"></td> <td width="167"><div align="left"> H?he</div></td> <td width="150"><input name="hoehe" type="text" size="25" maxlength="3"></td> </tr> </table> <p><input type="submit" value="speichern" name="save"></p> </form>
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hi,
das k?nnte man z.B. folgendermassen machen (eine M?glichkeit):
if (isset($_POST['action']) && $_POST['action'] == "eintragen") { $data = array(); foreach ($_POST as $key => $val) { if ($key != "action") $data[$kay] = $val; // Nur elemente seichern, // bei denen der Schl?ssel nicht gleich "action" ist } // Abspeichern in "data.db" $data = serilaize($data); $fp = fopen("datei.db",'w'); fputs($fp,$data); fclose($fp); } else { ?> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <input type="hidden" name="action" value="eintragen"> <!-- ... Hier das ganze HTML-Formular ... --> </form> <?php }
Dieser Code ist nat?rlich sinnlos, aber als Beispiel funktioniert es.
Am besten liesst du dir mal das hier durch: http://www.php.net/manual/de/function.fopen.php
und alle anderen Datei-Funktionen in der Referenz.
mfg,
hr -
das geht so nicht:
http://trancedrome.xardas.lima-city.de/Testarea/admin.php
einmal bitte nachlesen!! Danke!! -
Kann mir vielleich noch mal jemand beistehen bei dem (f?r die pro's) kleinem problem!
Danke!! -
Hi,
ich hatte da ein Tippfehler gemacht:
Es sollte serialize() und nicht serilaize() heissen.
Das steht ?brigens auch da, wenn man es ausf?hrt:
http://trancedrome.xardas.lima-city.de/Testarea/admin.php:
Fatal error: Call to undefined function: serilaize()
L?st das dein Problem?
EDIT: Noch ein Tippfehler gefunden....
Es sollte $key und nicht $kay heissen.
So sollte es funktionieren:
if (isset($_POST['action']) && $_POST['action'] == "eintragen") { $data = array(); foreach ($_POST as $key => $val) { if ($key != "action") $data[$key] = $val; // Nur elemente seichern, // bei denen der Schl?ssel nicht gleich "action" ist } // Abspeichern in "datei.db" $data = serialize($data); $fp = fopen("datei.db",'w'); fputs($fp,$data); fclose($fp); } else { ?> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <input type="hidden" name="action" value="eintragen"> <!-- ... Hier das ganze HTML-Formular ... --> </form> <?php }
mfg,
hr
Beitrag ge?ndert am 17.05.2006 00:08 von heavyraptor
Beitrag ge?ndert am 17.05.2006 00:09 von heavyraptor -
hm
nun kann man das
http://trancedrome.xardas.lima-city.de/Testarea/admin.php
zwar benutzen
aber man kann die informationen nicht in die datei, mit "|" eintragen.
und genau das ist das wo ich nicht wei? wie das geht?!?!?
-
ok es geht zum teil.
die funktion ja.
aber wie es eingetragen wird ist ein wenig komisch:
a:8:{s:6:"select";s:12:"Bitte w?hlen";s:3:"url";s:20:"http://www.google.de";s:5:"titel";s:6:"Google";s:12:"beschreibung";s:6:"Google";s:4:"bild";s:0:"";s:6:"breite";s:0:"";s:5:"hoehe";s:0:"";s:9:"eintragen";s:9:"speichern";}
wie ich schon gesagt hatte, m?ssen die informationen mit einem "|" getrennt werden.
und wenn die angeben ?ber das bild nicht besteht da da keine leerzeiche gemacht sonst einfach ?bersehen wird. -
Hi,
dass du die Daten mit "|" in einer Datei trennst, ist meiner Meinung nach zu kompliziert.
Besser ist es mit serialize() (siehe http://www.php.net/manual/de/function.serialize.php), so wie ich es gemacht habe. Diesen String kann man dann mit unserialize() (siehe http://www.php.net/manual/de/function.unserialize.php) wieder auseinandernehmen und in den ursprunglichen Array umwandeln. Ausserdem bleiben die Typen erhalten (integer, float, string ... usw). Das ist schneller und einfacher.
Bsp:
$a = array( 'name' => "irgendwas", 'alter' => 20 ); $a = serialize($a); print gettype($a) . "<br />\n"; // zeigt string an (typ von $a) $a = unserialize($a); print gettype($a) . "<br />\n"; // zeigt array an, der String wurde zur?ckverwandelt
mfg,
hr
-
Also nun muss ich doch mal eben erkl?ren wieso mit trennungsstich?!
Also ich hab mir vor ne paar wochen schon ein linkeinbinder geschrieben...der nun auch funktioniert.
nur ein teile des codes:
foreach ($lines as $line_num => $line) { $line = explode("|", $line); if($line[3]) {
wie man sieht wird die datein ausgelesen und ?berall wo ein "|" ist, ist ein neues array.
Nun will ich halt noch ein script schreiben womit ich die eintr?ge in der datein edit und auch neue eintragen kann.
deshalb der trenstich!!
vielleicht hilft das ja!?
mfg trancer! -
Hi,
ok, ich weiss schon was du meinst, aber serialize() bietet nur vorteile. Trotzdem, hier ist der Code mit Trennstrich:
$data = array(); foreach ($_POST as $key => $val) { if ($key != "action") $data[$key] = $val; } $data = implode("|",$data); $fp = fopen("datei.db",'w'); fputs($fp,$data); fclose($fp);
mfg,
hr -
Sauber!
jetzt funktioniert es halb.
das komm nun raus > Hp|http://www.google.de|Google|Suchmaschine||||Speichern
nur das speichern sollte nun noch weg.
und wenn ich ne eintrag gemacht hab und den nachsten machen, soll der erste nicht ?berschrieben werden!?!!!
-
Hi,
das sollte so gehen (mit dem parameter 'a+' statt 'w'):
$data = implode("|",$data); $fp = fopen("datei.db",'a+'); // a+ statt w fputs($fp,$data); fclose($fp);
Alles klar?
mfg,
hr -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage