URL Rotator

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
oneofayykind
Forum Newbie
Posts: 6
Joined: Fri Sep 08, 2006 7:43 pm

URL Rotator

Post by oneofayykind »

I have a site I'm trying to rotate a link between 4 urls. I would like it to rotate through the list each time it is clicked so basically once it is clicked the next time it will go to a different url but in the same order every time. Anyone know how I can do this? I tried using LJscripts URL Rotator but I couldnt figure out how to set it up. Please let me know if this is possible and how to do so if it is. I appreciate all the help.
User avatar
RobertGonzalez
Site Administrator
Posts: 14293
Joined: Tue Sep 09, 2003 6:04 pm
Location: Fremont, CA, USA

Post by RobertGonzalez »

You could use an array and loop it, keeping track of clicks through a cookie.
oneofayykind
Forum Newbie
Posts: 6
Joined: Fri Sep 08, 2006 7:43 pm

Post by oneofayykind »

could you tell me how I could learn how to do that? I'm not familiar with php at all....I was able to find something that is enabling me to rotate images every time the page is refreshed but I would like it to rotate each time it is clicked no matter who is visiting the page. So if one person visited the page it would go to a specific link and then if someone else visited that same page it would have rotated so that person would be visiting the next link in the rotation. The place i found to have it rotate every time the page is refreshed was at. http://alistapart.com/articles/randomizer/ ...maybe I can edit that code somehow to make it work the way I want it I just dont know much about coding.
User avatar
RobertGonzalez
Site Administrator
Posts: 14293
Joined: Tue Sep 09, 2003 6:04 pm
Location: Fremont, CA, USA

Post by RobertGonzalez »

Post the image rotating code you have and we can see if there is something we can do to modify it. Or there is the possibility that someone may post code for you to use, but I don't think that many of us will do that until you post something you have done.
oneofayykind
Forum Newbie
Posts: 6
Joined: Fri Sep 08, 2006 7:43 pm

Post by oneofayykind »

Everah | Please use

Code: Select all

,

Code: Select all

and [syntax="..."] tags where appropriate when posting code. Your post has been edited to reflect how we'd like it posted. Please read:  [url=http://forums.devnetwork.net/viewtopic.php?t=21171]Posting Code in the Forums[/url] to learn how to do it too.[/color]


This is what I'm currently using but all it does is randomly rotate images every time I refresh the page. I would like it to rotate every time it is clicked and stay that way until the next time it is clicked no matter what visitor i have to the site.

Code: Select all

/*
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 = '.';


/*	

	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");
		$background_color = imagecolorallocate ($im, 255, 255, 255);
		$text_color = imagecolorallocate ($im, 0,0,0);
		imagestring ($im, 2, 5, 5,  "IMAGE ERROR", $text_color);
		imagepng ($im);
		imagedestroy($im);
	}
}

?>

Everah | Please use

Code: Select all

,

Code: Select all

and [syntax="..."] tags where appropriate when posting code. Your post has been edited to reflect how we'd like it posted. Please read:  [url=http://forums.devnetwork.net/viewtopic.php?t=21171]Posting Code in the Forums[/url] to learn how to do it too.[/color]
User avatar
RobertGonzalez
Site Administrator
Posts: 14293
Joined: Tue Sep 09, 2003 6:04 pm
Location: Fremont, CA, USA

Post by RobertGonzalez »

You are going to need to look into a database script that will manage what link was loaded last and then increment it by one until the last value is selected, then reset the link id to the beginning and start again. That is the logic behind it. See if you can put that into code.
oneofayykind
Forum Newbie
Posts: 6
Joined: Fri Sep 08, 2006 7:43 pm

Post by oneofayykind »

I doubt I will be able to do that. I have no clue about coding really but I would be willing to pay someone to do this for me.
User avatar
RobertGonzalez
Site Administrator
Posts: 14293
Joined: Tue Sep 09, 2003 6:04 pm
Location: Fremont, CA, USA

Post by RobertGonzalez »

Might a suggest a post in the Job Hunt forum? There are quite a few talented developers around here that would probably take a job like this on for the right price.
Post Reply