PHP Text senden als Parameter in URL

  • PHP

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von seh.

    PHP Text senden als Parameter in URL

    Moinmoin,

    für ein Script welches auf meinem Webserver läuft, würde ich gerne einen Text und wenn möglich Anhänge beim Aufruf einer URL übergeben.

    Ich muss dazusagen, dass ich in Sachen PHP nicht sehr bewandert bin, für einfache Sachen hats bisher aber gereicht.

    Hintergrund ist, dass ich aus meinen Programmen heraus eine Support Anfrage an mich per Mail schicken möchte.
    Hierzu benötigt das Programm logischerweise SMTP Zugangsdaten, diese möchte ich aber nicht im Programmcode hinterlegen.

    Vorgehen soll sein, dass der User einen Text im Programm eingibt, Anhänge auswählt und auf Senden klickt.
    Beim Senden wird dann die URL aufgerufen, die beim Aufruf ein Mail mit auf dem Server in der Datenbank hinterlegten Zugangsdaten an mich sendet.

    Die Frage ist jetzt, wie kann ich (außer über den URL Parameter ?bodytext=Test) die Daten im Script mit $bodytext = _GET['bodytext']; bekommen?
    Für einfache Texte sollte diese Vorgehensweise reichen, allerdings wird es bei langen Texten die möglicherweise Sonderzeichen beinhalten, nicht funktionieren.
    Nur der Bodytext als übergebener Wert würde mir fast schon reichen, Anhänge wären mir nicht so wichtig, da ich weiß dass diese dann auf dem Server zwischengespeichert werden müssten.

    Grüße :)
    Schau dir mal die HttpClient - Klasse an. Damit kannst du per POST Request Texte bzw. Daten an dein PHP Skript übermitteln.

    Die rufst du dann seitens PHP nicht mit _GET sondern _POST ab. Das sollte gleich funktionieren wie mit _GET.


    C#-Quellcode

    1. static async void SendStuff(string text)
    2. {
    3. using (var client = new HttpClient())
    4. {
    5. var content = new StringContent(text);
    6. var response = await client.PostAsync("http://deinserver.de/test.php", content);
    7. if(response.StatusCode == System.Net.HttpStatusCode.OK)
    8. {
    9. Console.WriteLine("Success!");
    10. }
    11. }
    12. }


    Das sollte (ungetestet) schon in etwa funktionieren wenn du deine Server Adresse noch anpasst.
    Ich kanns leider gerade nicht testen, aber in PHP würde ich mir mit var_dump($_POST) einfach mal ausgeben lassen was da ankommt und dann dementsprechend den Text auswerten.

    Übrigens verlangt PostAsync ein Objekt vom Typ HttpContent. StringContent habe ich jetzt genommen weil du ja Text übertragen willst. Schau dir mal an was es da noch so gibt, vielleicht findest du ja was passendes.