J'ai le script de CI installé sur Xampp. Actuellement, je travaille sur des formulaires et lorsque je clique sur soumettre en HTML, cela ne fait rien.
J'ai essayé
echo form_open('verifylogin');
echo form_open();
Il montre sur le code source comme
<form action="http://::1/codeigniter/verifylogin">
<form action="http://::1/codeigniter/">
respectivement.
Je ne comprends pas ce qu'est ce "http://::1/"
et comment s'en débarrasser?
Si l'adresse IP est affichée dans form action ou url
http://::1/yourproject/
http://127.0.0.1/yourproject/
Les chances sont que vous avez laissé l'URL de base vide
/*
|--------------------------------------------------------------------------
| Base Site URL
|--------------------------------------------------------------------------
|
| URL to your CodeIgniter root. Typically this will be your base URL,
| WITH a trailing slash:
|
| http://example.com/
|
| WARNING: You MUST set this value!
|
| If it is not set, then CodeIgniter will try guess the protocol and path
| your installation, but due to security concerns the hostname will be set
| to $_SERVER['SERVER_ADDR'] if available, or localhost otherwise.
| The auto-detection mechanism exists only for convenience during
| development and MUST NOT be used in production!
|
| If you need to allow multiple domains, remember that this file is still
| a PHP script and you can easily do that on your own.
|
*/
$config['base_url'] = '';
Maintenant, dans les dernières versions de codeIgniter, il est déconseillé de laisser votre base_url vide.
$config['base_url'] = 'http://localhost/yourproject/';
$config['base_url'] = 'http://www.example.com/';
Et il est toujours bon de terminer l'url avec /
Vous devrez peut-être créer des itinéraires pour votre formulaire ici
application > config > routes.php
CodeIgniter 3:Routing
CodeIgniter 2:Routing
Mettre à jour:
Avec les versions de CodeIgniter 3 +:
Lorsque vous créez un fichier, rappelez-vous que vous devez utiliser first letter ONLY en majuscule sur file names
et classes
.
Ce qui se passera parfois, c’est que tout cela fonctionnera peut-être dans un environnement hôte local avec des minuscules, mais lorsque vous irez sur un serveur actif, quelques fois jetteront des erreurs ou ne soumettront pas les formulaires correctement, etc.
Exemple: De Contrôleurs Ceci s'applique également à Modèles
Nom du fichier: Verifylogin.php
<?php
class Verifylogin extends CI_Controller {
public function __construct() {
parent::__construct();
}
public function index() {
}
}
Nom du fichier: Verify_login.php
<?php
class Verify_login extends CI_Controller {
public function __construct() {
parent::__construct();
}
public function index() {
}
}
Nom du fichier: verifylogin.php
class verifylogin extends CI_Controller {
public function __construct() {
parent::__construct();
}
public function index() {
}
}
Nom du fichier: Verify_Login.php
class Verify_Login extends CI_Controller {
public function __construct() {
parent::__construct();
}
public function index() {
}
}
Codeigniter Doc's
Allez dans application/config/config.php set base_url
$config['base_url'] = 'http://localhost/example/';
Et actualisez votre application
Alors l'erreur ::1
devrait disparaître.
Allez sur System/core/Config.php
Définissez config dans la ligne 84
public function __construct()
{
$this->config =& get_config();
// Set the base_url automatically if none was provided
if (empty($this->config['base_url']))
{
// The regular expression is only a basic validation for a valid "Host" header.
// It's not exhaustive, only checks for valid characters.
if (isset($_SERVER['HTTP_Host']) && preg_match('/^((\[[0-9a-f:]+\])|(\d{1,3}(\.\d{1,3}){3})|[a-z0-9\-\.]+)(:\d+)?$/i', $_SERVER['HTTP_Host']))
{
$base_url = (is_https() ? 'https' : 'http').'://'.$_SERVER['HTTP_Host']
.substr($_SERVER['SCRIPT_NAME'], 0, strpos($_SERVER['SCRIPT_NAME'], basename($_SERVER['SCRIPT_FILENAME'])));
}
else
{
$base_url = 'http://localhost/';
}
$this->set_item('base_url', $base_url);
}
log_message('info', 'Config Class Initialized');
}