Ergebnis 1 bis 16 von 16

Thema: kleines PHP script zu programmieren - help plz

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1

    kleines PHP script zu programmieren - help plz

    hallo ihr da draussen.
    ja, ich bins mal wieder. der kleine php anfänger der keine ahnung von nichts hat und deshalb eure professionelle hilfe braucht

    also, dieses mal bräuchte ich jemanden der mir bei der rohfassung eines bestimmten scripts hilft. das script ist dazu gedacht, dass user durch die eingabe von informationen in textfeldern, diese in form von TXT dateien auf dem server speichern. das wäre ja an und für sich noch kein problem für mich. allerdings ist es ein problem was mit diesen passieren soll.

    aber vorher noch kurz zum hintergrund.
    eine freundin von mir ist nun in der abschlussklasse und möchte gerne, dass jedes klassenmitglied infos wie name, adresse, telefonnr. und email in einem geschützen bereich auf der klassenHP speichert. jetzt kann es aber sein, dass sich die infos im laufe der zeit ändern, und daher aktualisiert werden müssen. und zwar sollen diese gleich auf der website editierbar sein.

    Also, ich hab mir das ganze so vorgestellt:
    auf der hauptsite stehen von allen die infos, gegliedert nach name, adresse, tel.nr. und email, wobei darunter ein link namens "ändern" stehen soll.
    wenn der user jetzt also auf ändern drückt, soll er zu einer eingabe site gelangen, wo die bisherig eingegebenen infos in textfelder stehen und dort erneut eingegeben werden können. ist der user mit dem ändern fertig, braucht er lediglich auf speichern klicken und die bisherigen infos aus den TXT dateien werden mit den aktuellen überschrieben. ausserdem, sollen die infos aus der TXT datei nun aktualisiert auf der hauptsite sichtbar sein.

    ich hoffe ihr könnt euch darunter was vorstellen. übrigens, jeder user kann jeden eintrag auf der hauptsite editieren, es sind also keine sicherheitssachen notwendig.

    wäre toll wenn mir da jemand unter die arme greifen könnte. wie gesagt, es muss jetzt nix mega dramatisches sein, es soll lediglich den recht simplen zweck erfüllen.

    greets,
    [JLA]

  2. #2
    Da du sagst, der erste Teil (das einfache Abspeichern) sei für dich kein Problem, gebe ich dir einfach mal einen Tipp für das Ersetzen: preg_replace.
    Angenommen, du speicherst die Daten in der Textdatei in der Form
    Code:
    Name;Adresse;Telefonnummer;E-Mail\n
    Dann muss man davon ausgehen, dass der Name sich nicht ändern kann, sonst musst du ein weiteres Feld wie "ID" hinzufügen
    Code:
    ID;Name;Adresse;Telefonnummer;E-Mail\n
    Das Auslesen der Daten mit file() und explode() sollte auch kein Problem darstellen. Bleibt also noch das Schreiben der Änderungen.
    PHP-Code:
    $contents file_get_contents('saves.txt');
    $new preg_replace('#'.$_POST['id'].'(;.+){4}\n#'$_POST['id'].';'.$_POST['name'].';'.$_POST['adresse'].';'.$_POST['tel'].';'.$_POST['mail']."\n"$contents);
    $handle fopen('saves.txt''w');
    fwrite($handle$new);
    fclose($handle); 
    Keine Garantie auf gar nichts.

  3. #3
    also hier mal das was ich in der lage war zu machen. Das hier ist der Eintrag für Max Mustermann.

    die eingabefelder:
    Code:
    <html>
    <head>
    </head>
    
    <body>
    
    <p>
         <form method="post" action="reunion_include.php" name="formular" id="formular">
          <table>
           <tr>
            <td style="padding:2px">Name:</td>
            <td style="padding:2px"><input type="text" name="input_name" cols="25" /></td>
           </tr>
           <tr>
            <td style="padding:2px">Adresse:</td>
            <td style="padding:2px"><input type="text" name="input_adresse" cols="30" /></td>
           </tr>
           <tr>
            <td style="padding:2px">PLZ - Ort:</td>
            <td style="padding:2px"><input type="text" name="input_plz" cols="8" />
    	<style="padding:2px"><input type="text" name="input_ort" cols="20"/>
           </tr>
           <tr>
            <td style="padding:2px">Tel. Nr.:</td>
            <td style="padding:2px"><input type="text" name="input_tel" cols="20" /></td>
           </tr>
           <tr>
            <td style="padding:2px">eMail:</td>
            <td style="padding:2px"><input type="text" name="input_email" cols="30" /></td>
           </tr>
           <tr>
            <td style="padding:2px">&#160;</td>
            <td style="padding:2px">
    <br />
              <input name="speichern" type="submit" id="speichern" value="Speichern" />
              <input name="loeschen" type="reset" id="loeschen" value="Zur&uuml;cksetzen" />
            </td>
           </tr>
          </table>
         </form>
    </p>
    
     </body>
    </html>
    die eingegebenen daten werden dann in das reunion_inlcude.php-script geschickt:
    Code:
    <?php
    $name = $_POST['input_name'];
    $adresse = $_POST['input_adresse'];
    $plz = $_POST['input_plz'];
    $ort = $_POST['input_ort'];
    $tel = $_POST['input_tel'];
    $email = $_POST['input_email'];
    
    //Abfrage, ob Textarea Name leer ist und Ausgabe einer Warnung
    if (empty ($name)) {  
        die ("<b><font face=\"Arial, Verdena, sans-serif\" size=\"2\" color=black>Gib bitte deinen Namen ein!<br><br><a href=\"javascript:history.go(-1);\">&laquo; zurück</A>");}
    
    $txt = "max_mustermann.txt";
    
    $lesen = fopen("$txt", "r");
    $inhalt = fread($lesen, filesize($txt));
    fclose ($lesen);
    
    
    //Schreiben in die TXT-Datei
    $schreiben = fopen("$txt", "w");
    if($schreiben){
    flock($schreiben,2);
    fputs ($schreiben, "
    <p>
    $name
    $adresse
    $plz - $ort
    $tel
    $email
    </p>
    <br>
    $inhalt");
    flock($schreiben,3);
    fclose ($schreiben);}
    echo "<script>self.location=\"eintrag_success.php\";</script>";
    ?>
    die daten werden jetzt in der txt datei namens "max_mustermann.txt" gespeichert.

    jetzt fehlt mir aber noch ein weg wie ich den inhalt der datei auslesen bzw. auf der hauptsite anzeigen kann und wie dieser editiert werden kann...

    THX
    [JLA]

  4. #4
    also ,

    In diesem fall würde ich zwar sagen .txt reicht aus ,
    aber weil ich mich sowieso gerade mit XML und PHP befasse warum nett XML ^.-

    Eine Datei für die Daten könnte wie folgt aussehn :

    Code:
    <?xml version='1.0'?>
    <Daten>
       <id>1</id>
       <name>Person Nummer 1</name>
       <adresse>Strasse Nummer 1</adresse>
       <plz>PLZ Nummer 1</plz>
       <ort>ORT Nummer 1</ort>
       <email>EMAIL Nummer 1</email>
       <id>2</id>
       <name>Person Nummer 2</name>
       <adresse>Strasse Nummer 2</adresse>
       <plz>PLZ Nummer 2</plz>
       <ort>ORT Nummer 2</ort>
       <email>EMAIL Nummer 2</email>
    </Daten>
    Der Parser würde dann in etwa so aussehn :

    Code:
    <?php
      
    function startElement($parser, $element_name, $element_attribute) {
    global $ausgabe;
    
    $element_name = strtolower($element_name);
    
    if ($element_name=="id") {
    $ausgabe .= "<hr/><!--";
    }
    if ($element_name=="name") {
    $ausgabe .= "name :<b>";
    }
    if ($element_name=="adresse") {
    $ausgabe .= "Adresse  :<b>";
    }
    if ($element_name=="plz") {
    $ausgabe .= "Postleitzahl  :<b>";
    }
    if ($element_name=="ort") {
    $ausgabe .= "Wohnort  :<b>";
    }
    if ($element_name=="email") {
    $ausgabe .= "E-Mail  :<b>";
    }
    }
    
    function endElement($parser, $element_name) {
    global $ausgabe;
    
    $element_name = strtolower($element_name);
    
    if ($element_name=="id") {
    $ausgabe .= "//-->";
    }
    if ($element_name=="name") {
    $ausgabe .= "</b></br>";
    }
    if ($element_name=="adresse") {
    $ausgabe .= "</b></br>";
    }
    if ($element_name=="plz") {
    $ausgabe .= "</b></br>";
    }
    if ($element_name=="ort") {
    $ausgabe .= "</b></br>";
    }
    if ($element_name=="email") {
    $ausgabe .= "</b></br>";
    }
    }
    
    function cdata($parser, $element_inhalt) {
    global $ausgabe;
    
    $ausgabe .= $element_inhalt;
    }
    $xmlFile = file("name.xml");
    $parser = xml_parser_create();
    xml_set_element_handler($parser, "startElement", "endElement");
    xml_set_character_data_handler($parser, "cdata");
    
    foreach($xmlFile as $elem)
    {
    xml_parse($parser, $elem);
    }
    xml_parser_free($parser);
    echo $ausgabe;
    
    
    ?>
    Das ist jetzt bis dato nur ne anregung bzw. ne idee von mir , wenn es dir gefällt kann ich gerne versuchen das ganze mit XML zu realisieren (auch wenn es woll so ist als wenn ich für ein helloworld gleich brainfuck nutzen würde xD)

    Trotzdem gefallem mir XML lösungen mehr als TXT

  5. #5
    Mal davon abgesehen, dass
    Code:
    <?xml version='1.0'?>
    <personen>
      <person id="p1">
        <name>Person Nummer 1</name>
        <adresse>Strasse Nummer 1</adresse>
        <plz>PLZ Nummer 1</plz>
        <ort>ORT Nummer 1</ort>
        <email>EMAIL Nummer 1</email>
      </person>
      <person id="p2">
        <name>Person Nummer 2</name>
        <adresse>Strasse Nummer 2</adresse>
        <plz>PLZ Nummer 2</plz>
        <ort>ORT Nummer 2</ort>
        <email>EMAIL Nummer 2</email>
      </person>
    </personen>
    _wesentlich_ sinnvoller wäre, warum XML? Das macht nur unnötigen Overhead (In deinem Beispiel ist der Overhead fast genauso groß wie die Daten. O_o) und erschwert das parsen. Für so simple Sachen sind Flatfiles wesentlich besser geeignet.

    Und wenn man unbedingt eine coole Sprache zum Datenspeichern haben will, rate ich zu YAML. Mit SPYC gibts dafür auch eine sehr nette PHP-Implementation.
    Das sähe dann übrigens in etwa so aus:
    Code:
    ---
    - 
      name: Person Nummer 1
      adresse: Strasse Nummer 1
      plz: PLZ Nummer 1
      ort: ORT Nummer 1
      email: EMAIL Nummer 1
    - 
      name: Person Nummer 2
      adresse: Strasse Nummer 2
      plz: PLZ Nummer 2
      ort: ORT Nummer 2
      email: EMAIL Nummer 2
    Wer sagt, dass die XML-Version schöner ist, ist ein Idiot. ;)

    P.S.: Und sollte man doch unbedingt auf XML bestehen, warum nicht existierende Standards benutzen?

    Geändert von Dingsi (12.05.2006 um 16:40 Uhr)

  6. #6
    äh, ich bin ja echt dankbar für all eure vorschläge, aber irgendwie (wie üblich) bin ich mal wieder verwirrt
    kann ich XML problemlos auf jedem server ausführen oder ist dafür auch wieder ein spezielle config seitens des servers notwendig?

    es sind übrigens 32 leute von denen die daten gespeichert werden müssen, und ich möchte (sofern möglich) nicht unbedingt für jeden ein eigenes script haben müssen bzw. die daten aller möglichst in einer txt datei speichern...

    wäre toll wenn ihr mir da auf PHP basis ein bisschen unter die arme greifen könntet.

    merci,
    [JLA]

  7. #7
    Zitat Zitat von [JLA]Godkill
    äh, ich bin ja echt dankbar für all eure vorschläge, aber irgendwie (wie üblich) bin ich mal wieder verwirrt
    Passiert. Besonders im Programmiergenre häufiger.
    Zitat Zitat
    kann ich XML problemlos auf jedem server ausführen oder ist dafür auch wieder ein spezielle config seitens des servers notwendig?
    XML kann man normalerweise überhaupt nicht ausführen, denn es ist keine Programmiersprache (In 99% aller Fälle. Es gibt verrückte Leute die eine XML als Programmiersprache verwenden. Die sind aber verrückt und man sollte nicht auf sie hören )*
    In XML werden in den meisten Fällen Daten gespeichert. Und zwar in einfachen Text-Dateien. Jeder Server sollte mit Text-Dateien klar kommen. (Wenn nicht, wäre das ein __sehr__ merkwürdiger Server). XML ist nur die Strukturierung um die Daten herum. Diese Daten werden jedenfalls nicht ausgeführt sondern hauptsächlich durch andere Programme weiterverarbeitet. In deinem Fall würdest du die Daten der Menschen in XML speichern und mit PHP verarbeiten. (Wovon ich aber oben ja schon abgeraten hab und eher eine Flatfile ohne viel Markup oder YAML empfehlen würde. XML wäre einfach overflow für so eine Kleinigkeit)

    Zitat Zitat
    es sind übrigens 32 leute von denen die daten gespeichert werden müssen, und ich möchte (sofern möglich) nicht unbedingt für jeden ein eigenes script haben müssen bzw. die daten aller möglichst in einer txt datei speichern...
    Kein Problem.

    Zitat Zitat
    wäre toll wenn ihr mir da auf PHP basis ein bisschen unter die arme greifen könntet.
    Vorrausgesetzt du verwendest YAML und SPYC gestaltet sich das eigentlich ziemlich einfach. Nehmen wir an du speicherst deine Menschchen in der Datei menschen.yml. menschen.yml sieht dann in etwa so aus:
    Code:
    ---
    - 
      name: Person Nummer 1
      adresse: Strasse Nummer 1
      plz: PLZ Nummer 1
      ort: ORT Nummer 1
      email: EMAIL Nummer 1
    - 
      name: Person Nummer 2
      adresse: Strasse Nummer 2
      plz: PLZ Nummer 2
      ort: ORT Nummer 2
      email: EMAIL Nummer 2
    Jetzt kannst du damit arbeiten:
    PHP-Code:
    <?php
      
    include('spyc.php');

      
    $menschen Spyc::YAMLLoad('menschen.yml');

      
    /*
        Jetzt sollte $menschen ein numerisches Array der Menschen sein
        Jedes Element ist wiederum ein assoziatives Array mit den einzelnen Attributen
        (name, adresse, plz, ort, email) als Schlüssel und den Werten als Werten (wow!)
      */

      /* Um zum Beispiel die Adresse des zweiten Menschen rauszukriegen reicht ein... */

      
    echo $menschen[1]['adresse'];

      
    /* Werte ändern kann man natürlich auch
         Mensch Numero 4 hat seine E-Mail-Adresse geändert. Nichts leichter als das */

      
    $menschen[3]['email'] = $neue_email_adresse;

      
    /* Innerhalb des Scripts hat Mensch 4 jetzt die neue Adresse, aber wir sollten
         diese auch noch in der menschen-Datei speichern, sonst hats ja nichts gebracht */

      
    file_put_contents('menschen.yml'Spyc::YAMLDump($menschen));

      
    /* Da es file_put_contents erst ab PHP5 gibt das ganze auch nochmal für ältere Versionen */

      
    $fp fopen('menschen.yml''w');
      
    fwrite($fpSpyc::YAMLDump($menschen));
      
    fclose($fp);

      
    /* Solltet ihr etwas in diesen Mikrotutorial nicht verstanden haben,
         fragt einfach nach.
         (Nicht, dass ihr das nicht eh tun würdet...) */

      /* Ich gebe übrigens keine Gewähr für den Code, ist ungetestet. Ich hoffe einfach,
         dass keine groben Fehler drin sind. Die kleinen könnt ihr sicher auch selber ausmerzen. ;) */

    ?>
    Fragt mich jetzt nicht, warum ich den Rest der Erklärungen in den PHP-Code gesteckt hab. Ich war zu faul den Editor zu wechseln...

    HTH.

    * Eine Ausnahme ist vielleicht XSLT. Das wird zwar ausgeführt, aber es ist nicht wirklich eine Programmiersprache. Und es ist nicht verrückt.

  8. #8
    XML ist zwar keine Programmiersprache und muss deshalb nicht ausgeführt werden, allerdings basiert dadies Vorschlag auf einer PHP-Extension, die nicht zwangsläufig installiert ist (oder?).

    @Dingsi: Betr: Spyc
    Interessant, erstellt man bei dieser Klasse überhaupt Instanzen oder arbeitet man nur mit den Methoden?

  9. #9
    Zitat Zitat
    Zitat von [JLA]Godkill
    äh, ich bin ja echt dankbar für all eure vorschläge, aber irgendwie (wie üblich) bin ich mal wieder verwirrt
    Passiert. Besonders im Programmiergenre häufiger.
    rate mal wies mir jetzt geht

    aaaalso, was mir hier jetzt noch unklar ist: alles!
    kann jeder server mit YAML und SPYC umgehen?
    wie bringe ich es jetzt zusammen dass die einzelnen informationen in meinen textfeldern bzw. als text auf der hauptsite angezeigt werden?

    Es ist ja so gedacht dass wenn jemand seinen eintrag auf der hauptsite sieht und einen eintrag aktualisieren möchte, er auf den dortstehenden EDIT button drückt, und dann zu der site mit den textfeldern gelangt. in den textfeldern soll der einzelne wert schon angezeit werden und nun überschreibbar sein.

    es ist eigentlich nur notwendig dass die leute ihre daten überschreiben können, weil ich sowieso schon eine liste mit den ganzen infos hab und die erstmal online stellen werd. danach muss nur die editierfunktion irgendwie hinhauen..

    ausserdem, was bitteschön ist in der spyc.php datei die du includest?

    greets + thx,
    [JLA]

  10. #10
    Zitat Zitat von [JLA]Godkill
    kann jeder server mit YAML und SPYC umgehen?
    Mit SPYC kann er umgehen, wenn PHP installiert ist. Mit YAML sollte er IMMER umgehen können, weil man es in einer verdammten Text-Datei speichert. >_<
    Zitat Zitat
    wie bringe ich es jetzt zusammen dass die einzelnen informationen in meinen textfeldern bzw. als text auf der hauptsite angezeigt werden?
    Vorrausgesetzt du liest die Daten, wie in meinem Beispiel, in $menschen, dann brauchst du zum anzeigen nur ein echo $menschen[beliebige zahl][beliebiges attribut];. Und wenn dus in einem Textfeld willst machst du ein <input/> drum herum.

    Die grundlegenden Ansätze von PHP/HTML beherrscht du schon, oder?

    Zitat Zitat
    ausserdem, was bitteschön ist in der spyc.php datei die du includest?
    Hast du meinen vorherigen Post gelesen... ? SPYC.

    Zitat Zitat von putter ork(XD)
    @Dingsi: Betr: Spyc
    Interessant, erstellt man bei dieser Klasse überhaupt Instanzen oder arbeitet man nur mit den Methoden?
    Wär irgendwie unsinnig für ganze zwei Methoden immer eine eigene Instanz zu erstellen, oder? ^^ Das nennt sich übrigens Klassenmethoden. Wow, was?

    Geändert von Dingsi (12.05.2006 um 19:47 Uhr)

  11. #11
    ach, so ist da gemeint!

    jetzt macht das ganze in meinem kopf gleich viel mehr sinn

    sry, aber ich hab mich bisher nur mit ein paar einfachen PHP scripten beschäftigt, wenn mein kopf also mit sovielem neuen zeug konfrontiert wird, schaltet er sich irgendwann aus

    gut, also die eingabe bzw. die abfrage ist mir jetzt klar. lediglich die art und weise wie die informationen aktualisiert werden sollen, ist mir nicht ganz klar.
    ich möchte dass wenn der user auf der hauptsite auf EDIT klickt, er zu einer site kommt, wo nun die abfrage stattfindet bzw. die infos in form von textfelder angezeigt werden.
    wenn er sich jetzt entschliesst seine adresse neu einzugeben, und auf speichern klickt, sollte das script einfach alle einträge (name, adresse,email,etc.) überschreiben, bzw. die werte die sich eh nicht geändert haben bleiben gleich, und der eine wert der sich geändert hat, soll überschrieben werden.
    wie kommt das zu stande?

    danke für die geduld
    [JLA]

  12. #12
    Das hat Dingsi doch schon erklärt! o_O
    Ich spring da jetzt einfach mal ein, selbst wenn ich gerade die Buchstaben YAML zum ersten Mal in dieser Reihenfolge gesehen habe. Wahrscheinlich hab' ich's auch in keiner anderen gesehen, wenn man daraus nichts Sinnvolleres als "Mail" falsch schreiben kann! o_O''
    Zitat Zitat von Dingsi
    PHP-Code:
      /* Werte ändern kann man natürlich auch
         Mensch Numero 4 hat seine E-Mail-Adresse geändert. Nichts leichter als das */

      
    $menschen[3]['email'] = $neue_email_adresse
    Also du liest einfach die Textfelder aus und speicherst mit obenstehendem Befehl die Werte. Etwa so (hoffentlich o_O):
    PHP-Code:
    $menschen[$id]['name'] = $_POST['name'];
    $menschen[$id]['adresse'] = $_POST['adresse'];
    $menschen[$id]['plz'] = $_POST['plz'];
    $menschen[$id]['ort'] = $_POST['ort'];
    $menschen[$id]['email'] = $_POST['email'];
      
    // In $id sollte die zu dem Typen gehörige Zahl gespeichert sein. 

  13. #13
    Korrekt. Man darf bloß nicht das
    PHP-Code:
      $fp fopen('menschen.yml''w');
    fwrite($fpSpyc::YAMLDump($menschen));
    fclose($fp); 
    bzw. das einfachere PHP5-Äquivalent (s. meinen vorherigen Post mit langem PHP-Block) vergessen, sonst wird nichts gespeichert.

    Zitat Zitat von puttes Äffchen
    Ich spring da jetzt einfach mal ein, selbst wenn ich gerade die Buchstaben YAML zum ersten Mal in dieser Reihenfolge gesehen habe. Wahrscheinlich hab' ich's auch in keiner anderen gesehen, wenn man daraus nichts Sinnvolleres als "Mail" falsch schreiben kann! o_O''
    Schön, dass ich dir was neues beibringen konnte \o/

  14. #14
    sooooo, also ich hab jetzt mal wieder ein bisschen gebastelt und das script funktioniert weitesgehen wunderbar. also an der stelle schon mal danke für die schwere geburt

    ich hab das script minimalst abgewandelt bzw. es meinen bedürfnissen angepasst. trotzdem hab ich jetzt noch 2 probleme:

    1. wie kann ich die einzelnen infos einer person abrufen? der befehl
    Code:
     echo $menschen[1]['adresse'];
    verfehlt irgendwie seine wirkung.

    ich hab vor die infos in einem textfeld anzeigen zu lassen, also zB
    Code:
           <tr>
            <td style="padding:2px">Vorname:</td>
            <td style="padding:2px"><input <? echo $menschen[1]['name2']; ?> name="name2" cols="15" /></td>
           </tr>
    und die dann wieder durch den parser um den vorhandenen eintrag zu ersetzen.
    mag aber nicht.

    kurz zu erklärung, ich mittlerweile ein weiteres namensfeld geaddet damit ich es später bei der anzeige auf der hauptsite besser anordnen kann.

    2. wie mach es dem script klar dass er möglichst absätze machen soll wenn er in die menschen.yml datei schreibt? wenn ich die datei mit notepad öffne erkennt er zwar die absätze, zeigt mir aber nur die absatzzeichen an und macht keinen... das ist irgendwie lästig.

    thx,
    [JLA]

    p.s. hier mal das eingabefeld und der parser
    Code:
    ///// EINGABEFELD ///////
    <p>
         <form method="post" action="namen_inlcude.php" name="formular" id="formular">
          <table>
           <tr>
            <td style="padding:2px">Vorname:</td>
            <td style="padding:2px"><input type="text" name="name2" cols="15" /></td>
           </tr>
           <tr>
            <td style="padding:2px">Nachname:</td>
            <td style="padding:2px"><input type="text" name="name1" cols="15" /></td>
           </tr>
           <tr>
            <td style="padding:2px">Adresse:</td>
            <td style="padding:2px"><input type="text" name="adresse" cols="30" /></td>
           </tr>
           <tr>
            <td style="padding:2px">PLZ - Ort:</td>
            <td style="padding:2px"><input type="text" name="plz" cols="8" />
    	<style="padding:2px"><input type="text" name="input_ort" cols="20"/>
           </tr>
           <tr>
            <td style="padding:2px">Tel. Nr.:</td>
            <td style="padding:2px"><input type="text" name="tel" cols="20" /></td>
           </tr>
           <tr>
            <td style="padding:2px">eMail:</td>
            <td style="padding:2px"><input type="text" name="email" cols="30" /></td>
           </tr>
           <tr>
            <td style="padding:2px"> </td>
            <td style="padding:2px">
    <br />
              <input name="speichern" type="submit" id="speichern" value="Speichern" />
              <input name="loeschen" type="reset" id="loeschen" value="Zur&uuml;cksetzen" />
            </td>
           </tr>
          </table>
         </form>
    </p>
    Code:
    //////  Parser ///////
    <?php
      include('spyc/spyc.php');
      $menschen = Spyc::YAMLLoad('spyc/menschen.yml');
    
    
    $menschen[$id]['name1'] = $_POST['name1']; 
    $menschen[$id]['name2'] = $_POST['name2']; 
    $menschen[$id]['adresse'] = $_POST['adresse']; 
    $menschen[$id]['plz'] = $_POST['plz']; 
    $menschen[$id]['ort'] = $_POST['ort']; 
    $menschen[$id]['tel'] = $_POST['tel']; 
    $menschen[$id]['email'] = $_POST['email']; 
    
      $fp = fopen('menschen.yml', 'w');
      fwrite($fp, Spyc::YAMLDump($menschen));
      fclose($fp);
    
    echo "<script>self.location=\"namen_success.php\";</script>";
    
    ?>

    Geändert von Armitage2k (13.05.2006 um 17:03 Uhr)

  15. #15
    Erstens: Bitte, wenn du in alle deine <td>-Tags "padding: 2px;" reinschreibst, mach das doch einfach global. Also zwischen Header und Body
    HTML-Code:
    <style type = "text/css">
        td { padding: 2px; }
    </style>
    einfügen.
    Zitat Zitat von [JLA]Godkill
    1. wie kann ich die einzelnen infos einer person abrufen? der befehl
    Code:
     echo $menschen[1]['adresse'];
    verfehlt irgendwie seine wirkung.
    Weiß ich nicht, probier mal, es in einen String zu schreiben:
    PHP-Code:
    echo "{$menschen[1]['adresse']}"
    Aber wie gesagt, ich weiß es nicht.
    Zitat Zitat
    ich hab vor die infos in einem textfeld anzeigen zu lassen, also zB
    Code:
           <tr>
            <td style="padding:2px">Vorname:</td>
            <td style="padding:2px"><input <? echo $menschen[1]['name2']; ?> name="name2" cols="15" /></td>
           </tr>
    und die dann wieder durch den parser um den vorhandenen eintrag zu ersetzen.
    mag aber nicht.
    Das sieht dann in der HTML-Ausgabe so aus:
    HTML-Code:
    <input Donald Duck name="name2" cols="15" />
    Ergo: wenn du's einfach nur so in den <input>-Tag schreibst, kann's ja garnicht klappen. So wär's afaik richtig:
    PHP-Code:
    <input value = "<?php echo $menschen[1]['name2']; ?>" name="name2" cols="15" />
    Aber bestimmt kommt gleich ohnehin jemand und sagt, dass mind. die Hälfte meines Geschreibsels Blödsinn ist. Aber probier's halt mal. Und meinen ersten Tipp kannst du auf jeden Fall umsetzten!

    Geändert von drunken monkey (13.05.2006 um 17:33 Uhr)

  16. #16
    Zitat Zitat
    Aber bestimmt kommt gleich ohnehin jemand und sagt, dass mind. die Hälfte meines Geschreibsels Blödsinn ist.
    äh, du hast dir aber schon meine post auch mal durchgelesen, oder?
    also ich wette du hast noch eher nen plan was du tust

    bzgl. <td>
    stimmt, das müsst ich dann in mein stylesheet hauen, aber da ich noch mehrer <td>'s hab die nicht mit 2px gepaddet gehören, lass ich es lieber so stehen. ich seh halt lieber direkt was los is bevor ich mir in meiner source alles von überall zusammensuchen muss... wie heisst so schön:
    Chaos ist die Wonne der Fantasie


    EDIT:

    toll, hab grad einen größeren bug gefunden.
    sobald ich mehrere personen in meiner menschen.yml datei stehen hab, und ich möchte zb person 1 etwas ändern, und speichere das, werden alle personen in der datei gelöscht und es gibt nur noch einen eintrag mit den daten die ich zuvor gespeichert hab...
    ums kurz zu machen: es gibt im parser keine genaue definition davon wer welche person ist, bzw. es wird in der menschen.yml datei nicht gegliedert.

    kennt da jemand abhilfe?
    thx

    Geändert von Armitage2k (13.05.2006 um 18:36 Uhr)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •