Codeigniter Redirect - L'URI que vous avez soumis a des caractères interdits
Quand je suis en train de rediriger vers d'autres site, je reçois cette erreur:
Une Erreur PHP a été rencontrée
Gravité: Avertissement
Message: parse_url(/%22**) [fonction.parse-url]: Unable to parse URL
Nom de fichier: core/URI.php
Numéro De Ligne: 219
Une Erreur A Été Rencontrée
L'URI que vous avez soumis a des caractères non autorisés.
C'est tout le code que j'ai dans URI.php
private function _detect_uri()
{
if ( ! isset($_SERVER['REQUEST_URI']) OR ! isset($_SERVER['SCRIPT_NAME']))
{
return '';
}
$uri = $_SERVER['REQUEST_URI'];
if (strpos($uri, $_SERVER['SCRIPT_NAME']) === 0)
{
$uri = substr($uri, strlen($_SERVER['SCRIPT_NAME']));
}
elseif (strpos($uri, dirname($_SERVER['SCRIPT_NAME'])) === 0)
{
$uri = substr($uri, strlen(dirname($_SERVER['SCRIPT_NAME'])));
}
//This section ensures that even on servers that require the URI to be in the query string (Nginx) a correct
//URI is found, and also fixes the QUERY_STRING server var and $_GET array.
if (strncmp($uri, '?/', 2) === 0)
{
$uri = substr($uri, 2);
}
$parts = preg_split('#\?#i', $uri, 2);
$uri = $parts[0];
if (isset($parts[1]))
{
$_SERVER['QUERY_STRING'] = $parts[1];
parse_str($_SERVER['QUERY_STRING'], $_GET);
}
else
{
$_SERVER['QUERY_STRING'] = '';
$_GET = array();
}
if ($uri == '/' || empty($uri))
{
return '/';
}
$uri = parse_url($uri, PHP_URL_PATH);
//Do some final cleaning of the URI and return it
return str_replace(array('//', '../'), '/', trim($uri, '/'));
}
source d'informationauteur subrui
Vous devez vous connecter pour publier un commentaire.
CodeIgniter vérifie tous les
URI
des segments pour les caractères non autorisés. Ce qui se passe par liste blanche de caractères autorisés. Ceux qui sont autorisés peut être vérifié dans/system/application/config/config.php
dans le$config['permitted_uri_chars']
variable.permitted_uri_chars
sont les personnages que CodeIgniter accepte dans votre URI.La valeur par défaut est définie à quelque chose comme.Par défaut sur ces seuls sont autorisés:
a-z 0-9~%.:_-
Laissez le champ vide pour permettre à tous les personnages-mais seulement si vous êtes fou.
%22
vient pour"
.Vous pouvez ajouter ce danspermitted_uri_chars
liste.Essayez cela peut aider mais est
not recommended
dans votreapplication/config/config.php
changement:Solution ci-dessus est parfait, sauf que la deuxième ligne
($config['allow_get_array'] = TRUE;);
sa existe pas. Par la manière, je suis à l'aide de Open-Blog.info système de blogs, et j'ai fait face à ce problème lorsque j'essaye d'ouvrir l'Administrateur de la page.