Link aufrufen in einem Include...

Hi CommZ,

Folgendes Szenario:

Ich arbeite gerade an einem Script welches von einer meiner Seiten Daten an andere Seiten weitervermitteln soll.

Partner 1 (1.Seite zu der es zu übermitteln gilt) hat ein Formular wo man den Namen und seine Adresse angibt.

Nun soll man auf meiner Seite ebenfalls Namen und Adresse angeben die ich nun mehreren Partnern zukommen lassen will.

Da ich die Variablen dazu vorbereiten muss, damit Sie auch so heissen wie die geforderten Daten bei den jeweiligen Seiten, habe ich mir gedacht, für jede Seite ein eigenes Include zu erstellen.

Nun bis dahin ist es ja kein Problem. Nur frage ich mich, wie setze ich jetzt das Senden der Daten um ohne für jede der Aktionen eine eigene Seite aufrufen zu müssen, in dieser ich dann die Browserzeile einfach mit den Werten vorausgefüllt habe?

Danke schonmal für eure Hilfe,

MfG,

tko2
 
Hä?

Also du hast eine Seite mit einem Formular. Nun werden die Daten, die du in dieses Formular eingibst an deine Partner gesendet. Bin ich soweit noch richtig? Weil das, was mit den Daten nun passieren soll, bzw das, nachdem du fragst, versteh ich rein garnicht.
 
Also ich möchte einfach Daten die in mein Formular eingegeben werden an andere Seite vermitteln.

Nun frage ich mich wie ich das geschickt mache, diese Daten sollen nämlich gleich dort einen Datenbankeintrag machen (weil die partnerseiten das selbe formular wie ich haben) könnte man es theoretisch über die Browserzeile erledigen.

Wenn ich in Mozilla diesen Link eingeben würde =>
www.partner1.de/seite.php?name=$name&addy=$addy&submit=submit...
Würde er dort (sofern die Variablen befüllt waren) gleich einen Eintrag machen

Soweit noch verständlich??

Da ich aber die Daten gleich an mehrere Seiten übermitteln will ist die Methode mit dem Browser die falsche, vorallem weil ich nicht möchte das im Hintergrund sich noch Seiten öffnen...

ich suche also nach einer Möglichkeit, diese Daten an das Script zu senden OHNE das man neue Seiten aufruft (im sinne von öffnen).

Hoffe das haben einige mehr verstanden sorry für die unklare Ausdrucksweise,


mfg,

tko2
 
Hast du dir überlegt was das für Konsequenzen haben könnte?
Wenn du Daten in eine Datenbank eintragen kannst die auf einem anderen Server liegt, dann kann das u.U. auch jeder andere... Und so etwas wirklich gut abzusichern ist sehr schwierig.
Daher sollte man ja auch allow_url_fopen in der php.ini auf OFF setzen damit solche Remote-Includes garnicht erst möglich sind.

Ansonsten verstehe ich dein Problem auch nicht so ganz. Du gibst in dem Formular an, dass beim Absenden ein PHP-Script aufgerufen wird. In diesem Script kannst du die Variablen an jedes andere PHP-Script weitergeben. Auch an Scripte auf anderen Servern; du musst lediglich die absolute URL angeben und allow_url_fopen muss in der php.ini auf ON gesetzt sein.
Du wertest also die Variablen aus dem Formular aus, übergibst die Variablen an die Scripte auf den Servern und lässt sie dann dort weiter verarbeiten (z.B. in eine Datenbank schreiben).
 
Hi,

danke für eure Antworten.

Wegen der Sicherheit dachte ich mir reicht es aus das A) das Script welches ich anspreche "geheim/nicht öffentlich" ist und b) das er zuvor den Referer checkt, wenn das dann stimmt soll der DB Eintrag stattfinden.

In diesem Script kannst du die Variablen an jedes andere PHP-Script weitergeben. Auch an Scripte auf anderen Servern; du musst lediglich die absolute URL angeben und allow_url_fopen muss in der php.ini auf ON gesetzt sein.

Gut das du mir den Tip schonmal gegeben hast irgendwo wird diese Einstellung sicherlich so sein und dann hätte ich ersteinmal wieder std. nach dem Problem suchen müssen.

Aber meine eigentliche Frage war ja nur, wie eben solch ein Include aussieht.

Kann ich das so machen:

Code:
<?php echo

<html>
<head></head>";

//variablenbestimmung

