Ankündigung

Einklappen
Keine Ankündigung bisher.

Forumseingaben korrekt ausgeben

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Forumseingaben korrekt ausgeben

    Hallo zusammen,

    kann mir jemand bitte sagen, wo genau die fehler im Code liegen? Die
    Ausgabe erfolgt nicht so zufriedenstellend, deshalb würde ich gerne dieses ändern
    So sieht der "fertige" Code aus: http://www.10140517.wavelearn.com/forum5.php

    hier der "HTML"-Anteil:
    Code:
    <?php
    require_once ("forumsfunktionen5.php");
    ?>
    <html>
      <head>
          <title>Forum 9</title>
            <link href="forum5.css" rel="stylesheet" type="text/css" />
      </head>
      <body>
        <h1>Willkommen beim Forum</h1>
    <?php formular_ausgeben(); ?>
        <hr />
    <?php
      for ($i = count($beitraege)-1; $i >= 0; $i--)
      {
        beitrag_ausgeben($beitraege[$i]);
        print "<hr>\n";
      }
    ?>
        <p>Thats all folks.</p>
      </body>
    </html>
    und hier die Forumsfunktionen als PHP-Sheet:

    PHP-Code:
    <?php
    $beitraege 
    = array();
    beitrag_schreiben();
    beitraege_einlesen();

    function 
    beitrag_schreiben($datei "beitraege.txt")
    {
      if (!empty(
    $_REQUEST['text']))
      {
        
    $dh fopen($datei"a");
        if (!
    $dh)
        {
          print 
    "Kann Datei nicht erstellen!\n";
        }
        else
        {
          
    fputs($dh$_REQUEST['text']."\n");
          if (!empty(
    $_REQUEST['betreff']))
          {
            
    fputs ($dh$_REQUEST['betreff']."\n");
          }
          else
              {
            
    fputs ($dh"unbekannt\n");
          }
          if (!empty(
    $_REQUEST['text']))
          {
            
    fputs ($dh$_REQUEST['text']."\n");
          }
          else
              {
            
    fputs ($dh"unbekannt\n");
          }
          if (!empty(
    $_REQUEST['autor']))
          {
            
    fputs ($dh$_REQUEST['autor']."\n");
          }
          else
              {
            
    fputs ($dh"unbekannt\n");
          }
          
    fclose ($dh);
        }
      }
    }

    function 
    beitraege_einlesen($datei "beitraege.txt")
    {
      global 
    $beitraege;

      
    $dh fopen($datei"r");
      if(!
    $dh)
      {
        print 
    "Kann Datei \"$datei\" nicht &ouml;ffnen!\n";
      }
      else
      {
        for (
    $i 0; !feof($dh); $i++)
        {
          
    $zeile fgets($dh);
          if (
    $zeile != "")
          {
            
    $beitraege[$i]['text'] = $zeile;
            
    $beitraege[$i]['autor'] = fgets($dh);
            
    $beitraege[$i]['betreff'] = fgets($dh);
          }
        }
        
    fclose($dh);
      }
    }

    function 
    beitrag_ausgeben($beitrag)
    {
        print 
    "Betreff: ".$beitrag['betreff']."\n";
        print 
    "<br>";
        print 
    "Eintrag: ".$beitrag['text']."\n";
        print 
    "<br>";
        print 
    "Autor: ".$beitrag['autor']."\n";
        print 
    "<br>";
    }

    function 
    formular_ausgeben()
    {
    ?>
          <form method="POST" action="<?php print $_SERVER['PHP_SELF'?>">
            <strong>Betreff: <br /></strong><input type="text" name="betreff">
            <br />
            <b>Text: <br /></b><textarea rows="10" cols="50" name="text"></textarea>
            <br />
            <b>Autor: <br /></b><input type="text" name="autor">&nbsp;&nbsp;&nbsp;
            <input type="submit" value="absenden">
          </form>
    <?php
    }
    ?>
    Des Weiteren verstehe ich nicht was dieses hier bedeutet:

    $beitraege[$i]['text'] = $zeile;
    $beitraege[$i]['autor'] = fgets($dh);
    $beitraege[$i]['betreff'] = fgets($dh);

    Vielen Dank schon mal im Vorraus,

    D

  • #2
    Hi,

    kann mir jemand bitte sagen, wo genau die fehler im Code liegen?
    wie äußert sich der

    Des Weiteren verstehe ich nicht was dieses hier bedeutet:
    müsste Dir eigentlich klar sein, wenn Du diese Zeile hier siehst: $beitraege = array();

    if (!empty($_REQUEST['text']))
    Warum verwendest Du $_REQUEST und nicht $_POST oder $_GET?!?

    Irgendwie unklar, was Du genau willst?!


    mfg Wolf29

    Kommentar


    • #3
      hi,

      wenn man auf http://www.10140517.wavelearn.com/forum5.php testweise schreibt, kommen die eingaben komplett durcheinander ´raus. die sollten bevorzugter weise so ausgegeben werden, wie angegeben.


      $beitraege[$i]['text'] = $zeile;
      $beitraege[$i]['autor'] = fgets($dh);
      $beitraege[$i]['betreff'] = fgets($dh);
      warum steht da bei 'autor' und 'betreff' fgets und nicht $zeile wie beim 'text'???

      thx...

      Kommentar


      • #4
        warum steht da bei 'autor' und 'betreff' fgets und nicht $zeile wie beim 'text'???
        hätte man auch mit fgets machen können. Höre raus, das es nicht dein Code ist also.

        Na ja, machst auch einen etwas komplzierten Weg, um die Daten auszugeben. Nutze doch einfach ein simples Affenformular (http://www.php-kurs.com/formularauswertung-mit-php.htm oder http://www.php.de/wiki-php/index.php...rdverfahren%29)

        mfg Wolf29

        Kommentar


        • #5
          beim code handelt es sich um einige angaben die ich im rahmen des studiums erhalten habe, somit ist es nicht von mir 100% generierter code. ich muss anhand dieser das formular eben so erweitern dass es die angaben korrekt wieder gibt... würde nur gerne wissen, ob der fehler offensichtlich ist (und wo der liegt) und wie zu beheben dieser sei...

          Kommentar


          • #6
            Zitat von wolf29 Beitrag anzeigen
            Na ja, machst auch einen etwas komplzierten Weg, um die Daten auszugeben. Nutze doch einfach ein simples Affenformular (http://www.php-kurs.com/formularauswertung-mit-php.htm oder http://www.php.de/wiki-php/index.php...rdverfahren%29)
            die links sind klasse, danke...

            Kommentar


            • #7
              Also ein Fehler liegt in der Art der Speicherung, da sobald ein Beitrag mehrere Zeile hat, alles durcheinander kommt.

              Kommentar


              • #8
                beim code handelt es sich um einige angaben die ich im rahmen des studiums erhalten habe, somit ist es nicht von mir 100% generierter code. ich muss anhand dieser das formular eben so erweitern dass es die angaben korekkt wieder gibt
                Hausaufgaben machen wir eigentlich nicht - das soll ja ne Übung für Dich sein. Arbeite Dich doch systematisch vor: schau, wie die Daten übergeben werden, wie Sie in dem Textfile abgespeichert werden und wie/wo sie wider ausgelesen werden. Dann findest Du das ziemlich schnell!!

                mfg Wolf29

                Kommentar


                • #9
                  Zitat von wolf29 Beitrag anzeigen
                  Arbeite Dich doch systematisch vor: schau, wie die Daten übergeben werden, wie Sie in dem Textfile abgespeichert werden und wie/wo sie wider ausgelesen werden. Dann findest Du das ziemlich schnell!!
                  genau das habe ich gemacht, ich finds einfach nicht... trotzdem danke.

                  Kommentar


                  • #10
                    genau das habe ich gemacht, ich finds einfach nicht... trotzdem danke.
                    ChrisVA hat Dir schon nen entscheidenden Tipp gegeben

                    mfg Wolf29

                    Kommentar


                    • #11
                      habs schon gesehen, kann aber damit nichts anfangen! php ist für mich noch böhmisches dorf...

                      Kommentar


                      • #12
                        kann damit leider nichts anfangen, habs schon gesehen. für mich sond solche sachen noch böhmische dörfer, bei solchen infoschnipseln erst recht...

                        Kommentar


                        • #13
                          fputs($dh, $_REQUEST['text']."\n");
                          ...nach dem else ist z.B. zuviel!

                          mfg Wolf29

                          Kommentar


                          • #14
                            Ok, ausnahmsweise mal. Ändere das hier

                            PHP-Code:
                                  if ($zeile != "")
                                  {     
                                    
                            $beitraege[$i]['text'] = $zeile;
                                    
                            $beitraege[$i]['autor'] = fgets($dh);
                                    
                            $beitraege[$i]['betreff'] = fgets($dh);
                                  } 


                            in das hier

                            PHP-Code:
                                  if ($zeile != "")
                                  {
                                    
                            $beitraege[$i]['text'] = fgets($dh);
                                    
                            $beitraege[$i]['autor'] = fgets($dh);
                                    
                            $beitraege[$i]['betreff'] = $zeile;
                                  } 
                            mal ab. Anbei: der Code ist alles andere als schön und veraltet! Zudem bitte diese Zeile hier rausnehmen nach dem ersten else: fputs($dh, $_REQUEST['text']."\n");

                            mfg Wolf29

                            Kommentar


                            • #15
                              ok, dass mit der zeile hab ich vorhin schon gemacht, die code änderung jetzt auch. nur gibt mir die seite folgendes raus:
                              Betreff: (Ausgabe) textfeld
                              Eintrag: (Ausgabe) autorfeld
                              Autor: bleibt leer, erst in der unteren (vorherigen) Ausgabe stehts dann richtig.
                              das ist echt zum mäuse melken. das mit veralteten codes hab ich schon gemerkt und gehört, aber ich hab noch 4 monate und 2 php-manuskripte noch vor mir, deshalb ist es noch zu ertragen...
                              danke vielmals für die bisherige hilfe/mühe...

                              Kommentar

                              Lädt...
                              X