Pourquoi mon URL redirige-t-elle pas?
-
28-10-2019 - |
Question
Je télécharge le codeigniter 2.1.0 et j'ai suivi le Didacticiel sur codeigniter 2.1.0.
Le problème est lorsque j'essaie de soumettre un formulaire dans cette URL:
http://localhost/CodeIgniter/index.php/news/create
La page est redirigée vers cette URL:
http://localhost/CodeIgniter/index.php/news/localhost/CodeIgniter/index.php/news/create
J'ai fatigué de nombreuses façons de changer l'itinéraire.php mais cela ne fonctionne pas. Comment puis-je réparer cela??
root.php
$route['news/create'] = 'news/create';
$route['news/(:any)'] = 'news/view/$1';
$route['news'] = 'news';
$route['(:any)'] = 'pages/view/$1';
$route['default_controller'] = 'pages/view';
Ceci est le code de la page de formulaire:
public function create()
{
$this->load->helper('form');
$this->load->library('form_validation');
$data['title'] = 'Create a news item';
$this->form_validation->set_rules('title', 'Title', 'required');
$this->form_validation->set_rules('text', 'text', 'required');
if ($this->form_validation->run() === FALSE)
{
$this->load->view('templates/header', $data);
$this->load->view('news/create');
$this->load->view('templates/footer');
}
else
{
$this->news_model->set_news();
$this->load->view('news/success');
}
}
Je remarque que lorsque la page de formulaire lorsque la page est chargée, le segment de code ci-dessous sera exécuté, cependant, le segment ELSE n'a jamais obtenu de modifications à exécuter.
if ($this->form_validation->run() === FALSE)
{
$this->load->view('templates/header', $data);
$this->load->view('news/create');
$this->load->view('templates/footer');
}
Ceci est la page de formulaire, rien de spécial, il suffit d'appeler la fonction de création illustrée ci-dessus.create.php
<h2>Create a news item</h2>
<?php echo validation_errors(); ?>
<?php echo form_open('news/create') ?>
<label for="title">Title</label>
<input type="input" name="title" /><br />
<label for="text">Text</label>
<textarea name="text"></textarea><br />
<input type="submit" name="submit" value="Create news item" />
</form>
Ceci est le HTML pour la page de formulaire:
<html>
<head>
<title>Create a news item - CodeIgniter 2 Tutorial</title>
</head>
<body>
<h1>CodeIgniter 2 tutorial</h1><h2>Create a news item</h2>
<form action="localhost/CodeIgniter/index.php/news/create" method="post" accept-charset="utf-8">
<label for="title">Title</label>
<input type="input" name="title" /><br />
<label for="text">Text</label>
<textarea name="text"></textarea><br />
<input type="submit" name="submit" value="Create news item" />
</form><strong>©2012</strong>
</body>
</html>
Et quand j'appuie sur le create new item
bouton, l'URL a changé en
http://localhost/CodeIgniter/index.php/news/localhost/CodeIgniter/index.php/news/create
et la page montre 404 Pages Not Found
La solution
J'ai trouvé la solution, elle est causée par le réglage URL de base incorrect.
Avant que mon URL de base ne soit: $config['base_url'] = 'localhost/CodeIgniter';
Maintenant je l'ai changé pour
$config['base_url'] = 'http://localhost/CodeIgniter/';
Et ça marche bien maintenant.
Merci pour quiconque a essayé d'aider :)
Autres conseils
Juste une suggestion, cela peut vous aider:
$config['base_url'] = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "https" : "http");
$config['base_url'] .= "://".$_SERVER['HTTP_HOST'];
$config['base_url'] .= str_replace(basename($_SERVER['SCRIPT_NAME']),"",$_SERVER['SCRIPT_NAME']);
Définissez ceci dans votre fichier config.php, vous ne serez jamais inquiet $config['base_url']
. Parce qu'il se déroulera http
ou https
Port, domain
, port number
(Ex. 8080, 8880 etc.) et codeigniter root folder
. Il peut également être réutilisé à l'avenir dans votre projet CodeIgniter. :)
vous pouvez également vérifier Cet article