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

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

    Gruß

    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.

      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.

        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...

          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.

            Kommentar


            • #7
              Es lag an den fehlenden einfachen Anführungszeichen im Query aber offenbar hast du das ja aus Versehen auch repariert

              Kommentar


              • #8
                EDIT

                Peinlich^^

                Danke Rusty

                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