web-dev-qa-db-fra.com

L'adresse IP est affichée dans l'action de formulaire avec CodeIgniter http: // :: 1/codeigniter/in html code source

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?

11

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

Ceci est valide

Nom du fichier: Verifylogin.php

<?php

class Verifylogin extends CI_Controller {

    public function __construct() {
       parent::__construct();
    }

    public function index() {

    }

}

Ceci est valide

Nom du fichier: Verify_login.php

<?php

class Verify_login extends CI_Controller {

    public function __construct() {
       parent::__construct();
    }

    public function index() {

    }

}

Ceci est pas valide

Nom du fichier: verifylogin.php

class verifylogin extends CI_Controller {

    public function __construct() {
       parent::__construct();
    }

    public function index() {

    }

}

Ceci est pas valide

Nom du fichier: Verify_Login.php

class Verify_Login extends CI_Controller {

    public function __construct() {
       parent::__construct();
    }

    public function index() {

    }

}

Codeigniter Doc's

28
Mr. ED

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.

8
sibaspage

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');
}
0
Adri Saputra