Einzelnen Beitrag anzeigen

waldforest

Registriert seit: 8. Mai 2005
366 Beiträge
 
Delphi XE3 Enterprise
 
#19

Re: MySQL via PHP-Tunnel (über eigene libmysql.dll)

  Alt 24. Feb 2010, 21:10
Hallo,
erst mal danke, klappt super. Leider nutze ich auch einen Server, der anstelle der localhost eine andere Serveradresse wie bei zu #16,Datenbankserver" beschrieben benötigt.

Was muss man wo wie ergänzen.

Ich habe es selber einmal versucht,und habe FloginU erweitert.

Delphi-Quellcode:
procedure TFLogin.Execute(SQLConnection: TSQLConnection);
begin
  EdURL.Text:=SQLConnection.Params.Values['Hostname'];
  EdDatabase.Text:=SQLConnection.Params.Values['Database'];
  EdUsername.Text:=SQLConnection.Params.Values['User_name'];
  EdPassword.Text:=SQLConnection.Params.Values['Password'];
  EdHost_adr.Text:=SQLConnection.Params.Values['host_adr'];

  if Self.ShowModal = mrOk then begin
    SQLConnection.Params.Values['Hostname']:=trim(EdURL.Text);
    SQLConnection.Params.Values['Database']:=trim(EdDatabase.Text);
    SQLConnection.Params.Values['User_name']:=trim(EdUsername.Text);
    SQLConnection.Params.Values['Password']:=trim(EdPassword.Text);
    SQLConnection.Params.Values['host_adr']:=trim(EdHost_adr.Text);
    SQLConnection.Open;
  end;
end;
aber bekomme den Parameter 'host_adr' nicht in mein PHP-Scipt übertragen.

Im PhP habe ich folgende Ergänzungen eingetragen,
Delphi-Quellcode:
 private function Init() {
    if (isset($_POST['id'])) {
      $_REQUEST[session_name()] = $_POST['id'];   
      session_start(); 
      if (isset($_SESSION['init']) && $_SESSION['init']) {
         return $this->connect($_SESSION['user'], $_SESSION['pass'], $_SESSION['db'], $_SESSION['host_adr']);
      }

      $this->ERROR = 'Fehler bei der Initialisierung.';
    } else {
      session_start(); 
      if (isset($_POST['command']) && $_POST['command'] == 'connect') {
        if (  isset($_POST['user'])
            && isset($_POST['pass'])
            && isset($_POST['db'])
            && isset($_POST['host_adr'])
          )
        {
          if ($this->connect($_POST['user'], $_POST['pass'], $_POST['db'], $_POST['host_adr'])) {
            $_SESSION['init'] = true;
            $_SESSION['user'] = $_POST['user'];
            $_SESSION['pass'] = $_POST['pass'];
            $_SESSION['db'] = $_POST['db'];
            $_SESSION['host_adr'] = $_POST['host_adr'];           
            $this->ID = session_id();
            return true;
          }

        }
      }
    }
    return false;
  }

   private function connect($user, $pass, $database, $host_adr)
   {
      $this->db = mysql_connect($host_adr, $user, $pass);
werde aber mit Scriptfehler abgewiesen, da natürlich die host_adr über die libmysql.dll nicht übertragen wird. Würdest du du den Code für die dll auch noch einstellen, oder die DLL anpassen ?
  Mit Zitat antworten Zitat