Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

POST-Werte weitergeben

Frage Entwicklung PHP

Mitglied: EinTyp

EinTyp (Level 1) - Jetzt verbinden

26.11.2010, aktualisiert 27.11.2010, 5133 Aufrufe, 17 Kommentare

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-
Mitglied: EvilMoe
26.11.2010 um 20:25 Uhr
Hallo,

speicher dir den Wert entweder in einer Datenbank, oder benutze dafür Sessions.

Gruß
Bitte warten ..
Mitglied: EinTyp
26.11.2010 um 20:35 Uhr
Also ich kann daraus ziehen, dass meine Wunsch-Methode nicht klappt^^.
Kann ich auch normale Arrays an Websites weitergeben?

@EvilMoe:
Hast du keine einfacheren Methoden?
Bitte warten ..
Mitglied: EvilMoe
26.11.2010 um 20:39 Uhr
Wie meinst du das Arrays an Websites weitergeben?

Session ist recht einfach. Wird behandelt wie ein Array.

01.
session_start(); 
02.
// nun haben wir $_SESSION 
03.
$_SESSION['Foo'] = 'Bar'; 
04.
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
Bitte warten ..
Mitglied: EinTyp
26.11.2010 um 20:55 Uhr
Da gibts bei mir ein Problem. (ich benutze XAMPP)

01.
      session_start();            //Zeile 118 
02.
      $_SESSION['Foo'] = 'Bar';   //Zeile 119 
03.
      echo $_SESSION['Foo'];      //Zeile 120
meine Antwort:

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\xampp\htdocs\seite1.php:111) in C:\xampp\htdocs\seite1.php on line 118

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\seite1.php:111) in C:\xampp\htdocs\seite1.php on line 118
string(3) "Bar"
Bitte warten ..
Mitglied: EinTyp
26.11.2010 um 20:59 Uhr
was ist eigentlich mit serialize() ???
Ich schaus mir mal an...
Bitte warten ..
Mitglied: EvilMoe
26.11.2010 um 20:59 Uhr
Eine Session kann nur gestartet werden wenn noch KEIN Header gesendet wurde. Das heißt session_start() muss bei jeder Datei in der ersten Zeile stehen in der du Sessions nutzen möchtest.
Bitte warten ..
Mitglied: nxclass
26.11.2010 um 21:10 Uhr
Auszug aus meiner Function Klasse:

01.
    /** 
02.
03.
     */ 
04.
    public static function sendHttpPostRequest($sUrl, $aGet, $aPost, $iPort=80) 
05.
06.
        $aUrl = parse_url($sUrl); 
07.
        $sReferer = $sUrl .'?'. My_Function::createUrl($aGet, true); 
08.
        $sPostData = My_Function::createUrl($aPost, true); 
09.
     
