[Webinar] Streamline your web hosting managementRegister Today

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 442
  • Last Modified:

Troubleshooting CodeIgniter

I'm trying to understand some CodeIgniter code that has landed my lap and I'm a bit frustrated by not being able to echo out variables for troubleshooting.  That is, echoes in the controller classes don't seem to work, so I can't see what variables are being handled. Admittedly I'm new to CodeIgniter and haven't gone  though the entire manual yet (though I did look for a troubleshooting section and didn't find one).  I ordered a couple of Amazon books tonight, but they're no help until they get here.

I wonder if someone out there might have some CodeIgniter experience and be able to say a few words about how you troubleshoot CodeIgniter projects. The framework seems well thought out so I have to believe there's some help built in that I just don't know about.

Thanks for any info.
Steve
0
steva
Asked:
steva
  • 4
  • 3
2 Solutions
 
Marco GasiFreelancerCommented:
You can't echo variables from within a controller. You can create a test view which ou pas data to and then you print out them on screen.

if in your controller you have something like

  public function Hello($name)
  {
    $data['base'] = $this->base;
    $data['css'] = $this->css;
    $data['mytitle'] = 'Welcome to this site';
    $data['mytext'] = "Hello, ". ucfirst($name) "!";
    $this->load->view('hello', $data);
  } 

Open in new window

You can replace the standard view with a test view where you only print out $data to check if they are correct:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns='http://www.w3.org/1999/xhtml'>
<head>
<title>Web test Site</title>
<base href= <?php echo $base; ?>>
<link rel="stylesheet" type="text/css" href="<?php echo "$base/$css";?>">
</head>
<body>
<?php 
echo $mytitle . "<br />"; 
echo $mytext . "<br />"; 
?> 
</body>
</html>

Open in new window


If you post hewree some code we can help better.

Cheers
0
 
Eddie ShipmanAll-around developerCommented:
I just write my variables out to a file and then examine:
$fp = fopen("/var/tmp/".__CLASS__.".txt", 'a');
fwrite($fp, $variable_to_record . "\n");
fclose($fp);

Open in new window

0
 
stevaAuthor Commented:
Marqus, Thanks.  That helps.  

I appreciate your offering to look at some code.

Here's the beginning of an editor.php file that creates an editor class, that's giving me some trouble:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Editor extends CI_Controller {
	
	/* Constructor */
	
	public function __construct()
	{
		parent::__construct();
		$this->load->helper(array('fgimages','language'));
		
		if (is_allowed() === FALSE)
		{
			exit;
		}
		
		$this->config->load('uploader_settings', TRUE);
	}

Open in new window

I see from the online manual that the helper "array" seems to use the first parameter as key into the array named by the second parameter and return the value there.  But there's no "language" array that I can find in the code.  And where is the value found transferred to?  It gets "loaded" but into what?

Also, the line
                  if (is_allowed() === FALSE)
is a bit puzzling.  is_allowed() doesn't seem to be a PHP construct and it doesn't show up in the online index of the CodeIgniter books I ordered from Amazon.

Thanks for your help.
Steve
0
Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

 
stevaAuthor Commented:
Eddie,

Thanks for that tip. I keep expecting, though,  to find a whole bag of troubleshooting tools built into CodeIgniter.  I guess not.
0
 
Marco GasiFreelancerCommented:
Hi.

$this->load->helper(array('fgimages','language'));
This laine loads two helpers: fgimages and language. The second one resides in system/helpers and it's a standard CI helper. The first one seems to be a custom helper and you could find it, if it is not in system/helpers folder, within application/helpers folder.

I'm sure is_allowed is a function of fgimages helper which checks if the image type is allowed against an array mayby in the config file or in the fgimages_helper itself.

If you dont find fgimages helper in the folders I mentioned above, look around through your directory tree.

Cheers
0
 
Marco GasiFreelancerCommented:
For debugging purposes, you have to choose a log threshold in file application/config/config.php. This is what you should find in your config.php file:
|--------------------------------------------------------------------------
|
| If you have enabled error logging, you can set an error threshold to
| determine what gets logged. Threshold options are:
| You can enable error logging by setting a threshold over zero. The
| threshold determines what gets logged. Threshold options are:
|
|	0 = Disables logging, Error logging TURNED OFF
|	1 = Error Messages (including PHP errors)
|	2 = Debug Messages
|	3 = Informational Messages
|	4 = All Messages
|
| For a live site you'll usually only enable Errors (1) to be logged otherwise
| your log files will fill up very fast.
|
*/
$config['log_threshold'] = 0;

Open in new window


The output file will be in application/logs folder but you can set another path in config.php:

/*
|--------------------------------------------------------------------------
| Error Logging Directory Path
|--------------------------------------------------------------------------
|
| Leave this BLANK unless you would like to set something other than the default
| application/logs/ folder. Use a full server path with trailing slash.
|
*/
$config['log_path'] = '';

Open in new window


Hope this helps.

I don't know which book have you about CI: I'm now reading "CodeIgniter for Rapid PHP Application Development" by David Upton: it speaks about CI 1.7 so not all is right but it seems to be a good manual. Anyway you can find some info here: http://ellislab.com/codeigniter/user-guide/general/errors.html

Cheers
0
 
stevaAuthor Commented:
Marqus,

Yes, I found "language_helper.php" in the system/helpers directory and "fbimages_helper.php" was in application/helpers. " is_allowed.php"  was a file in the project folder, at the same level as ci, which just returns true, for now.

One of the books I ordered ("CodeIgniter for Rapic PHP Application Development") came today, so I'll jump off into that now.  

Thanks for all your help.

Steve
0
 
Marco GasiFreelancerCommented:
Thanks for points and best of luck with your project.
0

Featured Post

Learn to develop an Android App

Want to increase your earning potential in 2018? Pad your resume with app building experience. Learn how with this hands-on course.

  • 4
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now