lovephp Posted July 26, 2016 Share Posted July 26, 2016 why is this message showing up when i try to post something with this symbol ¶ in the title field which is a varchar but if i put this symbol in text field no error shows Quote Link to comment https://forums.phpfreaks.com/topic/301645-fatal-error-using-this-when-not-in-object-context-error-message/ Share on other sites More sharing options...
ginerjm Posted July 26, 2016 Share Posted July 26, 2016 (edited) Code Please! I doubt that your problem title has anything to do with the code problem you wrote below it. Edited July 26, 2016 by ginerjm Quote Link to comment https://forums.phpfreaks.com/topic/301645-fatal-error-using-this-when-not-in-object-context-error-message/#findComment-1535095 Share on other sites More sharing options...
lovephp Posted July 27, 2016 Author Share Posted July 27, 2016 (edited) sorry for the delay in reply, well here is my codes if i happen when i enter that symbol in title field only then i see the error which is referring to config.php file line 92 its the url slug function which i have and line 92 is this portion if($this->seems_utf8($string)){ the complete slug code is function create_slug($string){ $string = remove_accents($string); $string = symbols_to_words($string); $string = strtolower($string); $space_chars = array( " ", "…", "–", "—", "/", "\\", ":", ";", ".", "+", "$", "%", "#", "~", "_", "|", ); foreach($space_chars as $char){ $string = str_replace($char, '-', $string); } $string = preg_replace('/([^a-zA-Z0-9\-]+)/', '', $string); $string = preg_replace('/-+/', '-', $string); if(substr($string, -1)==='-'){ $string = substr($string, 0, -1); } if(substr($string, 0, 1)==='-'){ $string = substr($string, 1); } return $string; } function remove_accents($string) { if(!preg_match('/[\x80-\xff]/', $string)){ return $string; } if($this->seems_utf8($string)){ $chars = array( chr(195).chr(128) => 'A', chr(195).chr(129) => 'A', chr(195).chr(130) => 'A', chr(195).chr(131) => 'A', chr(195).chr(132) => 'A', chr(195).chr(133) => 'A', chr(195).chr(135) => 'C', chr(195).chr(136) => 'E', chr(195).chr(137) => 'E', chr(195).chr(138) => 'E', chr(195).chr(139) => 'E', chr(195).chr(140) => 'I', chr(195).chr(141) => 'I', chr(195).chr(142) => 'I', chr(195).chr(143) => 'I', chr(195).chr(145) => 'N', chr(195).chr(146) => 'O', chr(195).chr(147) => 'O', chr(195).chr(148) => 'O', chr(195).chr(149) => 'O', chr(195).chr(150) => 'O', chr(195).chr(153) => 'U', chr(195).chr(154) => 'U', chr(195).chr(155) => 'U', chr(195).chr(156) => 'U', chr(195).chr(157) => 'Y', chr(195).chr(159) => 's', chr(195).chr(160) => 'a', chr(195).chr(161) => 'a', chr(195).chr(162) => 'a', chr(195).chr(163) => 'a', chr(195).chr(164) => 'a', chr(195).chr(165) => 'a', chr(195).chr(167) => 'c', chr(195).chr(168) => 'e', chr(195).chr(169) => 'e', chr(195).chr(170) => 'e', chr(195).chr(171) => 'e', chr(195).chr(172) => 'i', chr(195).chr(173) => 'i', chr(195).chr(174) => 'i', chr(195).chr(175) => 'i', chr(195).chr(177) => 'n', chr(195).chr(178) => 'o', chr(195).chr(179) => 'o', chr(195).chr(180) => 'o', chr(195).chr(181) => 'o', chr(195).chr(182) => 'o', chr(195).chr(182) => 'o', chr(195).chr(185) => 'u', chr(195).chr(186) => 'u', chr(195).chr(187) => 'u', chr(195).chr(188) => 'u', chr(195).chr(189) => 'y', chr(195).chr(191) => 'y', chr(196).chr(128) => 'A', chr(196).chr(129) => 'a', chr(196).chr(130) => 'A', chr(196).chr(131) => 'a', chr(196).chr(132) => 'A', chr(196).chr(133) => 'a', chr(196).chr(134) => 'C', chr(196).chr(135) => 'c', chr(196).chr(136) => 'C', chr(196).chr(137) => 'c', chr(196).chr(138) => 'C', chr(196).chr(139) => 'c', chr(196).chr(140) => 'C', chr(196).chr(141) => 'c', chr(196).chr(142) => 'D', chr(196).chr(143) => 'd', chr(196).chr(144) => 'D', chr(196).chr(145) => 'd', chr(196).chr(146) => 'E', chr(196).chr(147) => 'e', chr(196).chr(148) => 'E', chr(196).chr(149) => 'e', chr(196).chr(150) => 'E', chr(196).chr(151) => 'e', chr(196).chr(152) => 'E', chr(196).chr(153) => 'e', chr(196).chr(154) => 'E', chr(196).chr(155) => 'e', chr(196).chr(156) => 'G', chr(196).chr(157) => 'g', chr(196).chr(158) => 'G', chr(196).chr(159) => 'g', chr(196).chr(160) => 'G', chr(196).chr(161) => 'g', chr(196).chr(162) => 'G', chr(196).chr(163) => 'g', chr(196).chr(164) => 'H', chr(196).chr(165) => 'h', chr(196).chr(166) => 'H', chr(196).chr(167) => 'h', chr(196).chr(168) => 'I', chr(196).chr(169) => 'i', chr(196).chr(170) => 'I', chr(196).chr(171) => 'i', chr(196).chr(172) => 'I', chr(196).chr(173) => 'i', chr(196).chr(174) => 'I', chr(196).chr(175) => 'i', chr(196).chr(176) => 'I', chr(196).chr(177) => 'i', chr(196).chr(178) => 'IJ',chr(196).chr(179) => 'ij', chr(196).chr(180) => 'J', chr(196).chr(181) => 'j', chr(196).chr(182) => 'K', chr(196).chr(183) => 'k', chr(196).chr(184) => 'k', chr(196).chr(185) => 'L', chr(196).chr(186) => 'l', chr(196).chr(187) => 'L', chr(196).chr(188) => 'l', chr(196).chr(189) => 'L', chr(196).chr(190) => 'l', chr(196).chr(191) => 'L', chr(197).chr(128) => 'l', chr(197).chr(129) => 'L', chr(197).chr(130) => 'l', chr(197).chr(131) => 'N', chr(197).chr(132) => 'n', chr(197).chr(133) => 'N', chr(197).chr(134) => 'n', chr(197).chr(135) => 'N', chr(197).chr(136) => 'n', chr(197).chr(137) => 'N', chr(197).chr(138) => 'n', chr(197).chr(139) => 'N', chr(197).chr(140) => 'O', chr(197).chr(141) => 'o', chr(197).chr(142) => 'O', chr(197).chr(143) => 'o', chr(197).chr(144) => 'O', chr(197).chr(145) => 'o', chr(197).chr(146) => 'OE',chr(197).chr(147) => 'oe', chr(197).chr(148) => 'R',chr(197).chr(149) => 'r', chr(197).chr(150) => 'R',chr(197).chr(151) => 'r', chr(197).chr(152) => 'R',chr(197).chr(153) => 'r', chr(197).chr(154) => 'S',chr(197).chr(155) => 's', chr(197).chr(156) => 'S',chr(197).chr(157) => 's', chr(197).chr(158) => 'S',chr(197).chr(159) => 's', chr(197).chr(160) => 'S', chr(197).chr(161) => 's', chr(197).chr(162) => 'T', chr(197).chr(163) => 't', chr(197).chr(164) => 'T', chr(197).chr(165) => 't', chr(197).chr(166) => 'T', chr(197).chr(167) => 't', chr(197).chr(168) => 'U', chr(197).chr(169) => 'u', chr(197).chr(170) => 'U', chr(197).chr(171) => 'u', chr(197).chr(172) => 'U', chr(197).chr(173) => 'u', chr(197).chr(174) => 'U', chr(197).chr(175) => 'u', chr(197).chr(176) => 'U', chr(197).chr(177) => 'u', chr(197).chr(178) => 'U', chr(197).chr(179) => 'u', chr(197).chr(180) => 'W', chr(197).chr(181) => 'w', chr(197).chr(182) => 'Y', chr(197).chr(183) => 'y', chr(197).chr(184) => 'Y', chr(197).chr(185) => 'Z', chr(197).chr(186) => 'z', chr(197).chr(187) => 'Z', chr(197).chr(188) => 'z', chr(197).chr(189) => 'Z', chr(197).chr(190) => 'z', chr(197).chr(191) => 's', chr(226).chr(130).chr(172) => 'E', chr(194).chr(163) => ''); $string = strtr($string, $chars); } else { $chars['in'] = chr(128).chr(131).chr(138).chr(142).chr(154).chr(158) .chr(159).chr(162).chr(165).chr(181).chr(192).chr(193).chr(194) .chr(195).chr(196).chr(197).chr(199).chr(200).chr(201).chr(202) .chr(203).chr(204).chr(205).chr(206).chr(207).chr(209).chr(210) .chr(211).chr(212).chr(213).chr(214).chr(216).chr(217).chr(218) .chr(219).chr(220).chr(221).chr(224).chr(225).chr(226).chr(227) .chr(228).chr(229).chr(231).chr(232).chr(233).chr(234).chr(235) .chr(236).chr(237).chr(238).chr(239).chr(241).chr(242).chr(243) .chr(244).chr(245).chr(246).chr(248).chr(249).chr(250).chr(251) .chr(252).chr(253).chr(255); $chars['out'] = "EfSZszYcYuAAAAAACEEEEIIIINOOOOOOUUUUYaaaaaaceeeeiiiinoooooouuuuyy"; $string = strtr($string, $chars['in'], $chars['out']); $double_chars['in'] = array(chr(140), chr(156), chr(198), chr(208), chr(222), chr(223), chr(230), chr(240), chr(254)); $double_chars['out'] = array('OE', 'oe', 'AE', 'DH', 'TH', 'ss', 'ae', 'dh', 'th'); $string = str_replace($double_chars['in'], $double_chars['out'], $string); } return $string; } function symbols_to_words($output){ $output = str_replace('@', ' at ', $output); $output = str_replace('%', ' percent ', $output); $output = str_replace('&', ' and ', $output); return $output; } i found it online its not written by me and here is how i post $jtitle = $_POST['title']; $jcompanyname = $_POST['companyname']; $jcompanymobile = $_POST['companymobile']; $jcompanyemail = $_POST['companyemail']; $jarea = $_POST['area']; $jcategory = $_POST['category']; $jdescription = $_POST['description']; $jurl = strtolower(''.create_slug(substr($jtitle, 0,90)).'/'); if(!isset($error)){ try { $stmt = $db->prepare('INSERT INTO table (posterID, tbl_title,tbl_company_name,tbl_company_mobile,tbl_company_email,tbl_area,tbl_category,tbl_description,tbl_url) VALUES (:posterID, :tbl_title, :tbl_company_name, :tbl_company_mobile, :tbl_company_email, :tbl_area, :tbl_category, :tbl_description, :tbl_url)'); $stmt->execute(array( ':posterID' => $uid, ':tbl_title' => $jtitle, ':tbl_company_name' => $jcompanyname, ':tbl_company_mobile' => $jcompanymobile, ':tbl_company_email' => $jcompanyemail, ':tbl_area' => $jarea, ':tbl_category' => $jcategory, ':tbl_description' => $jdescription, ':tbl_url' => $jurl )); $stmt = $db->prepare('INSERT INTO floodcontrol (memberID) VALUES (:memberID)'); $stmt->execute(array(':memberID' => $uid )); unset($jtitle, $jcompanyname, $jcompanymobile, $jcompanyemail, $jarea, $jcategory, $jdescription, $jurl); header("Location: ".DIR."".$seturl.""); exit(); } catch(PDOException $e) { $error[] = $e->getMessage(); } } Edited July 27, 2016 by lovephp Quote Link to comment https://forums.phpfreaks.com/topic/301645-fatal-error-using-this-when-not-in-object-context-error-message/#findComment-1535184 Share on other sites More sharing options...
ginerjm Posted July 27, 2016 Share Posted July 27, 2016 How about narrowing it down and just show the 10 lines before and after the problem line? PS - why do you expect the forum to solve a problem that you didn't write? 1 Quote Link to comment https://forums.phpfreaks.com/topic/301645-fatal-error-using-this-when-not-in-object-context-error-message/#findComment-1535188 Share on other sites More sharing options...
kicken Posted July 27, 2016 Share Posted July 27, 2016 Wherever you got that code from, it expects to be part of a class which has a seems_utf8 function in it. You need to either get the entire class and use it or modify the code to not use $this. If you have a seems_utf8 function, just change the call to remove $this-> and it may work (depending on what the seems_utf8 function looks like). If you don't have that function you'll need to get it. Since it seems like what you may be trying to do is convert the title to ascii for use as a URL slug, you could also just try removing all that and using iconv to convert from the input charset to ascii. For example: <?php function create_slug($title){ //Convert to ascii $slug = iconv('windows-1252', 'ascii//TRANSLIT//IGNORE', $title); //Lowercase and limit length $slug = strtolower(substr($slug, 0, 90)); //Replace whitespace with a - $slug = preg_replace('/\s+/', '-', $slug); //Remove non a-z, 0-9, - characters. $slug = preg_replace('/[^a-z0-9-]+/', '', $slug); //Combine multiple - into a single - $slug = preg_replace('/-+/', '-', $slug); //Strip leading or trailing - $slug = trim($slug, '-'); return $slug; } You may need to adjust your in charset. 1 Quote Link to comment https://forums.phpfreaks.com/topic/301645-fatal-error-using-this-when-not-in-object-context-error-message/#findComment-1535189 Share on other sites More sharing options...
lovephp Posted July 27, 2016 Author Share Posted July 27, 2016 How about narrowing it down and just show the 10 lines before and after the problem line? PS - why do you expect the forum to solve a problem that you didn't write? PS - why do you expect the forum to solve a problem that you didn't write? agree that is true. i got hold of the situation now thanks thought Quote Link to comment https://forums.phpfreaks.com/topic/301645-fatal-error-using-this-when-not-in-object-context-error-message/#findComment-1535192 Share on other sites More sharing options...
Solution lovephp Posted July 27, 2016 Author Solution Share Posted July 27, 2016 Wherever you got that code from, it expects to be part of a class which has a seems_utf8 function in it. You need to either get the entire class and use it or modify the code to not use $this. If you have a seems_utf8 function, just change the call to remove $this-> and it may work (depending on what the seems_utf8 function looks like). If you don't have that function you'll need to get it. Since it seems like what you may be trying to do is convert the title to ascii for use as a URL slug, you could also just try removing all that and using iconv to convert from the input charset to ascii. For example: <?php function create_slug($title){ //Convert to ascii $slug = iconv('windows-1252', 'ascii//TRANSLIT//IGNORE', $title); //Lowercase and limit length $slug = strtolower(substr($slug, 0, 90)); //Replace whitespace with a - $slug = preg_replace('/\s+/', '-', $slug); //Remove non a-z, 0-9, - characters. $slug = preg_replace('/[^a-z0-9-]+/', '', $slug); //Combine multiple - into a single - $slug = preg_replace('/-+/', '-', $slug); //Strip leading or trailing - $slug = trim($slug, '-'); return $slug; } You may need to adjust your in charset. thanks mate Quote Link to comment https://forums.phpfreaks.com/topic/301645-fatal-error-using-this-when-not-in-object-context-error-message/#findComment-1535193 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.