$name = $POSTname;
$addy = $POSTAddy;

 if($submit !="") { echo "
<form action='http://www.partner1.de/formular.php?name=$name&addy=$addy' method='post'>"; } echo"
<body></body>
</html>";

?>

? oder meint Ihr des anders (fsockopen-praxis mal ausgenommen).


MfG,

tko?
 
LoL...

So geheim und nichtöffentlich ist dein Skript ja nicht, wenn die URL im Quelltext steht und Referers kann man fälschen.... Das is net schwer....

Wenn du es so machen willst mit der direkten Übergabe mittels POST, dann solltest du in dem Skript in dem die Variablen verarbeitet werden (z.B. in eine DB eingetragen werden) einen Schutz einbauen, der 1. den Referer prüft, 2. die Variablen sollten auf HTML-Tags und Sonderzeichen untersucht werden (bzw diese maskieren) und baue ein Flooding-Schutz ein, dass nur eine bestimmte Anzahl von Nachrichten hintereinander verarbeitet werden können.
Zudem solltest du alle Variablen initialisieren und am besten in ein Array eintragen, das jedes Mal überprüft wird, damit dem Skript nicht was untergeschoben wird, was es nicht brauchen kann... ^^
Bei der Seite auf der die Daten ins Formular eingetragen werden wäre es sinnvoll bei dem Absender des Formulars ein Cookie zu setzen, damit er nicht mehrmals hintereinander Sachen eintragen und versenden kann.
Oder besser, lass dir von dem Formular die Remote IP mitgeben und trage diese auch noch in die DB ein, so haste bei Mißbrauch gleich mal die IP. Du kannst sie auch von dem Skript das die Variablen verarbeitet überprüfen lassen usw...

Lies dir am besten das mal durch --> http://www.php.net/manual/de/security.php ;)
 
Hi,

Ja... Ich bin auf den Link gegangen un d wie so häufig bedeutet das erst mal 2 Stunden lesen und verstehen,m versteht mich nicht falsch aber würde ich jedem Link hier folgen und den durchgehen komplett hätte ich garkeine Zeit mehr. Ich bin echt nicht lese-faul wenns direkt oder noch indirekt um eines meiner Probleme geht aber das war schonwieder zuviel.

Davon abgesehen das es nett war mich darauf hinzuweisen...komm ich gerne noch mal auf meine ursprüngliche Frage zurück.

Ist es wie oben geschildert möglich nun einen DB Eintrag zu bekommen oder geht das nur wenn ich die URL manuell in Browser eintrage. Ich habe es so verstanden das es klappen müsste weil nicht weiter darauf eingegangen wurde würds aber trotzdem gerne nochmal bestätigt haben.
danke für eure Hilfe,


MfG,

tko2
 
In dem Link sind nu 2 Beispiele gezeigt, aus denen es für mich nicht möglich ist abzuleiten wie ich das jetzt verstehen bzw machen soll.

Wäre nett wenn du mir einmal in ein paa Zeilen zeigst wie du das machen würdest!

MfG,

tko?

edit: Falls ich das Thema immernoch nicht richtig verständlich erklärt habe, ist ein Vergleich ganz gut. Ihr kennt sicher diese Seiten mit automatischen Suchmaschinen einträgen oder. Dort wird auch ein Datensatz "Url beispielsweise" an viele Seiten aufeinmal versendet um einen Eintrag dort zu bekommen, soetwass möchte ich auch realisieren, genau nach dem Prinzip.
 
PHP:
<?php
# Daten aus dem formular entgegennehmen
 $name = $_GET['name'];
 $adresse = $_GET['adresse']

#Hier sind die partneradressen in einem Array festgehalten
 $partner_array = array("www.partner1.de", "www.partner2.de");

#Hier solltest du noch n paar sicherheitsvorkehrungen treffen, was ich hier nicht tue

# Und hier werden auch schon die daten versand
# für jeden arrayeintrag wird die schleife einmal durchlaufen 
 foreach ($partner_array as $partner) {

# Connection aufbauen
 $fp = fsockopen ($partner, 80, $errno, $errstr, 30);
#Prüfen ob eine connection zustande kam
 if (!$fp) {
  #Wenn nicht fehler ausgeben
   echo "$errstr ($errno)<br />\n";
} else {
  # Wenn verbindung zustande kam wird unser GET aufruf gestartet
   fputs ($fp, "GET /partnerscript.php?name=".$name."&adresse=".$adresse." HTTP/1.0\r\n\r\n");
  #danach die zurückgegebenen informationen auslesen
   while (!feof($fp)) {
       $data .= fgets($fp,128);
   }
 #Verbindung wieder brav schließen
   fclose($fp);
}

#Hier kannst du $data nun weiterverarbeiten.
#z.B. den header auswerten
#oder die die zurückgegebene seite auf erfolgreichen eintrag prüfen

}
?>

Kein Gewähr auf vollständigkeit, wollte nur schnell aufzeigen, wie ich das in etwa meinte.
 
Hi,

Vielen Dank schonmal!

Ich habs mal angepasst auf meine Bedürfnisse...

Bekomme dabei immer einen Bad Request, wodran mag das liegen?

Ich denke folgende Zeile könnte falsch sein:

Code:
fputs ($fp, "GET erstes_verzeichniss/zweites_verzeichniss/danke.phtml?

vll. nur mit absolutem Pfad dachte ich aber war leider auch ned so...

Frag mich echt warum das so schwer sein muss, an ein Formular daten sendne ist ein Kinderspiel. Jetzt will man das an mehrere Senden und ich bin seid 3 Ragen in 4 verschiedenen Foren am Fragen und Hilfe suchen ?(


MfG,

tko2
 
Aber du musst schon mindestens die ganze zeile posten. oder besser noch mehr.. und nach möglichkeit auch mit echten daten,

Bad request lässt auf ne falsche adresse schließen, das kann man natürlich nicht nachprüfen, wenn du die adressen geheim hälst.

Und wir haben grad so ne aktion, wenn wir 200 Kristallkugeln zusammen bringen, bekommt jeder ne neue, deswegen hat grade keiner eine zur Hand! *g*

EDIT: Ach ja, du musst den pfad relativ ab dem documentroot angeben. also so wie er hinter der Domain steht.
 
Zurück
Oben