2010-09-24 5 views
2

Salut les gars. J'ai ce problème stupide avec l'insertion de texte avec forwardslash dans le panier dans le codeigniter. Quand c'est de la ficelle simple c'est bien mais quand on insère, disons, "compact/compact" ça ne marche pas. Ma conjecture est que '/' doit être en quelque sorte échappé. J'ai essayé hmtlspecialchars(), htmlentities() et même addslashes() - aucun des travaillé. Est-ce que quelqu'un sait comment faire cela en php?Comment faire pour échapper '/' dans codeigniter, php?

Quand j'insérer quelque chose au panier, je le fais comme ceci:

$release_barcode = $this->uri->segment(3); 

     $release = $this->Lists_model->get_release_by_barcode($release_barcode); 

      foreach($release as $row): 
      { 
       $barcode = $row->EAN_UPC; 
       $price = $row->product_price; 
       $currency = $row->product_currency; 
       $artist_name = $row->artist_name; 
       $label_name = $row->label_name; 
       $release_name = $row->title; 
       $cover = $row->cover; 
       $item_name = $artist_name.', '.$release_name.', '.$label_name; 

       $data = array(
            'id'  => $barcode, 
            'qty'  => 1, 
            'price' => $price, 
            'name' => $artist_name, 
            'options' => array('pic' => $cover, 'currency' => $currency) 
          ); 

       $this->cart->insert($data); 


      } 
      endforeach; 

      $this->display_cart(); 

Peut-être que je fais quelque chose de mal ici. Pouvez-vous me donner un indice s'il vous plaît?

+1

'/' est une barre oblique et non un antislash. Qu'est-ce que vous insérez la chaîne dans cela pourrait faire '/' un caractère spécial qui doit s'échapper? – BoltClock

+0

ses barres obliques inverses qui doivent être échappées, Pouvons-nous voir quelle partie de votre application joue ou une partie de la chaîne qui joue s'il vous plaît. – RobertPitt

Répondre

0

$string = str_replace('/', '\/', $string);

fonctionne pour certains Cest de mes applications de CI.

+0

Une barre oblique ne devrait pas nécessiter d'échappement. – halfdan

+0

Je comprends cela. Cependant, pourquoi CI exige que cela me dépasse. Mais, pour certaines applications, la ligne unique ci-dessus m'aide avec le problème. Je vais continuer sur les forums CI, je pense. –

2

Juste lutté le même problème et la méthode str_replace n'a pas fonctionné. Je l'ai eu pour accepter la barre oblique en l'ajoutant au paramètre product_name_rules par défaut.

$this->cart->product_name_rules = '\/\.\:\-_ a-z0-9'; 
Questions connexes