PHP mail () bricht 650 Zeichen lang URL ab

8

Ich benutze die php mail Funktion, um eine Verbindung mit vielen Parametern zu senden. Die URL, nachdem sie codiert wurde, kann 650 oder mehr Zeichen lang sein, da ihre Variablen zum Wiederbefüllen eines Formulars verwendet werden.

Wenn ich auf den Link in meiner E-Mail klicke, ist das kaputt, weil irgendwo in der URL ein Leerzeichen eingefügt wurde.

Heres meine sendMail Funktion:

%Vor%

Hier ist der Code, den ich mit sendMail anrufe. Es ist der '$ salesUrl = $ this- & gt; getSalesFormUrl ();' das ist der URL von über 650 Zeichen voller codierter Parameter.

%Vor%

Und hier ist die URL, die ich in meiner E-Mail erhalte: Sie werden den Platz "... BhsNKq Jsd_x4 ..." in der Mitte der URL sehen. Dies geschieht jedes Mal an einem anderen Ort, auch wenn ich die exakt gleiche URL sende. Um dies zu beweisen, habe ich diese URL ohne Leerzeichen in der emailRep-Methode fest codiert und mehrfach gesendet. Der Raum bewegte sich herum.

%Vor%

Hier ist der Code, den ich verwende, um die URL-Parameter zu kodieren / zu decodieren, bevor ich sie durch die E-Mail sende.

%Vor%

Wie verhindere ich diesen Speicherplatz? Ich weiß, ich könnte die URL mit etwas wie bit.ly kürzen, aber es ist ein internes Tool. Ich habe das Gefühl, dass es einen Weg geben muss, den Raum daran zu hindern, eingefügt zu werden.

    
RachelD 19.12.2012, 14:30
quelle

3 Antworten

2

Wer hat einen 650 Zeichen langen Query-String im Kopf?

Ich empfehle, die Abfragezeichenfolge serverseitig zu speichern. Setzen Sie es in eine Datenbank mit einem AUTO_INCREMENT -Feld, dann können Sie eine ID dafür erhalten. Dann können Sie einfach die URL als http://example.com/?email_key=ID_GOES_HERE senden, eine viel kürzere URL. Dann suchen Sie einfach die Abfragezeichenfolge aus der Datenbank.

Fertig.

    
Niet the Dark Absol 20.12.2012 04:12
quelle
1

Ich habe, was Sie brauchen, Ссылка . Erstellen Sie tinyurl Links mit API, nichts in der Datenbank:)

    
Aleksandar 03.01.2013 20:08
quelle
-1

Ok, ich hatte dasselbe Problem. Meine Lösung war mein eigener Link schrumpft ... Erstellen Sie neue Tabelle in der Datenbank mit wenigen Zeilen, einige Zeilen Code in Ihrem alten Skript und neue Seite für Weiterleitung ... Dies ist die kürzeste Erklärung, wenn Sie Hilfe benötigen, fragen Sie einfach: )

BEARBEITEN:

%Vor%

Und Umleitungsseite:     

%Vor%     
Aleksandar 20.12.2012 01:45
quelle

Tags und Links