Crlf in ajax call 403 (Forbidden)


#1

I’ve just switched hosts to eliminate my issue with the code.js file caching on my previous provider. I don’t have caching problems anymore but I write text to a file on the server with a php file being called with Ajax. If the text to be written contains a crlf, vbcrlf, chr(13) or seemingly anything that writes a new line it brings up 403 (Forbidden). With no crlf it works perfectly. Is there something I need to do server side to get this going?


#2

Use the encodeURIComponent function:

http://wiki.nsbasic.com/EncodeURIComponent/decodeURIComponent


#3

I’m aware of that but I’m writing an email to send by php from server. Text needs to be human friendly.


#4

If you are creating the the email on the server use \n for a carriage return. If the text string for the email has carriage return/linefeeds (13/10s) then replace these with \n within the text before writing to your server.

John


#5

Awesome thanks. I’ll give that a go


#6

I’m not doing something quite right. I get this…

Sports Committee\n\nRegistration details for as follows;\n\nParent: \nEmail:

by doing this…

r = "\n"
Txt = “Thank you for registering your child with the Gordonton School Sports Committee” & r & r
Txt = Txt & “Registration details for " & UCase(ChildNameTB.text) & " as follows;” & r & r
Txt = Txt & "Parent: " & ParentNameTB.text & r & "Email: "

Any help greatly appreciated


#7

Can you using HTML here?

r = "<br>"
Txt = ...

#8

That got the string with "<br>" in the string same as “\n”


#9

How are you displaying the text?


#10

<?php

// Get the data from the client.
$myText = file_get_contents(‘php://input’);
//$myText = str_replace(file_get_contents(‘php://input’),"","\r\n");
$to = $_GET[‘EmailTo’];
$headers = $_GET[‘Headers’];
$subject = $_GET[‘Subject’];
$body = $myText;
mail($to, $subject, $body, $headers);
?>


#11

Ah - I thought you were displaying it in AppStudio.


#12

This worked after 6 hours of research & trials. I send string to server with a “|” at the end of each line on the email.

<?php_

// Get the data from the client._
$myText = file_get_contents('php://input');
//$body = $myText;_
$lines = str_getcsv ($myText,"|");
foreach($lines as $str){
    $body .= $str . "\r\n";
 }

 $to = $_GET['EmailTo'];
 $headers = $_GET['Headers'];
 $subject = $_GET['Subject'];

mail($to, $subject, $body, $headers);_
?>