Welcome Guest, Not a member yet? Register   Sign In
call random.php file
#1

[eluser]tirso[/eluser]
hi to all

I am very proud to say that I am a beginner for using CI. This is my first time to post a topic.

I have a problem to call random.php. this php will use for refreshing images.

I was already display the home page with all my design but only the image wasn't display.

Any suggestion would greatly appreciated

thanks in advance

Regards,
Tirso

It will works in ordinary php coding like below

in the head tag
[removed][removed]


in the body tag
<div id="container">
<img src="random.php"/>
</div>


My code using CI

Code:
&lt;?php
class Home extends Controller {
  
    function Home(){
      parent::controller();
    }
      
    function index()
    {
        $this->load->view('index');        
    }
}
?&gt;

In (index.php) under views folder, I do the same

in the head tag
[removed][removed]

in the body tag
<div id="container">
<img src="random.php"/>
</div>
#2

[eluser]TheFuzzy0ne[/eluser]
Welcome to the CodeIgniter forums.

I don't really understand the problem. Where is random.php? Does it contain a function, a library, or just PHP code? How are you grabbing a random image? When requesting assistance, it's useful to be as verbose as you can. It would be helpful if we could see the contents of random.php, and know where it is within your file structure.

Why not put the functionality into a helper, which you can call from within your view?
#3

[eluser]tirso[/eluser]
hi,

thanks for your immediate reply.

random.php location is under views same as the index.php that i was called in my controller.

here is the content of random.php

[code]&lt;?php

/*

AUTOMATIC IMAGE ROTATOR
Version 2.2 - December 4, 2003
Copyright © 2002-2003 Dan P. Benjamin, Automatic, Ltd.
All Rights Reserved.

http://www.hiveware.com/imagerotator.php

http://www.automaticlabs.com/


ABOUT
This PHP script will randomly select an image file from a
folder of images on your webserver. You can then link to it
as you would any standard image file and you'll see a random
image each time you reload.

When you want to add or remove images from the rotation-pool,
just add or remove them from the image rotation folder.


VERSION CHANGES
Version 1.0
- Release version

Version 1.5
- Tweaked a few boring bugs

Version 2.0
- Complete rewrite from the ground-up
- Made it clearer where to make modifications
- Made it easier to specify/change the rotation-folder
- Made it easier to specify/change supported image types
- Wrote better instructions and info (you're them reading now)
- Significant speed improvements
- More error checking
- Cleaner code (albeit more PHP-specific)
- Better/faster random number generation and file-type parsing
- Added a feature where the image to display can be specified
- Added a cool feature where, if an error occurs (such as no
images being found in the specified folder) *and* you're
lucky enough to have the GD libraries compiled into PHP on
your webserver, we generate a replacement "error image" on
the fly.

Version 2.1
- Updated a potential security flaw when value-matching
filenames

Version 2.2
- Updated a few more potential security issues
- Optimized the code a bit.
- Expanded the doc for adding new mime/image types.

Thanks to faithful ALA reader Justin Greer for
lots of good tips and solid code contribution!


INSTRUCTIONS
1. Modify the $folder setting in the configuration section below.
2. Add image types if needed (most users can ignore that part).
3. Upload this file (rotate.php) to your webserver. I recommend
uploading it to the same folder as your images.
4. Link to the file as you would any normal image file, like this:

<img src="http://example.com/rotate.php">

5. You can also specify the image to display like this:

<img src="http://example.com/rotate.php?img=gorilla.jpg">

This would specify that an image named "gorilla.jpg" located
in the image-rotation folder should be displayed.

That's it, you're done.

*/




/* ------------------------- CONFIGURATION -----------------------


Set $folder to the full path to the location of your images.
For example: $folder = '/user/me/example.com/images/';
If the rotate.php file will be in the same folder as your
images then you should leave it set to $folder = '.';

*/


$folder = 'imagesloops/';


/*

Most users can safely ignore this part. If you're a programmer,
keep reading, if not, you're done. Go get some coffee.

If you'd like to enable additional image types other than
gif, jpg, and png, add a duplicate line to the section below
for the new image type.

Add the new file-type, single-quoted, inside brackets.

Add the mime-type to be sent to the browser, also single-quoted,
after the equal sign.

For example:

PDF Files:

$extList['pdf'] = 'application/pdf';

CSS Files:

$extList['css'] = 'text/css';

You can even serve up random HTML files:

$extList['html'] = 'text/html';
$extList['htm'] = 'text/html';

Just be sure your mime-type definition is correct!

*/

$extList = array();
$extList['gif'] = 'image/gif';
$extList['jpg'] = 'image/jpeg';
$extList['jpeg'] = 'image/jpeg';
$extList['png'] = 'image/png';


// You don't need to edit anything after this point.


// --------------------- END CONFIGURATION -----------------------

$img = null;

if (substr($folder,-1) != '/') {
$folder = $folder.'/';
}

if (isset($_GET['img'])) {
$imageInfo = pathinfo($_GET['img']);
if (
isset( $extList[ strtolower( $imageInfo['extension'] ) ] ) &&
file_exists( $folder.$imageInfo['basename'] )
) {
$img = $folder.$imageInfo['basename'];
}
} else {
$fileList = array();
$handle = opendir($folder);
while ( false !== ( $file = readdir($handle) ) ) {
$file_info = pathinfo($file);
if (
isset( $extList[ strtolower( $file_info['extension'] ) ] )
) {
$fileList[] = $file;
}
}
closedir($handle);

if (count($fileList) > 0) {
$imageNumber = time() % count($fileList);
$img = $folder.$fileList[$imageNumber];
}
}

if ($img!=null) {
$imageInfo = pathinfo($img);
$contentType = 'Content-type: '.$extList[ $imageInfo['extension'] ];
header ($contentType);
readfile($img);
} else {
if ( function_exists('imagecreate') ) {
header ("Content-type: image/png");
$im = @imagecreate (100, 100)
or die ("Cannot initialize new GD image stream");
$backg
#4

[eluser]slowgary[/eluser]
Ouch! Do us all a big favor tirso and wrap that big sucker in a pair of [ code ] tags.

Also, I really think that looks like overkill for what you're trying to do. Try this:
Code:
$this->load->helper('file');  //load CI's file helper
$images = get_filenames('image/directory', TRUE); //gets a list of all files in a directory, (with full path)
echo "<img src='".$images[rand(0, count($images))]."'/>";
So you could add this to your controller like this:
Code:
&lt;?php
class Home extends Controller {
  
    function Home(){
      parent::controller();
    }
      
    function index()
    {
        $this->load->helper('file');
        $images = get_filenames('image/directory', TRUE);
        $data['random_image'] = $images[rand(0, count($images))];
        
        $this->load->view('index', $data);
    }
}
?&gt;
Then in your view:
Code:
<img src='&lt;?php echo $random_image; ?&gt;'/>

Easy?
#5

[eluser]tirso[/eluser]
hi,

thank you so much

It works like a charm, but sometimes I've encounter error like below. maybe because of (rand)?

Quote:A PHP Error was encountered

Severity: Notice

Message: Undefined offset: 13

Filename: controllers/home.php

Line Number: 11
#6

[eluser]Dam1an[/eluser]
Should it not be
Code:
$data['random_image'] = $images[rand(0, count($images) - 1)];
// instead of
$data['random_image'] = $images[rand(0, count($images))];

Because array indexes start at 0
So if you have 10 items, the size is 10, but the max index is 9
#7

[eluser]tirso[/eluser]
hi,

thank you so much...

it works...

tirso




Theme © iAndrew 2016 - Forum software by © MyBB