10.
        if ($hSock = fsockopen($aUrl['host'], $iPort)) { 
11.
            // sende die Anfrage 
12.
            fputs($hSock, "POST {$aUrl['path']} HTTP/1.1\r\n"); 
13.
            fputs($hSock, "Host: {$aUrl['host']}\r\n"); 
14.
            fputs($hSock, "Referer: $sReferer\r\n"); 
15.
            fputs($hSock, "Content-type: application/x-www-form-urlencoded\r\n"); 
16.
            fputs($hSock, "Content-length: ". strlen($sPostData) ."\r\n"); 
17.
            fputs($hSock, "Connection: close\r\n\r\n"); 
18.
            fputs($hSock, $sPostData); 
19.
             
20.
            // empfange ggf. eine Antwort 
21.
            if (!feof($hSock)) { 
22.
                while (!feof($hSock)) { 
23.
                    $sResult .= fgets($hSock, 128); 
24.
25.
                $sResult = substr($sResult, strpos($sResult, "\r\n\r\n")+4); 
26.
            } else { 
27.
                $sResult = true; 
28.
29.
            fclose($hSock); 
30.
            return $sResult; 
31.
        } else { 
32.
            // 
33.
            return false; 
34.
35.
    }
EDIT
01.
    /** 
02.
     * Erstellt aus einer Liste eine Url 
03.
     *  
04.
     * @param array $aParam     Liste der Parameter => Werte 
05.
     * @return string           ein Url String 
06.
     */ 
07.
    public static function createUrl($aParam, $bDataOnly=false) 
08.
09.
        $sUrl = ($bDataOnly) ? '' : '?'; 
10.
        if (is_array($aParam)) { 
11.
            $aUrl = array(); 
12.
            foreach ($aParam as $key=>$value) { 
13.
                if (is_array($value)) { 
14.
                    foreach ($value as $entry) { 
15.
                        $aUrl[] = urlencode($key).'[]='.urlencode($entry); 
16.
17.
                } else { 
18.
                    $aUrl[] = urlencode($key).'='.urlencode($value); 
19.
20.
21.
            $sUrl .= implode((($bDataOnly) ? '&' : '&'), $aUrl); 
22.
23.
        return $sUrl; 
24.
    }
Bitte warten ..
Mitglied: EinTyp
26.11.2010 um 21:11 Uhr
Wow! Es geht
Kann oder muss man die Sitzung löschen?

Danke!
Bitte warten ..
Mitglied: EvilMoe
26.11.2010 um 21:14 Uhr
Können schon: $_SESSION = array();
Mehr braucht man in der Regel nicht.
Bitte warten ..
Mitglied: EinTyp
26.11.2010 um 21:31 Uhr
Das ist jetzt blöd..
Ich kapier den Code nur zum Teil...
Wo soll ich was einfügen, wenn ich eine POST-Anfrage an http://www.domain.de/post.php schicken will.
Mit dem Inhalt:

01.
$_POST = array(3) { 
02.
    [4]=> 
03.
    string(4) "vier" 
04.
    ["Foo"]=> 
05.
    string(3) "bar" 
06.
    ["test_ist"]=> 
07.
    string(8) "gelungen" 
08.
}
Bitte warten ..
Mitglied: EvilMoe
26.11.2010 um 21:35 Uhr
So wie ich das sehe brauchst du nur deinen Array übergeben als Parameter.
Also $aPost = $_POST;
Bitte warten ..
Mitglied: nxclass
26.11.2010 um 21:35 Uhr
wenn Du die oberen Funtionen in eine statische Klasse eingefügt hast:
01.
Klasse::sendHttpPostRequest( 'http://www.domain.de/post.php', null, $_POST);
Bitte warten ..
Mitglied: EinTyp
26.11.2010 um 21:44 Uhr
Was sollte da (optimal) passieren?
Bitte warten ..
Mitglied: nxclass
26.11.2010 um 21:56 Uhr
Zuerst werden die URL und die zu übertragenden Daten vorbereitet:
  • 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.
Bitte warten ..
Mitglied: EinTyp
26.11.2010 um 22:05 Uhr
Meine PHP-Datei is nicht include- iert (oder sowas). Die ist "original".

meine ganzes Skript sieht so aus:

01.
/*public static */function sendHttpPostRequest($sUrl, $aGet, $aPost, $iPort=80) { 
02.
    $aUrl = parse_url($sUrl); 
03.
    $sReferer = $sUrl .'?'. /*My_Function::*/createUrl($aGet, true); 
04.
    $sPostData = /*My_Function::*/createUrl($aPost, true); 
05.
    if ($hSock = fsockopen($aUrl['host'], $iPort)) { 
06.
        fputs($hSock, "POST {$aUrl['path']} HTTP/1.1\r\n"); 
07.
        fputs($hSock, "Host: {$aUrl['host']}\r\n"); 
08.
        fputs($hSock, "Referer: $sReferer\r\n"); 
09.
        fputs($hSock, "Content-type: application/x-www-form-urlencoded\r\n"); 
10.
        fputs($hSock, "Content-length: ". strlen($sPostData) ."\r\n"); 
11.
        fputs($hSock, "Connection: close\r\n\r\n"); 
12.
        fputs($hSock, $sPostData); 
13.
        if (!feof($hSock)) { 
14.
            while (!feof($hSock)) { 
15.
                $sResult .= fgets($hSock, 128); 
16.
17.
            $sResult = substr($sResult, strpos($sResult, "\r\n\r\n")+4); 
18.
        } else
19.
            $sResult = true; 
20.
21.
        fclose($hSock); 
22.
        return $sResult
23.
    } else
24.
        return false; 
25.
26.
27.
 
28.
    /**  
29.
     * Erstellt aus einer Liste eine Url  
30.
     *   
31.
     * @param array $aParam     Liste der Parameter => Werte  
32.
     * @return string           ein Url String  
33.
     */  
34.
/*public static */function createUrl($aParam, $bDataOnly=false)  
35.
{  
36.
    $sUrl = ($bDataOnly) ? '' : '?';  
37.
    if (is_array($aParam)) {  
38.
        $aUrl = array();  
39.
        foreach ($aParam as $key=>$value) {  
40.
            if (is_array($value)) {  
41.
                foreach ($value as $entry) {  
42.
                    $aUrl[] = urlencode($key).'[]='.urlencode($entry);  
43.
                }  
44.
            } else {  
45.
                $aUrl[] = urlencode($key).'='.urlencode($value);  
46.
            }  
47.
        }  
48.
        $sUrl .= implode((($bDataOnly) ? '&' : '&'), $aUrl);  
49.
    }  
50.
    return $sUrl;  
51.
52.
 
53.
$_POST['test'] = "gelungen"
54.
sendHttpPostRequest( 'http://localhost/Netzwerk/seite1.php', null, $_POST);
(Wahrscheinlich sind bei mia 1000 Fehledr drinnen )

Ich hab ein paar Sachhen auskommentiert da sie Fehlermeldungen verursachen (public static). So wie ich es verstanden habe hätte ich das "My_Function::" nicht auskommentieren sollen...

P.S.: Diesmal ist mein Skript ganz leer. Es nur das obige Skript drinnen. Ich will dieses Skript ausführen und dann auf der Seite mit den empfangenen $_POST-Werten auftauchen.
Bitte warten ..
Mitglied: nxclass
26.11.2010 um 22:09 Uhr
ok so ... ein
01.
echo sendHttpPostRequest( 'http://testchat.localhost/Netzwerk/registrierensql.php', null, $_POST);
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
Bitte warten ..
Mitglied: EinTyp
26.11.2010 um 22:31 Uhr
Vielen Dank!
Es ist genauso wie ich wollte^^

-einTyp-
Bitte warten ..
Ähnliche Inhalte
Windows 7
gelöst PC + Windows 7 - Office Lizenz OEM weitergeben (4)

Frage von beschlagfuchs zum Thema Windows 7 ...

PHP
Große Files posten mit php (7)

Frage von it4baer zum Thema PHP ...

Humor (lol)
Kundendaten: Datenleck bei der Deutschen Post (2)

Link von 114685 zum Thema Humor (lol) ...

Windows Systemdateien
Kbdclass und mouclass Start Werte

Frage von H41mSh1C0R zum Thema Windows Systemdateien ...

Neue Wissensbeiträge
Viren und Trojaner

Neues Botnetz über IoT-Geräte

Information von certifiedit.net zum Thema Viren und Trojaner ...

Ubuntu

Ubuntu 17.10 steht zum Download bereit

(3)

Information von Frank zum Thema Ubuntu ...

Datenschutz

Autofahrer-Pranger - Bewertungsportal illegal

(8)

Information von BassFishFox zum Thema Datenschutz ...

Windows 10

Neues Win10 Funktionsupdate verbuggt RemoteApp

(8)

Information von thomasreischer zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Router & Routing
Externe IP von innen erreichbar machen (15)

Frage von Windows10Gegner zum Thema Router & Routing ...

Windows Installation
Windows 10 neu installieren (12)

Frage von imebro zum Thema Windows Installation ...

Windows Server
Frage zu Server Rack (11)

Frage von rainergugus zum Thema Windows Server ...