Jump to content

Bottyz

Members
  • Posts

    107
  • Joined

  • Last visited

Everything posted by Bottyz

  1. thank you, this seemed to work. I did try a foreach loop before you sent this but ended up causing another error: PHP Warning: Invalid argument supplied for foreach(). Your fix about makes perfect sense and so far has fixed my problem
  2. Thanks for your detailed answer, I've replaced my code with the above and its no longer causing an error and the download still works so I'm assuming it works as intended With regards to the unicode_replace_entities function. This is being passed a user inputted message from a message box on a contact form on the website. Its called as follows: function previous_request_value($str) { if (isset($_REQUEST[$str]) ) return $_REQUEST[$str]; else return ''; } $message_body = trim(previous_request_value('message_body')); $message_body=nl2br(htmlspecialchars(stripslashes($message_body), ENT_QUOTES, 'UTF-8')); $oUnicodeReplace = new unicode_replace_entities(); $message_body = $oUnicodeReplace->UTF8entities($message_body); Then the full class for unicode_replace_entities is: class unicode_replace_entities { public function UTF8entities($content="") { $contents = $this->unicode_string_to_array($content); $swap = ""; $iCount = count($contents); for ($o=0;$o<$iCount;$o++) { $contents[$o] = $this->unicode_entity_replace($contents[$o]); $swap .= $contents[$o]; } return mb_convert_encoding($swap,"UTF-8"); //not really necessary, but why not. } public function unicode_string_to_array( $string ) { //adjwilli $strlen = mb_strlen($string); $array = ""; while ($strlen) { $array[] = mb_substr( $string, 0, 1, "UTF-8" ); $string = mb_substr( $string, 1, $strlen, "UTF-8" ); $strlen = mb_strlen( $string ); } return $array; } public function unicode_entity_replace($c) { //m. perez $h = ord($c{0}); if ($h <= 0x7F) { return $c; } else if ($h < 0xC2) { return $c; } if ($h <= 0xDF) { $h = ($h & 0x1F) << 6 | (ord($c{1}) & 0x3F); $h = "" . $h . ";"; return $h; } else if ($h <= 0xEF) { $h = ($h & 0x0F) << 12 | (ord($c{1}) & 0x3F) << 6 | (ord($c{2}) & 0x3F); $h = "" . $h . ";"; return $h; } else if ($h <= 0xF4) { $h = ($h & 0x0F) << 18 | (ord($c{1}) & 0x3F) << 12 | (ord($c{2}) & 0x3F) << 6 | (ord($c{3}) & 0x3F); $h = "" . $h . ";"; return $h; } } } As you can tell some of this is not my code, and I can't confess to fully understanding all of it.
  3. For a start the session_start needs to go above everything else. The blank page would normally mean you've missing a semi colon or similar (best to check error logs for specifics) my guess would be the missing semi-colon from: mail($to, $subject, $message, $headers) should be: mail($to, $subject, $message, $headers);
  4. Just a thought, have you added <?php session_start(); ?> at the beginning of your email.php? You'll also want to keep the user on that page for a few seconds before redirecting to index.html as you'll want them to see the notice you've written, so add header ("refresh: 5; url=index.html"); instead of header("Location: index.html");
  5. Oh and I'm also getting a very similar PHP notice for the below, again I think the culprit is the $o variable. class unicode_replace_entities { public function UTF8entities($content="") { $contents = $this->unicode_string_to_array($content); $swap = ""; $iCount = count($contents); for ($o=0;$o<$iCount;$o++) { $contents[$o] = $this->unicode_entity_replace($contents[$o]); $swap .= $contents[$o]; } return mb_convert_encoding($swap,"UTF-8"); //not really necessary, but why not. } This time the notice is: [28-Jul-2015 06:44:41 America/New_York] PHP Notice: Uninitialized string offset: 0 in /public_html/contactform.php on line 108 Pulling what little hair I have left out over these! Thanks
  6. $domains = count($alloweddomains); for($y=0;$y<$domains+1;$y++) { if((stristr($_SERVER['HTTP_REFERER'], $alloweddomains[$y]))) { $allowed = 1; } } Hi all, Probably a really easy one for you to solve, but I'm a little stumped. I've recently upgraded to php 5.4 and have started getting a few php notices and I'm going through them one by one, but I'm stuck fixing the following: [29-Jul-2015 06:54:21 America/New_York] PHP Notice: Undefined offset: 3 in /public_html/filedownload.php on line 25 I've attached the code and I believe its referring to the $y variable. Any ideas or assistance is always appreciated.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.