无法在Codeigniter中创建会话内部image.php

时间:2016-02-25 19:55:52

标签: php image codeigniter session

我想创建一个简单的验证码验证表单,它看起来像这样:

  <form>
  <br/>Captcha :<img class="captcha" src="<?php echo base_url('application/views/captcha/image.php')?>">    
  <br/><br/><input type="username" required class="i" name="captcha" id="i7" size="25"/> 
  <br><br><input type="submit" name="Submit" id="submit" value="Register"/>
  </form>

这是image.php文件:

<?php
session_start();
header("Content-Type: image/png");
$text = rand(1000,100000);
$_SESSION['code'] = $text;
$img = imagecreatefromjpeg("bg.jpg");
$font = "arial.ttf";
$R = rand(0,100);
$G = rand(0,100);
$B = rand(0,100);
$TxtColor = imagecolorallocate($img,$R,$G,$B);
imagettftext($img,rand(40,45),rand(0,1),rand(10,70),rand(38,50),$TxtColor,$font$text);    
imagepng($img);
imagedestroy($img);
?>

它在Codeigniter之外正常工作。在Codeigniter中,每当我尝试从会话中检索$text的值时,我都会收到一条错误消息&#34; Undefined index:code&#34;。如果我使用Codeigniter的userdata()方法如下:

 $this->session->set_userdata($text); 

验证码图像甚至无法显示。

1 个答案:

答案 0 :(得分:2)

在Codignitor中,您需要在设置会话之前加载会话库:

$this->load->library('session');

您可以使用数组设置会话:

$array["code"] = $text;
$this->session->set_userdata($array);

当您需要打印时:

$this->session->userdata("code"); 

CI SESSION USER GUIDE