2010-09-14 2 views
0

J'écris une application Web utilisant Codeigniter pour un client et j'utilise l'une de ses machines de développement interne. En raison des restrictions de sécurité, le port du serveur Web est uniquement interne et n'est pas exposé au monde extérieur. Je dois donc y accéder via un tunnel SSH. J'ai donc frappé le serveur web comme ceci: http://localhost/path_to_data.Modification de l'emplacement de l'action de formulaire dans CodeIgniter

Je crée un formulaire dans Codeigniter à l'aide de l'aide de formulaire standard, le seul problème est que l'action du formulaire pointe vers l'emplacement de la boîte à partir du fichier de configuration Codeigniter. Je ne peux pas changer cette valeur de configuration parce que nous avons des développeurs internes qui y accèdent également et qui n'utiliseront pas de tunnel SSH, donc ils l'atteindront par l'URL "réelle".

Existe-t-il un moyen de forcer Codeigniter à utiliser le formulaire pour pointer vers lui-même avec un chemin relatif au lieu du chemin complet?

+0

http://codeigniter.com/forums/viewthread/60181/ – Wrikken

+0

ack, je n'ai pas remarqué votre commentaire avant de cliquer sur soumettre sur ma réponse. Désolé pour ça. – Fanis

Répondre

0

form_open() utilise l'URL de base définie dans config.php: $config['base_url']. Essayez de le conditionner, basé sur $_SERVER['SERVER_NAME']. De cette façon, les développeurs internes utilisant, par exemple, "http://demo.local", ainsi que vous utilisant "http://localhost/" seront en mesure de voir les URL absolues appropriées, en fonction de leur accès au serveur.

$config['base_url'] = 'http://demo.local/' ; 
if ($_SERVER['SERVER_NAME'] == 'localhost') { 
    $config['base_url'] = http://localhost/' ; 
} 

En tant que sidenote, je remarque que form_open() vérifie si le paramètre passé est une URL complète (en particulier si elle comprend un « : // »), et si elle ne puis définit comme l'action de la forme sans tout traitement. Vous pouvez donc appeler le form_open("http://localhost/form_submit") et l'utiliser tel quel sans le fichier base_url.

+0

Cela a fonctionné parfaitement, je ne sais pas pourquoi je n'y ai pas pensé moi-même. Merci! – Khirok

+0

Cela a fonctionné parfaitement, je ne sais pas pourquoi je n'y ai pas pensé moi-même. Merci! – Khirok

Questions connexes