POST-Werte weitergeben
Hallo Administrator/innen,
Ich habe folgendes Problem:
Ich möchte POST-Werte ohne Formular weitergeben. Gibt es da irgendwelche Möglichkeiten?
Mein Beispiel:
Auf der Home ist ein Formular. Wenn man etwas eingibt und bestätigt wird es mittels POST an meine 'auswertung.php' geschickt. Dort wird es per PHP ausgelesen. Je nachdem was der User eingegeben hat, wird es auf eine von verschiedenen Websites geschickt mit entsprechenden POST-Werten.
Ich hoffe ihr könnt mir helfen.
Vielen Dank im vorraus
mfg -einTyp-
Ich habe folgendes Problem:
Ich möchte POST-Werte ohne Formular weitergeben. Gibt es da irgendwelche Möglichkeiten?
Mein Beispiel:
Auf der Home ist ein Formular. Wenn man etwas eingibt und bestätigt wird es mittels POST an meine 'auswertung.php' geschickt. Dort wird es per PHP ausgelesen. Je nachdem was der User eingegeben hat, wird es auf eine von verschiedenen Websites geschickt mit entsprechenden POST-Werten.
Ich hoffe ihr könnt mir helfen.
Vielen Dank im vorraus
mfg -einTyp-
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 155867
Url: https://administrator.de/contentid/155867
Ausgedruckt am: 22.11.2024 um 21:11 Uhr
17 Kommentare
Neuester Kommentar
Wie meinst du das Arrays an Websites weitergeben?
Session ist recht einfach. Wird behandelt wie ein Array.
Die Variable Foo wäre nun auf jeder Unterseite verfügbar. Ist das ist doch genau das was du suchst.
Hier mehr Infos: http://tut.php-q.net/de/sessions.html
Session ist recht einfach. Wird behandelt wie ein Array.
session_start();
// nun haben wir $_SESSION
$_SESSION['Foo'] = 'Bar';
echo $_SESSION['Username'];
Die Variable Foo wäre nun auf jeder Unterseite verfügbar. Ist das ist doch genau das was du suchst.
Hier mehr Infos: http://tut.php-q.net/de/sessions.html
Auszug aus meiner Function Klasse:
EDIT
/**
*
*/
public static function sendHttpPostRequest($sUrl, $aGet, $aPost, $iPort=80)
{
$aUrl = parse_url($sUrl);
$sReferer = $sUrl .'?'. My_Function::createUrl($aGet, true);
$sPostData = My_Function::createUrl($aPost, true);
if ($hSock = fsockopen($aUrl['host'], $iPort)) {
// sende die Anfrage
fputs($hSock, "POST {$aUrl['path']} HTTP/1.1\r\n");
fputs($hSock, "Host: {$aUrl['host']}\r\n");
fputs($hSock, "Referer: $sReferer\r\n");
fputs($hSock, "Content-type: application/x-www-form-urlencoded\r\n");
fputs($hSock, "Content-length: ". strlen($sPostData) ."\r\n");
fputs($hSock, "Connection: close\r\n\r\n");
fputs($hSock, $sPostData);
// empfange ggf. eine Antwort
if (!feof($hSock)) {
while (!feof($hSock)) {
$sResult .= fgets($hSock, 128);
}
$sResult = substr($sResult, strpos($sResult, "\r\n\r\n")+4);
} else {
$sResult = true;
}
fclose($hSock);
return $sResult;
} else {
//
return false;
}
}
EDIT
/**
* Erstellt aus einer Liste eine Url
*
* @param array $aParam Liste der Parameter => Werte
* @return string ein Url String
*/
public static function createUrl($aParam, $bDataOnly=false)
{
$sUrl = ($bDataOnly) ? '' : '?';
if (is_array($aParam)) {
$aUrl = array();
foreach ($aParam as $key=>$value) {
if (is_array($value)) {
foreach ($value as $entry) {
$aUrl = urlencode($key).'='.urlencode($entry);
}
} else {
$aUrl = urlencode($key).'='.urlencode($value);
}
}
$sUrl .= implode((($bDataOnly) ? '&' : '&'), $aUrl);
}
return $sUrl;
}
Zuerst werden die URL und die zu übertragenden Daten vorbereitet:
Dann wird eine Verbindung aufgebaut und eine HTTP Anfrage gesendet (wie es auch der Browser macht )
Die Bezeichnung 'My_Function' in der sendHttpPostRequest Funktion musst Du noch anpassen - oder Du nutzt diese Funktionen nicht in einer Klasse sondern nur in einer Include -ierten PHP Datei.
- die URL wird in seine Bestandteile zerlegt weil wir den HOST und den PATH brauchen
- die Parameter werden in eine andere Form gebracht ( schlüssel=wert& ...)
Dann wird eine Verbindung aufgebaut und eine HTTP Anfrage gesendet (wie es auch der Browser macht )
- Header Informationen zuerst
- dann die POST Daten
Die Bezeichnung 'My_Function' in der sendHttpPostRequest Funktion musst Du noch anpassen - oder Du nutzt diese Funktionen nicht in einer Klasse sondern nur in einer Include -ierten PHP Datei.
ok so ... ein
sollte Dir nun die Ausgabe von http://testchat.localhost/Netzwerk/registrierensql.php anzeigen.
EDIT: obwohl die /* */ innerhalb des Codes schon eigenartig aussehen - am besten jetzt löschen
echo sendHttpPostRequest( 'http://testchat.localhost/Netzwerk/registrierensql.php', null, $_POST);
EDIT: obwohl die /* */ innerhalb des Codes schon eigenartig aussehen - am besten jetzt löschen