PHP übergibt falsche Kennung

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

  • PHP übergibt falsche Kennung

    Hallo,

    ich weiß echt nicht mehr weiter, ich habe schon fast alles ausprobiert.
    Ich habe einen W2K3 Server, mit PHP4/5, MYSQL 5, MSSQL, IIS und Apache alles durchprobiert, der Fehler bleibt der gleiche.

    Bei einem Zugriff von PHP auf die MYSQL-Datenbank, wir folgende Fehlermeldung ausgegeben:
    Code:
    Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'SYSTEM'@'localhost' (using password: NO) in
    Die Frage ist, woher kommt der Benutzername SYSTEM, und warum wird kein Passwort übergeben? Im Skript wird beides übergeben, und exakt jenes Skript läuft auf meinem Unix-System ohne Fehler.
    Ich habe auch schon versucht, das Skript über den IIS auszuführen, die Fehlermeldung bleibt die gleiche, nur anstatt SYSTEM, ist hier der Benutzername IUSR_xxxx.

    Woran kann es liegen, daß PHP die Kennung und das Paßwort nicht übergibt? Die Daten in der PHP.INI werden korrekterweise ignoriert, da SQL Safe Mode auf On steht. Auch eine Testinstallation von PHPMyAdmin bringt die identische Fehlermeldung.

    Ich kann auf die MYSQL-Datenbank, mit der gewünschten Kennung, unter der GUI, sowie mit dem COmmand-Prompt (mysql.exe) ohne Probleme zugreifen. Würde PHP also die korrekten Daten übergeben, so käme es auch zu einem Zugriff.

    Was könnte noch falsch sein? Ich habe auch probiert, die SQL-Datenbank auf einen MSSQL zu portieren, auch hier übergibt PHP nicht die Kennung und das Passwort, sondern benutzt die oben genannten Benutzer, ohne Passwort.
    Yours
    Loeffel

    I will gather myself around my faith for light does the darkness most fear.
    Murphy: Professionals are predictable, but beware the world is full of amateurs.

  • #2
    Darf man mal den Code sehen?

    Kommentar


    • #3
      Er fliegt hier

      PHP-Code:
      function sql_db($sqlserver$sqluser$sqlpassword$database$persistency true)
          {
              
      $mtime microtime();
              
      $mtime explode(" ",$mtime);
              
      $mtime $mtime[1] + $mtime[0];
              
      $starttime $mtime;

              
      $this->persistency $persistency;
              
      $this->user $sqluser;
              
      $this->password $sqlpassword;
              
      $this->server $sqlserver;
              
      $this->dbname $database;

              
      $this->db_connect_id = ($this->persistency) ? mysql_pconnect($this->server$this->user$this->password) : mysql_connect($this->server$this->user$this->password);

              if( 
      $this->db_connect_id )
              {
                  if( 
      $database != "" )
                  {
                      
      $this->dbname $database;
                      
      $dbselect mysql_select_db($this->dbname);

                      if( !
      $dbselect )
                      {
                          
      mysql_close($this->db_connect_id);
                          
      $this->db_connect_id $dbselect;
                      }
                  }

                  
      $mtime microtime();
                  
      $mtime explode(" ",$mtime);
                  
      $mtime $mtime[1] + $mtime[0];
                  
      $endtime $mtime;

                  
      $this->sql_time += $endtime $starttime;

                  return 
      $this->db_connect_id;
              }
              else
              {
                  
      $mtime microtime();
                  
      $mtime explode(" ",$mtime);
                  
      $mtime $mtime[1] + $mtime[0];
                  
      $endtime $mtime;

                  
      $this->sql_time += $endtime $starttime;

                  return 
      false;
              }
          } 
      bei dieser Zeile:

      PHP-Code:
              $this->db_connect_id = ($this->persistency) ? mysql_pconnect($this->server$this->user$this->password) : mysql_connect($this->server$this->user$this->password); 
      Ist der Original Quellcode des phpBB Forums. Wie gesagt, dieser Code läuft exakt so, auf einem Unixserver fehlerfrei und problemlos. Ich wollte einfach das Forum portieren. Deswegen verstehe ich auch nicht, wo der Fehler sein soll. Im Quellcode kann er nicht sein, denn dann würde das Forum auch nicht auf dem Unixserver laufen. Es muß ein Fehler in der PHP, und/oder MySQL-Konfiguration sein, aber ich kann ihn nicht finden. :-(
      Yours
      Loeffel

      I will gather myself around my faith for light does the darkness most fear.
      Murphy: Professionals are predictable, but beware the world is full of amateurs.

      Kommentar


      • #4
        Lass dir mal direkt vor der Zeile mit mysql_(p)connect die Werte von $this->server, $this->user und $this->password ausgeben. Nur um sicher zu gehen, dass es die sind, die du erwartest.
        Denn außer den mysql.default_*-Werten in der php.ini gibt es eigentlich keine Möglichkeit, die Werte zu setzen.

        Kommentar


        • #5
          Scheint als hättest Du in der config.php noch die falschen Werte stehen. Dort sind normalerweise, zumindest bei meinem noch etwas älteren Board, die Benutzerdaten abgelegt. Schau dort mal rein.

          Kommentar


          • #6
            @godfrey
            Wenn es so wäre, dann würde das Board auf dem Unixserver nicht laufen. Wie ich schon sagte, ich habe einfach alles rüberkopiert, dann unter MySQL den Benutzer eingerichtet, ihm die entsprechenden Berechtigungen gegeben, und überprüft, ob ich mich mit der Kennung, und dem Passwort anmelden kann, und auf die Datenbank zugreifen kann. Da dies alles fehlerfrei funktioniert, muß der Fehler woanders liegen, besonders weil

            @onemorenerd
            ich die Variablen einfach direkt in den Zeilen davor mal per Hand gesetzt habe. Ich habe also diese Zeilen:
            PHP-Code:
                    $this->user $sqluser;
                    
            $this->password $sqlpassword;
                    
            $this->server $sqlserver;
                    
            $this->dbname $database
            mit

            PHP-Code:
                    $this->user 'benutzername';
                    
            $this->password 'passwort';
                    
            $this->server 'server';
                    
            $this->dbname 'datenbank'
            ersetzt. Die Fehlermeldung bleibt dieselbe. Deswegen tippe ich auf einen Konfigurationsfehler im PHP, aber ich weiß nicht mehr, wo ich anfangen soll zu suchen.
            Yours
            Loeffel

            I will gather myself around my faith for light does the darkness most fear.
            Murphy: Professionals are predictable, but beware the world is full of amateurs.

            Kommentar

            Lädt...
            X