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

gelöst POST-Werte weitergeben

Mitglied: EinTyp

EinTyp (Level 1) - Jetzt verbinden

26.11.2010, aktualisiert 27.11.2010, 5165 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
Sicherheit

Zero Day-Schwachstelle im Internet Explorer - wird von APT bereits ausgenutzt

Information von kgborn vor 5 StundenSicherheit

Im Kernel des Internet Explorer scheint es eine Zero Day-Lücke zu geben, die von staatlichen Akteuren (APT) im Rahmen ...

Microsoft
Folder Security Viewer-Lizenzen zu gewinnen
Information von kgborn vor 5 StundenMicrosoft

Ich nehme das Thema mal in Absprache mit Frank hier auf, da es für den einen oder anderen Administrator ...

Hardware

Feueralarm killt Festplatten in Rechenzentrum - führt zu größerem Ausfall

Information von kgborn vor 5 StundenHardware8 Kommentare

Noch ein kleiner Beitrag für Administratoren, die in Rechenzentren aktiv sind - so als Fingerzeig. Denn es gibt Szenarien, ...

MikroTik RouterOS

Mikrotik Advisory: Vulnerability exploiting the Winbox port

Information von colinardo vor 5 StundenMikroTik RouterOS

Brand aktuell: Eine Schwachstelle im Winbox-Port bei Mikrotik Routern erlaubt das Auslesen der User-Datenbank der Router. Patch ist aktuell ...

Heiß diskutierte Inhalte
Linux
Linux Server oder Windows Server - lohnt eine Umstellung auf Linux und ebenso basierende SW bei einer langfristigen Planung?
Frage von motus5Linux23 Kommentare

Wir brauchen bei uns einen neuen Server. Dieser wird als Fileserver, Domäne Controller sowie Exchange Server verwendet. Wir versuchen ...

Netzwerkgrundlagen
VLAN - Offene Fragen
Frage von KnettenbrechNetzwerkgrundlagen17 Kommentare

Hallo zusammen, ich befasse mich derzeit mit dem Thema VLAN. Hierzu habe ich schon einige Guides gelesen, einschließlich des ...

DSL, VDSL
ISP Wechsel auf Vodefone Koax, Gebäudeverkabelung nur per Cat 7
gelöst Frage von wusa88DSL, VDSL14 Kommentare

Hallo Zusammen, ich bin momentan bei Mnet als Glasfaser Kunde und möchte Preis/Leistungs-Technisch zu Kabel Deutschland / Vodafone wechseln. ...

Windows Server
Domänencontroller trennen
Frage von Akit57Windows Server13 Kommentare

Hallo, ich hoffe das mir hier jemand meine Frage trotz der spärlichen Informationen die ich geben kann beantworten kann: ...