Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Speichert nur Zahlen keine Buchstaben

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Speichert nur Zahlen keine Buchstaben

    Hey,

    ich seh den Wald vor lauter Bäume nicht mehr

    Das ist mein Forumlar

    PHP-Code:
    ´$a_content="
    <form name=\"form1\" method=\"post\" action=\"shapesystem.php?admin=news&edit=editiert&id="
    .$_GET['id']."\">
    <table width=\"100%\"  border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
    <tr>
    <td align=\"left\" valign=\"top\"><input name=\"titel\" type=\"text\" value=\""
    .$news_u->titel."\">
    <br>
    <textarea name=\"content\">"
    .$news_u->content_1."</textarea><br>
    <textarea name=\"content2\">"
    .$news_u->content_2."</textarea>      
    <br></td>
    </tr>
    </table>
    <input type=\"submit\" name=\"Submit\" value=\"Submit\">
    </form>
    "

    Und dort soll er die änderungen Speichern (Hab erstmal zum Test nur ein Row zum Update genommen)

    PHP-Code:
    if($_POST['Submit']){
    $titel $_POST['titel'];
    $titel mysql_real_escape_string($titel);
    mysql_query("UPDATE news_bereich SET titel = ".$titel." WHERE news_id = ".$_GET['id']."");

    So, gebe ich Zahlen ein übernimmt er sie sofort.. geht es um Buchstaben speichert er nix in die Tabelle.. Was mach ich falsch?

    gruß,
    shapie
    What You See Is What You Get“


  • #2
    Code:
    ".$titel."
    Da fehlen Anführungszeichen.
    Code:
    '" . mysql_real_escape_string($titel) . "'
    Bitte beschäftige dich mit SQL-Injection.

    Gruß
    http://hallophp.de

    Kommentar


    • #3
      Ergänzung:
      Du hast
      $titel = mysql_real_escape_string($titel);
      Man lässt aber die ursprüngliche Variable unberührt und schreibt es so wie Asipak das getan hat. So kannst du $titel später im Script noch mit den Originaldaten nutzen.
      PHP-Code:
      if ($var != 0) {
        
      $var 0;

      Kommentar


      • #4
        Weiterhin hast du zwar $titel schön escaped aber verwendest sorglos $_GET['id'] direkt im Query. Ich nehme an, id ist eine Zahl, in dem Fall ist intval($_GET['id']) angebracht.
        @fschmengler - @fschmengler - @schmengler
        PHP Blog - Magento Entwicklung - CSS Ribbon Generator

        Kommentar


        • #5
          Zitat von Shapehead Beitrag anzeigen
          Hey,

          So, gebe ich Zahlen ein übernimmt er sie sofort.. geht es um Buchstaben speichert er nix in die Tabelle.. Was mach ich falsch?

          gruß,
          shapie
          Speichert er bei Buchstaben in der Tabelle zufällig ne 0? Wenn ja dann solltest du den Feldtyp von INT auf VARCHAR ändern...
          "Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".

          Kommentar


          • #6
            Danke @Asipak, Fab, Wolla, Dark Guardian

            Es lag an intval..
            Zum Thema Sql-Injection..

            Werde ich mich mal mit beschäftigen. Es sollte nur erstmal Testhalber dienen.
            What You See Is What You Get“

            Kommentar


            • #7
              Es lag an den fehlenden einfachen Anführungszeichen im Query aber offenbar hast du das ja aus Versehen auch repariert
              @fschmengler - @fschmengler - @schmengler
              PHP Blog - Magento Entwicklung - CSS Ribbon Generator

              Kommentar


              • #8
                EDIT

                Peinlich^^

                Danke Rusty
                What You See Is What You Get“

                Kommentar


                • #9
                  Dann wirds Zeit, dass Du Dich mit den Grundlagen beschäftigst, dann würdest Du wissen, dass Dir da ein Komma fehlt.

                  Kommentar

                  Lädt...
                  X