Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem mit mysqli_real_escape_string

Einklappen

Neue Werbung 2019

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

  • Problem mit mysqli_real_escape_string

    Hallo,

    auf meiner Seite benutze ich folgende funktion gegen SQL injection.

    PHP-Code:
    <?php

    $mysql_connection 
    mysqli_connect("***""***""***""****");

    $charset "SET NAMES 'utf8 - utf8_general_ci'";
    mysqli_query($mysql_connection$charset);

    function 
    m($str)
    {
    $str mysqli_real_escape_string($mysql_connection$str);
    return 
    "'".$str."'";
    }

    ?>
    Immer wenn was aus/in einer Tabelle gelesen/geschrieben wird benutze ich dann die Funktion 'm'.

    Das hatte auch alles bis vor kurzen funktioniert.

    Allerdings bekomme ich jetzt folgende Fehlermeldung:


    Notice: Undefined variable: mysql_connection in /homepages/37/d594307893/htdocs/common.inc.php on line 15

    Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, null given in /homepages/37/d594307893/htdocs/common.inc.php on line 15


  • #2
    Die Variable $mysql_connection übergibst du der Funktion ja auch nicht

    Kommentar


    • #3
      Stimmt.

      hab jetzt in der Funktion die $mysql_connection erneut definiert. Jetzt funktioniert es.

      Danke

      Kommentar


      • #4
        Zitat von Html-Dev Beitrag anzeigen
        hab jetzt in der Funktion die $mysql_connection erneut definiert. Jetzt funktioniert es.
        Was heißt "erneut definiert"? Baust du jetzt jedesmal eine neue Datenbankverbindung auf?

        Kommentar


        • #5
          PHP-Code:
          function m($str$mysql_connection) {
              
          $str mysqli_real_escape_string($mysql_connection$str);
              return 
          "'".$str."'";

          Hoffentlich so.

          Kommentar


          • #6
            Zitat von hausl Beitrag anzeigen
            PHP-Code:
            function m($str$mysql_connection) {
            $str mysqli_real_escape_string($mysql_connection$str);
            return 
            "'".$str."'";

            Hoffentlich so.


            So hatte ich es ausprobiert. Ging aber nicht.

            Ich hab es jetzt so:

            PHP-Code:
            function m($str)
            {
                
            $mysql_connection mysqli_connect("*****""*****""*****""******");

                
            $str mysqli_real_escape_string($mysql_connection$str);
                return 
            "'".$str."'";

            Kommentar


            • #7
              War klar
              ​Machs wie hausl es hat.

              Kommentar


              • #8
                Hatte ich ausprobiert. Ging aber nicht.

                Aber ich glaube es könnte auch mit Globalen Funktionen gehen. Hab da mal von gehört. Weiß aber nicht genau wie sie funktionieren

                Kommentar


                • #9
                  Zitat von Html-Dev Beitrag anzeigen
                  Hatte ich ausprobiert. Ging aber nicht.
                  Tolle Fehlerbeschreibung...

                  Zitat von Html-Dev Beitrag anzeigen
                  Aber ich glaube es könnte auch mit Globalen Funktionen gehen. Hab da mal von gehört. Weiß aber nicht genau wie sie funktionieren
                  Du solltest das Wort "global" in einen verschließbaren Schrank stecken, ihn zusperren und den Schlüssel im Klo runterspülen. Glaub mir, da kommt nichts Gutes dabei raus.

                  Kommentar


                  • #10
                    Wenn ich folgendes nehme wird angezeigt, dass das 2 Argument vermisst wird. Ich habe dann bei jeder 'm' Funktion auch noch die $mysql_connection hinzugefügt. Aber da wird die Fehlermeldung immer noch angezeigt.

                    function m($str, $mysql_connection) {
                    $str = mysqli_real_escape_string($mysql_connection, $str);
                    return
                    "'".$str."'";
                    }

                    Kommentar


                    • #11
                      Zitat von Html-Dev Beitrag anzeigen
                      Wenn ich folgendes nehme wird angezeigt, dass das 2 Argument vermisst wird. Ich habe dann bei jeder 'm' Funktion auch noch die $mysql_connection hinzugefügt. Aber da wird die Fehlermeldung immer noch angezeigt.
                      Dann hast du an irgendeiner Stelle das 2. Argument vergessen. Die Fehlermeldung sagt dir in welcher Datei und in welcher Zeile.

                      Kommentar

                      Lädt...
                      X