Meine Kenntnisse in PHP sind so wie der IQ einer Grünengurke.
Mein Problem ist ich würde gerne eine Tauschhalle für virtuelle Währungen machen.
Habe mir ein passendes Script besorgt. (Wechselstube 2.0 von losescripte.de)
Soweit alles gut, Script hochgeladen, alles Eingestellt und es läuft sogar.
Nun fängt das Problem an der Hoster “bplaced” hat die funktion “allow_url_fopen” ausgestellt.
Leider wird die dringend benötigt, um meine Konten mit der Wechselstube abzugleichen.
Da die Funktion leider aus ist funzt das nicht richtig!
Nun nach mehreren Stunden suche bin ich auf das hier gestoßen:
[quote]<?php
/** file()-Alternative bei allow_url_fopen = off
Eingabe: $url - Die auszulesende URL.
Rückgabe: Array, das alle Zeilen der auszulesenden URL enthält.
*********************************************/
function socketfile($url) {
// URL zerlegen
$parsedurl = @parse_url($url);
// Host ermitteln, ungültigen Aufruf abfangen
if (empty($parsedurl[‘host’]))
return null;
$host = $parsedurl[‘host’];
// Pfadangabe ermitteln
if (empty($parsedurl[‘path’]))
$documentpath = ‘/’;
else
$documentpath = $parsedurl[‘path’];
// Parameter ermitteln
if (!empty($parsedurl[‘query’]))
$documentpath .= ‘?’.$parsedurl[‘query’];
// Port ermitteln
$port = empty($parsedurl[‘port’])?80:$parsedurl[‘port’];
// Socket öffnen
$fp = fsockopen ($host, $port, $errno, $errstr, 30);
if (!$fp)
return null;
// Request senden
fputs ($fp, “GET {$documentpath} HTTP/1.0\r\nHost: {$host}\r\n\r\n”);
// Header auslesen und verwerfen
do {
$line = chop(fgets($fp));
} while (!empty($line) and !feof($fp));
// Daten auslesen
$result = Array();
while (!feof($fp)) {
$result[] = fgets($fp);
}
// Socket schliessen
fclose($fp);
// Ergebnis-Array zurückgeben
return $result;
} [/quote]
Aber woher soll ich wissen was in die roten Zeilen kommt. Kann mir das einer sagen?
Und in welchen Ordner soll ich das Script hochladen? Bringt es denn überhaupt was eine einzelne Datei da hinzupacken, die muss doch mit irgendwas Verknüpft werden oder nicht?
fsockopen(), was dort im Script verwendet wird, ist ebenfalls deaktiviert.
Momentan gibt es keine Möglichkeit, um an Daten außerhalb des eigenen Webspaces ranzukommen.
Alternative wäre zu gucken, ob es möglich ist die Daten (sofern es nicht zu viele sind) auf den bplaced Webspace abzuspeichern, oder das ganze “passiv” d.h. mit einem externen cronjob oder ähnliches in einigermaßen regelmäßigen Abständen, auf bplaced aktualisieren zu lassen.
Je nach dem wie aktuell die Daten sein müssen, ist das eine besser als das andere (oder gar keins von beiden ist dafür geeignet).
Ich kenne schon einen, aber der erlaubt momentan leider keine weiteren Anmeldungen.
Bei dem war es bisher immer genau umgekehrt:
mail() geblockt, aber sockets erlaubt.
Wenn fsockopen bei einem freehoster aktiviert ist, kann man aber immerhin noch mails mit einem “sendmail”-script oder ähnlichem versenden.
Der Vorteil ist dann, dass spam so gut wie ausgeschlossen ist, da die User sich bei ihrem Mail Anbieter (GMX, web.de etc.) anmelden müssen, um Mails zu versenden.
Deshalb gefällt mir die Kombination: sockets ja, mail() nein, besser als die Variante die momentan hier bei bplaced ist…
Naja, mal sehen was miro sich für die Zukunft einfallen lässt.
Danke für die ganzen antworten, der Hoster hier 000webhost.com geht bis jetzt. Alles läuft glatt. Das einzige was ist er lädt manchmal die Seite einfach nicht und bricht mit Ladefehler ab.
Das liegt an den Servern, die sind leider dort ziemlich überladen - So wie ich das mitbekommen habe hat jeder Server 500GB - bei 250MB, die einem dort angeboten werden macht das 2000 User pro Server - Wenn alle ihr Limit ausgeschöpft haben, ansonsten dementsprechend mehr.
ich bin ebenfalls blutiger anfänger in php. ich möchte einmal am tag, txt-dateien(.txt.gz) von einem server laden lassen und dann in eine datenbank schreiben. wie realisiert man das, dass ich nicht immer die dateien selbst per ftp hochladen muss?
also die datei soll von einem anderen server, der diese bereitstellt, in meinen bplaced space geladen werden. im moment übertrage ich die selbst über ftp von meinem rechner auf den bplaced space.
Schau dir das mal an.
Wenn du anstelle des Formulares einfach direkt die Datei einbindest, die sich der Server holen soll, dann sollte das genau das sein was du suchst.
Solange deine Dateien nicht an zu sehr den Server-Ressourcen dürfte das wohl in Ordnung gehen.
Per Console und ließe sich aber doch die Verbindung per FTP herstellen und die Datei runterladen, dann die Verbindung trennen und in einer neuen Verbindung die Datei hier hochladen.
Das ganze als BAT/Shell sichern, und fertig ist’s.
eine möglichkeit um das ganze ein bisschen zu umgehen wäre:
ein Script auf einem anderen space, auf dem fsockopen aktiviert ist, wird regelmäßig (vll. einmal am tag?) mit einem cronjob ausgeführt…
dieses Script holt dann meinetwegen irgendwelche Daten ab, und schickt sie an den bplaced-space.