Externe Dateien einbinden und was zurückgeben

dc2k5KampfKeks

Grünschnabel
Hi

Also da ich gerade dabei bin etwas zu Programmieren und habe da eine frage.
Undzwar will ich eine Datei die auf einen anderen Server ausführen.

PHP:
"http://Link/login.php?user=0?id=".$id."?pw=".$pw'

das Script soll dann eine abfrage machen und dann einen Wert zurückgeben.
Ich habs mit "fopen" probiert aber damit hab ich es nicht hinbekommen.
 
In welcher Form gibt die Datei es denn zurück?
Und zeig doch mal den Quelltext, mit dem du es bisher probiert hast.
 
Naja du bist nicht sehr ausführlich aber vielleicht liegt es schon an der URL. Soweit ich weiss wird mit einem Fragezeichen nur die erste Variable innerhalb einer URL deklariert. Nachfolgend kommt das "Kaufmanns und" zum Einsatz. In deinem Fall also in etwa so:
PHP:
"http://Link/login.php?user=0?id=".$id."?pw=".$pw' 
"http://Link/login.php?user=0&id=".$id."&pw=".$pw."

Achte bitte auch auf die Anführungszeichen.

Gruß Pen
 
Hi

Sorry hatte nicht soviel zeit musste schnell weg.

Also ich habe eine Datei auf meinen Webserver "check.php". Dort brauche ich ein script womit ich eine externe Datei öffnen kann auf den anderen Server ausführen kann und das einen wert zurück gibt.

der Link der ausgeführt werden soll sollte so aussehen

PHP:
$link = "http://www.link.de/login.php?user=0&id=".$id."&pw=".$pw;

Die Login.php sieht inetwa so aus..

PHP:
$id = $_REQUEST['id'];
$pw = $_REQUEST['pw'];

if($id == $kdid) {
	return "1";
} else {
	return "2";
}

so und was er zurückgibt den Wert brauche ich dann wider in der anderen Datei nur wie kann ich das umsetzten und ist das überhaupt möglich?

MFG Keks
 
In dieser Art und Weise, wirst du den Wert nicht verarbeiten können, da return nur PHP intern einen Wert zurückgibt, nicht jedoch nach außen.

Schau dir doch mal die HTTP Klasse von Dennis Wronka an (http://php-classes.sourceforge.net). Damit könntest du es realisieren.
Im Tutorials Bereich gibt es ebenfalls einen passenden Eintrag zu dieser Klasse.
 
Danke werd mir das mal anschauen und was anderes auser "return" kann einen wert nicht zurück geben, also in den Fall wie ich es benötige?
 
Zuletzt bearbeitet:
Mit return wird es wohl wirklich nicht möglich sein. Wenn du aber in der 2. Datei wieder eine Verlinkung einbaust die einen Variablen Wert zurück gibt, könnte das auf diesem Wege funktionieren. Andernfalls würde ich mit includes arbeiten. Hierbei verlinkst du nicht auf die 2. Seite sondern "integrierst" sie in dein erstes Skript. Dies wäre auch gleichzeitig die elegantere Lösung. Wird aber wiederum über 2 Webserver hinweg auch nicht so einfach da manche Provider nicht mitspielen.

EDIT: Allerdings ist es generell nicht ratsam Logindaten über eine URL zu versenden. Darüber solltest du grundsätzlich nochmal überlegen.
 
Zuletzt bearbeitet:
Also die beiden Webserver gehören mir sind Rootserver also an Einstellungen sollte es nicht scheitern. Der sinn und Zweck ist es halt dabei das er überprüfen soll ob das Script legal erworben ist oder halt geklaut wurde deswegen soll er sich halt ich sag mal auf den 2 Server anmelden oder checken ob die angegeben Daten in der Datenbank sind und dann das Ergebnis zurückschicken.

Ich könnte doch einfach die "id" und das "pw" als md5 Zahl rüberschicken oder ist das auch nicht sicher habe mich mit Sicherheit noch nicht so beschäftigt.

Aber danke schonmal für die antworten.
 
Dann empfehle ich dir das ganze mittels include zu lösen.
In deinem Fall wäre das dann in etwa so:

chekc.php:
PHP:
@include("http://www.link.de/login.php?user=0&id=".$id."&pw=".$pw."");
in der login.php kanst du dann ausführen was du möchtest.

Also so etwas:

PHP:
$pw=$_REQUEST["pw"];
$id=$_REQUEST["id"];
$user=$_REQUEST["user"];
 
## Check auf treffer
$check=mysql_query("SELECT * FROM deine Tabelle WHERE pw='$pw' AND id='$id' AND id='$id'")or die(mysql_error());
$count_check=mysql_num_rows($check);
 
 
 
## Wenn keine treffer dann springe auf eine hinweisseite...
if($count_check==0){
echo "<meta http-equiv='refresh' content='0;   URL=http://www.link.de/verboten.html'>";
@exit();
}

Habs nicht getestet aber in etwa so sollte es en


}
 
Zurück