John: PHP MYSQL Problem... Dringend :-(

Hallo alle zusammen!

ich habe ein problem, welches leider ziemlich brennt. und zwar habe ich ein php formular, welches daten in meine Datenbank eintragen soll. klappt auf meinem server(A) alles auch einwandfrei. nun zum problem. will ich aber das skript auf einem anderen server(B) laufen lassen, die einträge aber dennoch in meiner datenbank(A) haben will, klappt es nicht mehr. kann es sein, dass auf dem server B der port 3306 für mysql_connect nich freigegeben ist? oder wo liegt mein fehler?
hier mal meine verbindung:
@$verbindung = mysql_connect ("localhost", "user", "pass"); oder
@$verbindung = mysql_connect ("http://www.derserverb.de", "user", "pass");

für eure hilfe wäre ich dankbar!

vielen vielen dank schon einmal

mfg
john

  1. Hello,

    vermutlich ist auf dem DB-Server aus Sicherheitsgründen nur ein Connect von localhost oder aus dem lokalen Netzwerk erlaubt. Wenn dem so ist und es sich um einen Shared Hoster handelt, wirst du nichts dagegen unternehmen können.

    MfG
    Rouven

    --
    -------------------
    There's no such thing as a free lunch  --  Milton Friedman
  2. Mahlzeit,

    kann es sein, dass auf dem server B der port 3306 für mysql_connect nich freigegeben ist?

    *glaskugel reib* Kann sein. Kann auch sein, dass die Datenbank auch einfach keine remote-Zugriffe zulässt. Kann auch sein, dass grad Sonnenflecken aktiv sind. Wieso schaust Du nicht die entsprechenden Konfigurationsdateien durch?

    oder wo liegt mein fehler?

    Nunja. Da. Oder hier. Oder woanders.

    hier mal meine verbindung:
    @$verbindung = mysql_connect ("localhost", "user", "pass"); oder
    @$verbindung = mysql_connect ("http://www.derserverb.de", "user", "pass");

    Ähm ... sicher, dass Du per "http" auf die Datenbank zugreifen willst?

    MfG,
    EKKi

  3. Hallo,

    wenn der Remotezugriff auf die Datenbank nicht möglich ist, könntest Du z.B. über einen POST-Request die Daten in die DB schreiben.

    http://www.php-faq.de/q/q-code-post.html

    Grüße Basti

    1. Hello,

      wenn der Remotezugriff auf die Datenbank nicht möglich ist, könntest Du z.B. über einen POST-Request die Daten in die DB schreiben.

      das soll wie gehen, bzw. was genau bringen? Wenn ich den OP richtig verstanden habe, dann ist das Problem nicht, dass er auf dem Server keine Skripte unterbringen kann, er möchte sie nur einfach woanders liegen haben. Wobei du natürlich in einem Punkt Recht hast: Man könnte ein Skript schreiben, das nichts anderes macht, als als Datenschnittstelle nach außen zu agieren, also so etwas wie ein Dataterminal oder SQL-Terminal, mit all den verbundenen Sicherheitsrisiken und Performanceeinbußen.

      MfG
      Rouven

      --
      -------------------
      Death is nature's way of telling you to slow down.
      1. Hallo,

        hm, ich dachte, er möchte in die auf dem anderen Server liegende DB schreiben - und wenn diese außer vom localhost nicht erreichbar ist, muss er die Daten eben anders übertragen - obwohl sich mir der Sinn des Ganzen auch nicht offenbart:-).

        Grüße Basti

        1. Hello basti_p,

          hm, ich dachte, er möchte in die auf dem anderen Server liegende DB schreiben - und wenn diese außer vom localhost nicht erreichbar ist, muss er die Daten eben anders übertragen - obwohl sich mir der Sinn des Ganzen auch nicht offenbart:-).

          Der Sinn kann ganz einfach die Datenhoheit zu behalten.

          So habe ich diverse Kunden, die ihre Page und Scripte bei 1&1 laufen haben, ihre Daten aber zuhause auf einem eigenen Server liegen haben und den Scripten einen äußerst eingeschränkten Zugang über über DynDNS darauf gestatten.

          So ist sichergestellt, dass nicht jemand die ganze Datenbank klauen kann, sondern immer nur einzelne Datensätze anfordern kann.

          Wenn ein Userscript mehr als X Datensätze in der Stunde abfordert, wird er gesperrt.
          Das kann man über ein Logging und stored Procedures erreichen.
          Der externe User erhält keine Select-Rechte, aber Rechte auf die "Select-Prozedur", die dann alles andere regelt.
          Auch die vertikale Auswahl in einer Tabelle lässt dadurch steuern, also ein "User-Filter"

          Harzliche Grüße vom Berg
          http://bergpost.annerschbarrich.de

          Tom

          --
          Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
          Nur selber lernen macht schlau
          Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

  4. Hello John,

    ich habe ein problem, welches leider ziemlich brennt. und zwar habe ich ein php formular, welches daten in meine Datenbank eintragen soll. klappt auf meinem server(A) alles auch einwandfrei. nun zum problem. will ich aber das skript auf einem anderen server(B) laufen lassen, die einträge aber dennoch in meiner datenbank(A) haben will, klappt es nicht mehr. kann es sein, dass auf dem server B der port 3306 für mysql_connect nich freigegeben ist? oder wo liegt mein fehler?
    hier mal meine verbindung:

    @$verbindung = mysql_connect ("localhost", "user", "pass"); oder
    @$verbindung = mysql_connect ("http://www.derserverb.de", "user", "pass");

    Meistens liegt es daran, dass auf dem Server (A) der Port nicht zur Verfügung steht.
    Einen Request auf einen bestimmten Port auszulösen ist bei den meisten Hostern erlaubt.

    Zweiter Grund könnte natürlich sein, dass die API auf Server (B), auf der das Script läuft, nicht zur Datenbank auf Server (A) passt.

    Da Du schlauerweise[tm] die Fehlermeldungen unterdrückt hast, siehst Du also auch nicht, woran es liegt.

    Bitte erst Fehlermeldungen Posten, dann kann man weitersehen.

    Außerdem mal versuchen, von einem anderen Host z.B. mit Heidi-SQL auf die DB zuzugreifen.
    http://www.heidisql.com

    Harzliche Grüße vom Berg
    http://bergpost.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

    1. Hello,

      Zweiter Grund könnte natürlich sein, dass die API auf Server (B), auf der das Script läuft, nicht zur Datenbank auf Server (A) passt.

      Und ergänzend (aus EKKis Posting geklaut *gg*), muss natürlich auch eintsprechender User existieren in der Datenbank-Rechte-Verwaltung.

      Sowas, wie        "extern"@"%"
        oder noch besser  "extern"@"IP_DES_SERVER_(B)"

      Harzliche Grüße vom Berg
      http://bergpost.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
      Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)