1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

Can't select the datebase (PHP to MSSQL)

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von 91ervans, 21 August 2011.

  1. 91ervans

    91ervans Benutzer

    Hallo liebes Forum,

    ich hab da ein Problem mit meinem MSSQL-Server.

    Ich hab da ein PHP-Script der auf meinen MSSQL-Server Connecten soll und mir in einer bestimmten Tabelle eine neue Zeile erstellen soll .

    Der PHP-Script schaut so aus:

    Code:
    <?php
    
        $host = "(local)\\SQLEXPRESS"; // your sql instance
        $user = "sa"; // username
        $pw = "tollespasswort"; // password
        $db = "Auth"; // db
        $md5_key = "2011"; // your md5 key
    
        $connect = mssql_connect($host,$user,$pw)
        or die("Can't connect to the datebase.");
    
        mssql_select_db($db,$connect)
        or die("Can't select the datebase");
    
    ?>
    
    <html>
      <head>
        <title>Register</title>
        <center>
        <h3 style="color:red">Register Page ( Pls insert more then 4 chars ! )</h3>
        <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
          Username : <input type="text" size="20" name="username" /><br />
          Password : <input type="password" size="20" name="password" /><br /><br />
          <input type="submit" value="Register now !" name="senden" />
        </form>
        <?php
    
          $usr = $_POST['username'];
          $pass = $_POST['password'];
          $endPw = $md5_key . $pass;
          $md5 = md5($endPw);
    
          $results = mssql_query("SELECT * FROM dbo.Accounts WHERE '$usr' LIKE login_name");
          $res = mssql_num_rows($results);
    
          if(strlen($usr) > 4 && strlen($pass) > 4)
          {
              if($res > 0)
              {
                  echo "Account Exists !";
              }
              else
              {
                  mssql_query("INSERT INTO dbo.Accounts(login_name,password,block,withdraw_remain_time,age,auth_ok,pcbang,last_login_server_idx,event_code,result) VALUES('$usr','$md5',0,0,18,1,1,1,0,1)");
                  echo "Registration Success !";
              }
          }
          else
          {
              echo "Username or Password to small...";
          }
    
        ?>
        </center>
      </head>
    </html>
    Und die Fehlermeldung die ich beim aufrufen der Seite bekommen sieht wie folgt aus:

    Code:
    Warning: mssql_select_db() [function.mssql-select-db]: message: The server principal "SERVERNAME\IUSR_91ervans" is not able to access the database "Auth" under the current security context. (severity 14) in C:\inetpub\vhosts\domain.com\httpdocs\register.php on line 12
    
    Warning: mssql_select_db() [function.mssql-select-db]: Unable to select database: Auth in C:\inetpub\vhosts\domain.com\httpdocs\register.php on line 12
    Can't select the datebase
    Kurz erklärt Webserver und MSSQL-Server laufen auf dem selben System. Wenn man die Seite aufruft sollte man 2 Felder zum eintragen von Werten bekommen die man dann abschicken kann. Der Webserver sollte dann zum MSSQL-Server connecten und in der Datenbank Auth in der Tabelle dbo.Accounts eine neue Zeile erstellen.

    MfG 91ervans
     
  2. Charly

    Charly Datenbank-Guru

    Hallo 91ervans,

    welchen Modus benutzt der sql für die Benutzeranmeldung?

    1. Windows integriete Sicherheit
    2. SQL-Server

    Welche Rechte hat SERVERNAME\IUSR_91ervans auf dem SQL-Server?

    Gruß Charly
     
  3. 91ervans

    91ervans Benutzer

    Hallo Charly,

    Er benutzt SQL-Sever für die Anmeldung.

    Welche Rechte ist schwer zu sagen. Weil es den User einfach nicht gibt...

    Es gibt einen SERVERNAME\Administrator aber nicht den wo gebraucht wird ?!

    MfG 91ervans
     
  4. Charly

    Charly Datenbank-Guru

    Hallo 91ervans,

    Ich brauche noch ein paar Infos über deinen Webserver.

    Du benutzt IIS mit PHP?

    Wenn Ja welche Versionen?

    Gruß Charly
     
  5. 91ervans

    91ervans Benutzer

    Hallo Charly,

    Bin grad leider nicht zuhause und weis nicht die genaue PHP.ver . Ich weis das ich IIS7 drauf hab und denke es war PHP 5.3.6 .
     
  6. Charly

    Charly Datenbank-Guru

    Hallo 91ervans,

    bist Du dir sicher mit php_mssql? Der Support dafür wurde ab der PHP Version 5.3.x eingestellt.

    Ich würde es mal mit den 'Microsoft Drivers for PHP for SQL Server' versuchen. Das dürfte bei IIS7 und PHP 5.3.x weniger Probleme machen.

    Gruß Charly

    PS: Ich denke das mit der Fehlermeldung liegt am IIS. Versuche den Fehler gerade zu replizieren.
     
    Walter gefällt das.
  7. Charly

    Charly Datenbank-Guru

    Hallo 91ervans,

    überprüfe mal ob der Benutzer, der in der Web.config angegeben ist, auch in der Datenbank als Benutzer angegeben ist.
    Bei integrierter Sicherheit muss es der Benutzer des Anwendungspools sein.
    Wenn das übereinstimmt sollte es auch mit dem Zugriff auf den SQL funktionieren.

    Gruß Charly
     
  8. 91ervans

    91ervans Benutzer

    Hallo Charly,
    dein letzter Beitrag hat mir sehr geholfen. Der Benutzer war nicht im Anwendungspool :|

    Jetzt funktioniert es.

    MfG 91ervans
     
Die Seite wird geladen...

Diese Seite empfehlen