Textarea Problem

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

  • Textarea Problem

    Moin Moin Leute,

    Habe mal wieder ein Problem diesmal aber mit einem Textarea...

    Ich habe ein Script geschieben womit ich Texte in eine Datenbank eintragen kann und auch wieder auslesen kann.
    Nun zu meinem Problem:
    Wenn ich einen Text mit Titel eigegeben habe und ihn abschicke (Datenbank eintrag) werden nur manche Texte eingetragen.

    Hier mal der Script:

    PHP-Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Text - Erzeugt</title>
    <link rel='stylesheet' type='text/css' href='../../../style.css'>
    </head>
    <body topmargin='0'>
    <div align='center'>
      <table width='912' border='0' cellspacing='0' cellpadding='0'>
        <tr>
          <td><table width='912' border='0' cellspacing='0' cellpadding='0'>
            <tr>
              <td background='../../../style/l_rahmen.png'>&nbsp;</td>
              <td><div align='left'><img src='../../../style/texte/gb.png' width='300' height='33'></div></td>
              <td background='../../../style/r_rahmen.png'>&nbsp;</td>
            </tr>
            <tr>
              <td width='10' background='../../../style/l_rahmen.png'>&nbsp;</td>
              <td width='890'>

    <?php

    require ("../config.inc.php");

    if (isset(
    $_POST['anlegen'])) {

    //Schreibarbeit durch Umwandlung ersparen
    foreach ($_POST as $key=>$element) {
        
    //Eingaben Filtern
        
    ${"f_".$key} = $element;
    }

    $f_gebdatum=date("Y-m-d H:i:s");

    mysql_query("INSERT INTO $dbtabelle VALUES('','$gebtitel','$f_gebdatum','$gebinhalt')");


    echo
    "

    <table width='300'>
      <tr>
        <td align='center' colspan='3'>- TEXT ERZEUGT - <br>
          Der TEXT: 
    $f_ntitel wurde erzeugt.<br>
         </td>
      </tr>
    </table>
    "
    ;

    } else {
        echo
    "<table width='300'>
      <tr>
        <td align='center' colspan='3'>- FEHLER - <br>
          Text konnte nicht erzeugt werden.<br>
          Versuchen Sie es bitte erneut!<br>
          <a href='javascript:history.back()'>Zur&uuml;ck</a></td>
      </tr>
    </table>
    "
    ;
    }

    include(
    "navigator.html");

    ?>
    </td>
              <td width='7' background='../../../style/r_rahmen.png'>&nbsp;</td>
            </tr>
          </table></td>
        </tr>
      </table>
      <table width='912' border='0' cellspacing='0' cellpadding='0'>
        <tr>
          <td width='912' height='38' background='../../../style/copy.png'><table width='910' border='0' cellspacing='0' cellpadding='0'>
            <tr>
              <td><div align='center'>Copyright by Funny-Brother.de 2002-2006 | <a href='../../../admin.htm'>Admin</a> </div></td>
            </tr>
          </table></td>
        </tr>
      </table>
    </div>
    </body>
    </html>
    Wenn ich jetzt den selben Text über die SQL Datenbank direkt eintrage wir er angenommen aber über das script nicht.
    Hier kommen die beiden Texte als Kurzform:

    1. Text der Akzeptiert wurde:
    Em Jrond es jeder Rentner friedlich.
    Hä wied nur stur on unjemütlich,
    wenn ene die Bemerkung maach:
    „Wat deeste dann de janze Daach?“

    De Rentner hät üwerhaup kenn Zick
    Däm setz et Alter em Jenick.
    Jetz spürt dä irsch ens wat dat es,
    ene Ruhestand em Dauerstreß.

    ...

    2. Text der nicht genommen wurde:
    Melodie: An der Nordseeküste..

    Wir haben schon recht lange nachgedacht,
    womit man Dir eine Freude wohl macht.
    Da kam die Erleuchtung nach viel hin und her,
    dass ein Schirm für Dich grad' das Richtige wär.

    Dieser Schirm, der ist Spitze,
    ja, der ist perfekt,
    man höre und staune,
    was er alles bezweckt.

    Er schützt Dich vor Hagel und Regenguss,
    Vor Schneeschauer und vor so manchen Verdruss.
    Und wenn es die Sonne zu gut mit Dir meint,
    so ist er auch dann Dem guter Freund.

    ...

    ___________
    Wo liegt jetzt das Problem ich habe schon alles was mir in den Sinn kommt ausprobiert aber das hat mich auch nicht weiter gebracht.

    Bitte helft mit........

    greetz lordvoldemort2005

  • #2
    1. du bist im falschen forum *verschieb*
    2. ich sehe kein form
    3. ich sehe keine textarea
    Kissolino.com

    Kommentar


    • #3
      Sorry habe da noch eine Datei Vergessen..
      Das ober Script ist jenes, welches die Daten an die Datenbank schickt.
      Jetzt Kommt das Eingabescript:

      PHP-Code:
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
      "http://www.w3.org/TR/html4/loose.dtd"
      >
      <
      html>
      <
      head>
      <
      title>Administration</title>
      <
      link rel='stylesheet' type='text/css' href='../../../style.css'>
      </
      head>
      <
      body topmargin='0'>

      <
      div align='center'>
        <
      table width='912' border='0' cellspacing='0' cellpadding='0'>
          <
      tr>
            <
      td><table width='912' border='0' cellspacing='0' cellpadding='0'>
              <
      tr>
                <
      td background='../../../style/l_rahmen.png'>&nbsp;</td>
                <
      td><img src="../../../style/texte/gb-admin.png" width="466" height="33"></td>
                <
      td background='../../../style/r_rahmen.png'>&nbsp;</td>
              </
      tr>
              <
      tr>
                <
      td width='10' background='../../../style/l_rahmen.png'>&nbsp;</td>
                <
      td width='890'><form method='post' action='erzeugenews.php'>
        <
      table width='500' border='0' cellspacing='2' cellpadding='2'>
          <
      tr>
            <
      td width='202' valign='top'>Geburtstagstext Titel :</td>
            <
      td width='391'>
              <
      input type='text' name='gebtitel' maxlength='150' size='75'>
            </
      td>
          </
      tr>
          <
      tr>
            <
      td width='391' valign='top'>Geburtstagstext Inhalt :</td>
            <
      td width='391'>
              <
      textarea name='gebinhalt' cols='75' rows='5' wrap='PHYSICAL'></textarea>
      </
      td>
          </
      tr>
          <
      tr>
            <
      td colspan="2" valign='top'>&nbsp;      </td>
          </
      tr>
          <
      tr>
            <
      td width='202' valign='top'>&nbsp;</td>
            <
      td width='391'>&nbsp;</td>
          </
      tr>
        </
      table>

          <
      input type='submit' name='anlegen' value='Text Anlegen'>
           <
      input type='reset' name='Löschen' value='Reset'>
        </
      p>
      </
      form>
                  <
      table width='600'>
                    <
      tr align='left'>
                      <
      td class='latestnews' colspan='2'>Admin-Navigator</td>
                    </
      tr>
                    <
      tr>
                      <
      td colspan='2' class='autor'>
                        <
      table width='100%' border='0' cellspacing='2' cellpadding='2'>
                          <
      tr>
                            <
      td><a href='../index.php' class="autorblack">Textportal</a></td>
                            <
      td><a href='newsadmin.htm' class="autorblack">Text Hinzuf&uuml;gen</a></td>
                            <
      td><a href='newsauswahl.php' class="autorblack">Text Bearbeiten</a></td>
                            <
      td><a href='newsloeschen.php' class="autorblack">Text L&ouml;schen</a></td>
                          </
      tr>
                      </
      table></td>
                    </
      tr>
                    <
      tr>
                      <
      td colspan='2' class='latestnews'>&nbsp;</td>
                    </
      tr>
                  </
      table>            </td>
                <
      td width='7' background='../../../style/r_rahmen.png'>&nbsp;</td>
              </
      tr>
            </
      table></td>
          </
      tr>
        </
      table>
        <
      table width='912' border='0' cellspacing='0' cellpadding='0'>
          <
      tr>
            <
      td width='912' height='38' background='../../../style/copy.png'><table width="910" border="0" cellspacing="0" cellpadding="0">
              <
      tr>
                <
      td><div align="center">Copyright by Funny-brother.de 2002-2006 | <a href="../../../admin.htm">Admin</a> </div></td>
              </
      tr>
            </
      table></td>
          </
      tr>
        </
      table>
      </
      div>
      </
      body>
      </
      html
      Ich hoffe das hilft weiter...

      Kommentar


      • #4
        Dass der zweite Text "nocht genommen" wird, ist kein Wunder und auch kein Zufall - denn schließlich enthält er ein Hochkomma.

        Beschäftige dich damit, wie Daten zu behandeln sind, bevor man sie dynamisch in eine MySQL-Query einsetzt.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Wo soll das Problem mit dem Hochkomma sein? Ich sehe da nix denn ist alles i.O.

          Kommentar


          • #6
            PHP-Code:
            mysql_query("INSERT INTO $dbtabelle VALUES('','$gebtitel','$f_gebdatum','$gebinhalt')"); 
            du darfst nicht einfach deine Post-werte in die Datenbank schreiben, was du hier ja zu machen scheinst!
            weiter hast du deine Felder im form so:
            PHP-Code:
            <input type='text' name='gebtitel' maxlength='150' size='75'>
            //...
            <textarea name='gebinhalt' cols='75' rows='5' wrap='PHYSICAL'></textarea
            packst hier:
            PHP-Code:
            //Schreibarbeit durch Umwandlung ersparen
            foreach ($_POST as $key=>$element) {
                
            //Eingaben Filtern
                
            ${"f_".$key} = $element;
            }

            $f_gebdatum=date("Y-m-d H:i:s"); 
            jedoch die Werte in eine Variable mit f_ am Anfang. Du solltest also zuerst einmal auf E_ALL arbeiten, denn $gebtitel und $gebinhalt sind höchstwahrscheinlich undefiniert, so dass sie im query leer sind. du musst also $f_gebtitel und $f_getinhalt schreiben!!!

            und dann solltest du sie durch die funktion mysql_real_escape_string() schicken, um dir deine Datenbank nicht zu zerschießen lassen!

            Kommentar


            • #7
              Original geschrieben von lordvoldemort
              Wo soll das Problem mit dem Hochkomma sein? Ich sehe da nix denn ist alles i.O.
              Man, informiere dich bitte, wenn ich dir schon sage, wo das Problem liegt!
              Wenn "alles i.O." wäre, dann hättest du ja wohl nicht diesen Thread hier aufgemacht, hm?


              Wenn du mal ein bisschen Debugging betrieben hättest, Kontrollausgabe der Query, Abfrage von mysql_error() - dann hättest du das Problem sogar schon selber sehen können.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Text mit Hochkomma wird in casu nicht genommen. Stichwort mysql_real_escape_string()

                warum steht das nie in den Tutorials und teuren oreilly büchern.

                @wahsaga debugging hilft da nichts, solche Dinge muss man wissen sonst sieht man sie auch in der kontrollausgabe nicht..

                ich propagier schon lang eine Funktion S($s) {return '\'' . mysql_real_escape_string($s) .'\'';}
                Zuletzt geändert von muh (newbie); 19.05.2006, 12:32.

                Kommentar


                • #9
                  Original geschrieben von muh (newbie)
                  debugging hilft da nichts, solche Dinge muss man wissen sonst sieht man sie auch in der kontrollausgabe nicht..
                  Die Fehlermeldung, die mysql_error in so einem Falle bringt, halte ich für aufschlussreich genug für einen denkenden Menschen - dass der Fehler dort ausgerechnet an der Stelle um das Hochkomma herum gemeldet wird, ist ja keine Willkür.
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    schafft die Schulen ab, ein denkender Mensch kommt ja von selber drauf......

                    Kommentar


                    • #11
                      Original geschrieben von muh (newbie)
                      schafft die Schulen ab, ein denkender Mensch kommt ja von selber drauf......
                      OffTopic:
                      Schafft die Schulbücher ab, Lesen können wir von den PISA-Kindern ja eh nicht mehr erwarten - stellt mehr Lehrer ein, die einem jeden einzelnen alles und immer wieder persönlich erklären ...
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        Du warst lange nicht mehr in der Schule wahsaga
                        - glaubst Du es gibt auch nur einen Schüler der etwas
                        in einem Schulbuch liest bevor es vom Lehrer besprochen
                        wurde?

                        Kommentar


                        • #13
                          wenn alle Menschen PC's wären wie wahsaga, würde es diese nicht mehr brauchen.

                          Kommentar

                          Lädt...
                          X