Top-Themen

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

Frage Entwicklung PHP

GELÖST

POST-Werte weitergeben

Mitglied: EinTyp

EinTyp (Level 1) - Jetzt verbinden

26.11.2010, aktualisiert 27.11.2010, 5147 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
Hyper-V
Intel-VT an VM weitergeben?
Frage von Fenris14Hyper-V6 Kommentare

Guten Tag, ich komm gleich mal zu Sache: Ist es mit dem Hyper-V, eventuell sogar über einen Umweg, möglich ...

Rechtliche Fragen
Mails eines Mitarbeiters an dritte weitergeben erlaubt?
gelöst Frage von alf008Rechtliche Fragen12 Kommentare

Hallo, eine Kollegin ist im Urlaub. In ihrem Postfach sollen Mails sein welche ein anderer Kollege benötigt. Geschäftsführung stimmt ...

Debian
OpenVPN: öffentliches Netz an Client weitergeben
gelöst Frage von TP-AlexDebian1 Kommentar

Hallo zusammen, ein Kumpel und ich versuchen folgendes zu realiesieren: Ausgangssituation: Wir haben einen virtuellen Server der bei einem ...

PHP
Große Files posten mit php
Frage von it4baerPHP7 Kommentare

Hallo, ich habe mal wieder eine Frage. Von einem bekannten habe ich eine Funktion welches Daten verarbeitet und diese ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 1 TagLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 1 TagTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 1 TagSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 1 TagSicherheit9 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Batch & Shell
Meltdown Microsoft Prüf Script - .zip Datei leider leer
gelöst Frage von MasterBlaster88Batch & Shell13 Kommentare

Hallo zusammen, ich patche gerade unsere Windows Server bzgl. der Meltdown Lücke. Patch vorhanden, Reg Keys gesetzt Um das ...

Batch & Shell
Shell-Skript - Syntax error: Unterminated quoted string
Frage von newit1Batch & Shell13 Kommentare

Hallo Ich schreibe ein Skript das eine CSV-Datei in eine mySQL Datenbank schieben soll. Bekomme nach start des Skrips ...

Monitoring
VPN Performance Zyxel-Fritte
gelöst Frage von HenereMonitoring13 Kommentare

Servus, nachdem ihr mir ja schon so gut helfen konntet, was das VPN zwischen Zyxel USG60W und Fritte 7490 ...

Sicherheit
Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen
Information von FrankSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...