erbsenhirn: PHP Variable in MySQL einfügen

Hallo,

gleich folgt mein Quelltext, der aber nicht funzt.
Folgende Fehlermeldungen kommen:

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user ''@'localhost' (using password: NO) in /users/*******/www/registrieren.php on line 21

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in /users/*******/www/registrieren.php on line 21

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user ''@'localhost' (using password: NO) in /users/*******/www/registrieren.php on line 22

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in /users/*******/www/registrieren.php on line 22

  
<?php  
error_reporting(E_ALL);  
ini_set('display_errors', 1);  
  
  
$benutzername = $_POST["benutzername"];  
$passwort = $_POST["passwort"];  
$passwortcheck = $_POST["passwortcheck"];  
  
  
if ($passwort == $passwortcheck) {  
  
     $db = @new MySQLi('localhost', 'manwiedumm', 'uni99key', 'manwiedumm');  
     if (mysqli_connect_errno()) {  
         die('Konnte keine Verbindung zu Datenbank aufbauen.');  
     }  
  
     $sql = 'INSERT INTO  
            Daten(Benutzername, Passwort)  
        VALUES  
            ("'.mysql_real_escape_string($benutzername).'",  
             "'.mysql_real_escape_string($passwort).'");';  
  
     $result = $db->query($sql);  
};  
?>  

Vielen Dank für Ihre Hilfe.

  1. Hallo,

    Du verwendest die MySQLi-Erweiterung:

    $db = @new MySQLi('localhost', 'manwiedumm', 'uni99key', 'manwiedumm');

    [...]

    Es wäre daher eine gute Idee, die Maskierfunktion von mysqli zu verwenden:

    mysqli_real_escape_string()

    $sql = 'INSERT INTO
                Daten(Benutzername, Passwort)
            VALUES
                ("'.mysql_real_escape_string($benutzername).'",
                 "'.mysql_real_escape_string($passwort).'");';

    statt der Maskierfunktion der althergebrachten MySQL-Erweiterung.

    Anders ausgedrückt: Du willst ein i kaufen.

    Freundliche Grüße

    Vinzenz

  2. gleich folgt mein Quelltext, der aber nicht funzt.
    Folgende Fehlermeldungen kommen:

    Was hast du bisher unternommen um herrauszufinden was diese Fehlermeldungen bedeuten?

  3. Hi!

    Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user ''@'localhost' (using password: NO) in /users/*******/www/registrieren.php on line 21
    Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in /users/*******/www/registrieren.php on line 21

    Schau bitte ins PHP-Manual zur Arbeitsweise der Funktion. Sie möchte gern gemäß der auf der Verbindung ausgehandelten Zeichenkodierung arbeiten.

    $benutzername = $_POST["benutzername"];
    $passwort = $_POST["passwort"];
    $passwortcheck = $_POST["passwortcheck"];

    Warum kopierst du diese Werte in andere Variablen?

    $db = @new MySQLi('localhost', 'manwiedumm', 'uni99key', 'manwiedumm');
                ("'.mysql_real_escape_string($benutzername).'",

    Und warum nimmst du nicht die zur Extension mysqli passenden Funktionen/Methoden?

    Lo!

  4. Hello,

    Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user ''@'localhost' (using password: NO) in /users/*******/www/registrieren.php on line 21

    Hast Du keinen User angegeben und uns im Mutercode nur etwas falsches dargestsellt?

    <?php
    error_reporting(E_ALL);
    ini_set('display_errors', 1);

    $benutzername = $_POST["benutzername"];
    $passwort = $_POST["passwort"];
    $passwortcheck = $_POST["passwortcheck"];

    warum kopierst Du die $_POST-Werte erst um?

    if ($passwort == $passwortcheck) {

    Warum prüfst Du nicht wenigstens die Länge des neuen Passwortes?

    $db = @new MySQLi('localhost', 'manwiedumm', 'uni99key', 'manwiedumm');

    warum schaltest Du die Fehlermeldung aus?

    if (mysqli_connect_errno()) {
             die('Konnte keine Verbindung zu Datenbank aufbauen.');
         }

    Warum mischst Du OOP mit klassischer prozeduraler/funktionaler Programmierung?

    $sql = 'INSERT INTO
                Daten(Benutzername, Passwort)
            VALUES
                ("'.mysql_real_escape_string($benutzername).'",
                 "'.mysql_real_escape_string($passwort).'");';

    $result = $db->query($sql);
    };

    Fehlerbehandlung?

    ?>

      
      
      
      
      
    Liebe Grüße aus dem schönen Oberharz  
      
      
    Tom vom Berg  
    ![](http://selfhtml.bitworks.de/Virencheck.gif)  
      
    
    -- 
     ☻\_  
    /▌  
    / \ Nur selber lernen macht schlau  
    <http://bergpost.annerschbarrich.de>
    
    1. Hallo Tom,

      Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user ''@'localhost' (using password: NO) in /users/*******/www/registrieren.php on line 21

      Hast Du keinen User angegeben und uns im Mutercode nur etwas falsches dargestsellt?

      hat er nicht. Die Fehlermeldungen kommen von einem Verbindungsversuch, den mysql_real_escape_string() gemäß Doku vornimmt, der dem Aufruf von

      mysql_connect();

      ohne Übergabeparameter entspricht.

      Es existiert keine Verbindung, die mysql_real_escape_string() nutzen könnte, weil das Erbsenhirn die MySQLi-Erweiterung verwendet, worauf dedlfix und ich bereits hingewiesen haben.

      Freundliche Grüße

      Vinzenz

      1. Hello Vinzenz,

        hat er nicht. Die Fehlermeldungen kommen von einem Verbindungsversuch, den mysql_real_escape_string() gemäß Doku vornimmt, der dem Aufruf von

        Ach, wie dumm von mir. Wo Du es doch sogar geschrieben hattest :-)

        Das fehlende i war mir zwar aufgefallen, aber ich habe nicht weiter darüber nachgedacht, weil ich mich ja über die Mischung von mysqli-Objekten und klassischen Funktionen aufregen wollte ;-P

        Liebe Grüße aus dem schönen Oberharz

        Tom vom Berg

        --
         ☻_
        /▌
        / \ Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
      2. Moin!

        das Erbsenhirn

        ?

        --
        Vergesst Chuck Norris.
        Sponge Bob kann unter Wasser grillen!
        1. Hallo Steel,

          das Erbsenhirn
          ?

          schau' mal, wie sich der OP genannt hat ...

          Freundliche Grüße

          Vinzenz

          1. Hoi!

            das Erbsenhirn
            ?

            schau' mal, wie sich der OP genannt hat ...

            :D

            Ich sollte wieder Namen lesen.

            --
            Vergesst Chuck Norris.
            Sponge Bob kann unter Wasser grillen!