PHP MYSQL Problem... Dringend :-(
John
- php
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
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
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
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
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
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
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
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
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