Forum Moderators: phranque

Message Too Old, No Replies

Rewrite rule, need some help.

         

Karl456

11:34 pm on Jul 9, 2010 (gmt 0)

10+ Year Member



So far I have:
Options +FollowSymLinks
RewriteEngine on
RewriteRule \.(gif|png|jpg|css|js)$|^index\.php$ - [L]
RewriteRule ^quests/(.*)/(.*)$ quests.php?flibble=questview&id=$2&ic=1
RewriteRule ^(.*)$ index.php?page=$1


What I'm trying to do is dynamically create a page.

so that [url]www.mysite.com/quests/questname/questid[/url] would load the appropriate information. The link currently looks like
quest.php?flibble=questview&id=QUESTID&ic=1 where QUESTID is the number of the quest entry. However, I just can't get my head around it.

This is my function for showing the quest:
function questview($id) {

require_once ('includes/connect.php');//connect to db
include ('includes/steps.php');
/* query for item */
$query = "SELECT * FROM quest WHERE id=$id";
$result = mysql_query ($query);

/* if we get no results back, error out */
$numrtn = mysql_num_rows($result);

if ($numrtn == 0) {
echo "The quest guide requested cannot be found\n";
echo $id;
return;
}
$row = mysql_fetch_assoc($result);
/* easier to read variables and
* striping out tags */
$id = $row['id'];
$name = $row['name'];
$contributors = $row['contributors'];
$guideby = $row['guideby'];
$added = $row['added'];
$location = $row['startinglocation'];
$members = $row['members'];
$description = $row['description'];
$difficulty = $row['difficulty'];
$requirements = $row['requirements'];
$items = $row['items'];
$reward = $row['reward'];
$guide = $row['mainbody'];
$length = $row['length'];
$updated = $row['updated'];
if ($members == "Y") {
$mem = "members only quest</b>, so it can only be done on a <b>members</b> server.";
}else{
$mem = "non-members quest</b>.";
}
if ($updated == 0){
$up = 'No-one has updated this quest guide';
}else{
$date2 = date("l jS F Y @ H:i:s ", $updated);
$up = 'It was last updated on '.$date2;
}
if ($contributors != ""){
$con = 'Thanks also to <b>'.$contributors.'</b> for changes.';
}else{
$con = 'No-one else has contributed to this quest guide.';
}
//$date = date("D M jS, Y g:i a", $added);
$date = date("l jS F Y @ H:i:s ", $added);

echo '
<div id="quest"><table width="100%" border="0">
<tr>
<td>
<h1 align="center">'.$name.'</h1>
';
echo step_js();
echo pick_clue($id);
echo toggle_reward();
echo toggle_clue();
echo '<br>';
echo '
<p class="text1">This quest guide was written by <b>'.$guideby.'</b> for use on Runehints and entered into the database on '.$date.'. '.$up.'. '.$con.' <br /></p>
<p><span class="text1"><br />This quest is <b>'.$mem.'</span></p>
<p>
<span class="qtitle">Description: </span><span class="text1">'.$description.'</span></p>
<p><span class="qtitle">Difficulty Level: </span><span class="text1">'.$difficulty.'</span></p>
<p>
<span class="qtitle">Requirements: </span><span class="text1">'.$requirements.'</span></p>

<p>
<span class="qtitle">Items Needed During Quest: </span><span class="text1">'.$items.'</span></p>
<p>
<span class="qtitle">Starting Location: </span><span class="text1">'.$location.'</span></p>
<p><span class="qtitles">Quest Instructions:</span></p>';
echo list_steps($id, true);
echo '<p>
<div id="rewardwrap" style="display:none;"><span class="qtitle">Reward: </span><span class="text1">'.$reward.'</span></div></p>
&nbsp;</td>
</tr>
</table></div> ';
}


Here's the switch:
 switch($_GET['flibble']) {

case 'selectquest':
selectquest();
break;
case 'questview':
questview($_GET['id']);
break;
default:
selectquest();
}


I didn't write the function, so it needs modification to work with the rewrite rule.

Any help is greatly appreciated, if you need more information, please ask.

Regards,
Karl