Jump to content

help with a simple script that switches


Go to solution Solved by requinix,

Recommended Posts

Hey guys I am new to php and this forum. I need a little help with creating a script. the intended use is when a user visits a url like

"myurl.com/?show=house" they are show a picture of housewives. Here is the code I have

 

 

<?php

$keyword=$_GET['show'];

 

if (strpos($keyword,'house') !== false) { $image="housewives.jpg"; }


if (strpos($keyword,'mickey') !== false) { $image="mickey.jpg"; }

 


else { $image = "default.jpg"; }

?>

 

the issue I a having is default.jpg is always shown to the user unless the url is "myurl.com/?show=mickey"

 

if anyone know how to solve this issue please help a noob out.

Link to comment
https://forums.phpfreaks.com/topic/294878-help-with-a-simple-script-that-switches/
Share on other sites

  • Solution

The else is attached to the second if, and only that. Since $keyword doesn't contain "mickey", it executes.

 

You need an else if:

<?php
$keyword=$_GET['show'];
 
if (strpos($keyword,'house') !== false) { $image="housewives.jpg"; }
else if (strpos($keyword,'mickey') !== false) { $image="mickey.jpg"; }
 
else { $image = "default.jpg"; }
?>

<?php
if(isset($_GET['show']) && trim($_GET['show']) != ''){
$keyword = trim($_GET['show']);

switch ($keyword) {
case "house":
$image = "$keyword.jpg";
break;
case "mickey":
$image = "$keyword.jpg";
break;
default:
$image = "default.jpg";
break;
}

}else{
$image = "default.jpg";
}


echo $image;
?>

If you don't want to create a pile of if/else or switches for each one and name them the same try the code below.

 

Assumes images are in a directory named images

if(isset($_GET['show']) && trim($_GET['show']) != ''){
$keyword = trim($_GET['show']);
$image = "/images/".$keyword.".jpg";

$image_location = $SERVER['DOCUMENT_ROOT'].$image;
if(!file_exists($image_location)){
$image = "/images/default.jpg";
}
} else {
$image = "/images/default.jpg";
}

Thanks for the extended code QuickOldCar. I don't mind adding the else manually mainly because each keyword might be slightly different, for example, it might say "mickey mouse" instead of just "mickey" and I would have to create a jpg for mckey mouse and mickey. But I might be wrong as I am quite new to php.

 

btw the code worked a charm.

Edited by joestar
This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.