PDA

View Full Version : پارامتر فارسی در PHP MVC



abbas95
جمعه 29 دی 1396, 13:52 عصر
سلام دوستان عزیز به یه مشکلی خوردم ممنون میشم کمکم کنید
یه پروژه php MVC دارم نمیتونم به متدم پارامتر فارسی ارسال کنم فقط انگلیسی قبول میکنه اگه فارسی ارسال کنم ارور server Not found
میده url زیر رو در نظر بگیرید
Myproject/product/1/iphonex
این رو قبول میکنه ولی وقتی iphonex رو به فارسی میفرستم (ایفون ایکس) ارور سرور نات فوند میده

MRmoon
جمعه 29 دی 1396, 15:57 عصر
به نام خدا. الان رو هوا جواب می دیم :)

خب فایل htaccess و اون فایلی که ریکوئست رو هندل می کنه رو بزارین.

abbas95
جمعه 29 دی 1396, 20:52 عصر
RewriteEngine on



RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l


RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]




<?php


class App
{
public $controller='index';
public $method='index';
public $params=[];



function __construct()
{

if (isset($_GET['url'])){
$url = $_GET['url'];

$url = $this->parse_url($url);

$this->controller = $url[0];
unset($url[0]);
if (isset($url[1])){
$this->method = $url[1];
unset($url[1]);

}

$this->params=array_values($url);

}

$controller_url='controllers/' . $this->controller.'.php';
if(file_exists($controller_url)) {
require($controller_url);
$object = new $this->controller;

$object->model($this->controller); //() dakhl parantez nam model controller harchi bashe miad to parantez va mishe nam model yani har controlleri k miad modelesham biad

if(method_exists($object,$this->method)){ call_user_func_array([$object, $this->method],$this->params);}


}


}


function parse_url($url)
{
$url=filter_var($url,FILTER_SANITIZE_URL);
$url=rtrim($url,'/');
$url=explode('/', $url);






return $url;


}



}

?>


اینم از فایل htacces و هندلر

plague
شنبه 30 دی 1396, 15:12 عصر
urlencode استفاده کن رو پارامتر فارسی قبل از گزاشتن تو لینک ببینی چی میشه

abbas95
چهارشنبه 04 بهمن 1396, 09:29 صبح
RewriteRule ^([\s\S]*)$ index.php?url=$1 [L,B,QSA]
این رو قرار دادم جای قبلی و الان داره درست کار میکنه