PDA

View Full Version : Access Denied :S


rosepose
05-30-2009, 03:57 PM
Well, I just made a new adoptable for Alearith, then tried to adopt it. Even though I had no adoptables of that type, it still will not let me adopt.
<?php

// ************************************************** ********************
// Rusnak PHP Adoptables Script
// Copyright 2009 Brandon Rusnak
// For help and support: http://www.rusnakweb.com/forum/
//
// Redistribution prohibited without written permission
// ************************************************** ********************

// Wake the sleeping giant

// ************************************************** ********************
// Basic Configuration Info
// ************************************************** ********************

include("inc/functions.php");
include("inc/config.php");
include("lang/lang.php");

$themeurl = grabanysetting("themeurl");

// ************************************************** ********************
// Define our top links by calling getlinks()
// ************************************************** ********************

$links = getlinks();

// ************************************************** ********************
// Define our ads by calling getads()
// ************************************************** ********************

$ads = getads("any");

// ************************************************** ********************
// Grab any settings that we will need for the current page from the DB
// ************************************************** ********************

$browsertitle = grabanysetting("browsertitle");
$sitename = grabanysetting("sitename");
$slogan = grabanysetting("slogan");

// ************************************************** ********************
// Check and see if the user is logged in to the site
// ************************************************** ********************

$loginstatus = logincheck();
$isloggedin = $loginstatus[loginstatus];
$loggedinname = $loginstatus[username];

// ************************************************** ********************
// End Prepwork - Output the page to the user
// This page sets up the new adoptions and then forwards the user to
// a secondary page for adoptables processing.....
// ************************************************** ********************

$id = $_GET["id"];
$id = preg_replace("/[^a-zA-Z0-9s]/", "", $id);
$id = secure($id);

$promocode = $_GET["promocode"];
$promocode = preg_replace("/[^a-zA-Z0-9\\040.]/", "", $promocode);
$promocode = secure($promocode);

// Here we check if we have an ID that has been submitted or no

if($id == "" or !is_numeric($id)){

// We did not enter in an id, or it is not a number
// Show the available adoptables to the user...

$article_title = $showingtitle;
$article_content = $showing;

// If we are a guest, show a message that lets them know that they cannot adopt...

if($isloggedin != "yes"){

$article_content = $article_content."".$showingguest;

}

// Begin the output of all the adoptables to the user...

$query = "SELECT * FROM ".$prefix."adoptables";
$result = mysql_query($query);
$num = mysql_numrows($result);

//Loop out code
$i=0;
while ($i < $num) {

$aid=@mysql_result($result,$i,"id"); //The adoptable's ID
$type=@mysql_result($result,$i,"type");
$description=@mysql_result($result,$i,"description");
$eggimage=@mysql_result($result,$i,"eggimage");

// Call a function to check if we have the proper privledge level to adopt this pet
// This function checks all of the little conditions and makes sure they are present
// If they are not present, the adoptable is not shown here, as that would be cruel.
// We call the function with the showing flag to not deny the showing if the user is a guest.


if($promocode == ""){
$promocode = "none";
}

$canadopt = canadopt($aid, "showing", $promocode); // Feed an adoptable ID and showing, to show the adopt to guests...

if($canadopt == "yes"){

//If we can adopt the adoptable, show the image and adoption link...

$article_content = $article_content."<p><b><u><a href='adopt.php?id=".$aid."'>".$type.":</a></u></b></p>
<p><a href='adopt.php?id=".$aid."'><img src='".$eggimage."' border='0'></a></p>";

if($isloggedin == "yes"){
$article_content = $article_content."<p><b><a href='adopt.php?id=".$aid."'><img src='templates/icons/add.gif' border=0> Adopt ".$type."</a></b></p>";
}
else{
$article_content = $article_content."<p><img src='templates/icons/no.gif' border=0> <b>".$guesterror."</b></p>";
}


}

$i++;
} // End the looping out of all adoptables...

} // This bracket ends the IF check for whether or not an ID was entered
else{

// We have specified an ID of an adoptable we wish to adopt
// Let the user name the adoptable, then forward them
// to an additional page that actually adds the adoptie
// to their account.

// Now we have to connect to the database and get information about the adoptable

$query = "SELECT * FROM ".$prefix."adoptables WHERE id='$id'";
$result = mysql_query($query);
$num = mysql_numrows($result);

//Loop out code
$i=0;
while ($i < 1) {

$aid=@mysql_result($result,$i,"id"); //The adoptable's ID
$type=@mysql_result($result,$i,"type");
$description=@mysql_result($result,$i,"description");
$eggimage=@mysql_result($result,$i,"eggimage");

$i++;
}

if($aid == $id){

//The adoptable exists and is valid

// Make sure again that we can adopt this adoptie...

$canadopt = canadopt($aid, "adopting", $promocode);

if($canadopt == "yes"){

$article_title = "Adopting ".$type;
$article_content = $langa1."".$type.$langa2;



$article_content = $article_content."<br><img src='".$eggimage."' border='0'><br>
<form name='form1' method='get' action='doadopt.php'>
<p>Adoptable Name:
<input name='name' type='text' id='name'>
<input name='id' type='hidden' id='id' value='".$id."'>
<input name='promocode' type='hidden' id='promocode' value='".$promocode."'>
</p>
<p>
<input type='submit' name='Submit' value='Adopt Me'>
</p>
</form>";


}
else{

$article_title = $accden;
$article_content = $adoptnoper;

} // End Can Adopt ELSE

}
else{

//The adoptable does not exist, nothing we can do...

$article_title = $err_idnoexist;
$article_content = $err_idnoexist_text;

} // End adoptable does not exist ELSE



} // This bracket ends the else statements for whether or not an ID was entered


// ************************************************** ********************
// Begin Template Definition
// ************************************************** ********************

//Define our current theme
$file = $themeurl;

// Do the template changes and echo the ready template
$template = file_get_contents($file);

$template = replace(':ARTICLETITLE:',$article_title,$template) ;
$template = replace(':ARTICLECONTENT:',$article_content,$templ ate);
$template = replace(':ARTICLEDATE:',$article_date,$template);

$template = replace(':BROWSERTITLE:',$browsertitle,$template);
$template = replace(':SITENAME:',$sitename,$template);

//Define our links
$template = replace(':LINKSBAR:',$links,$template);

//Get the content for the side bar...

$sidebar = getsidebar();
$template = replace(':SIDEFEED:',$sidebar,$template);

//Get the ad content...
$template = replace(':ADS:',$ads,$template);

//Get the slogan info
$template = replace(':SLOGAN:',$slogan,$template);


echo $template;

// ************************************************** ********************
// End Template Definition
// ************************************************** ********************



?>

That's my adopt.php file....

I'd really appreciate some help, I'm stumped and need this fixed :S

Seapyramid
05-30-2009, 04:18 PM
What are the requirements for the adoptable?

rosepose
05-30-2009, 04:25 PM
http://i639.photobucket.com/albums/uu115/solaeria/Picture1.png

There, that's a screenie of the tables.

Seapyramid
05-30-2009, 04:41 PM
Strange... I see nothing wrong there that could be causing it. I don't know. Sorry

rosepose
05-30-2009, 05:16 PM
Hmmm.... *sighs* Well, maybe it'll go away *looks hopeful*

BMR777
05-30-2009, 05:58 PM
Have you made any alterations to the canadopt() function in functions.php?

Find this line:

$canadopt = canadopt($aid, "adopting", $promocode);

Add after:

$article_content = $article_content."<br>Can Adopt? ".$canadopt."<br>";

Do you see "Can Adopt? yes" on your screen?

rosepose
05-30-2009, 06:06 PM
I did a search and I can't find that line. I have the profile and forum mods installed so that may be why, here's my functions.php
<?php

// File ID: functions.php
// Purpose: Provides basic sitewide functions

//Connect to the database first
connect();

//This function simply connects us to the database
function connect(){

include("config.php");
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to MySQL');
mysql_select_db($dbname);

}

//This function performs security checks on all incoming form data
function secure($data){

if(is_array($data)){
die("Hacking Attempt!");
}


//MySQL Real Escape String
$data = mysql_real_escape_string($data);

//Strip HTML tags
$data = strip_tags($data, '');

return $data;

}

function getsitecontent($page){

include("config.php");


$query = "SELECT * FROM ".$prefix."content WHERE page = '$page'";
$result = @mysql_query($query);
$num = @mysql_numrows($result);


//Loop out code
$i=0;
while ($i < 1) {

$title=@mysql_result($result,$i,"title");
$content=@mysql_result($result,$i,"content");

$title = stripslashes($title);
$content = stripslashes($content);

$i++;
}

$value[content] = $content;
$value[title] = $title;

return $value;
}

//This function replaces template values
function replace($old,$new,$template)
{
$template = str_replace($old, $new, $template);
return $template;
}

function logincheck(){

include("config.php");

//Function to determine if user is logged in.

//Set up our login info...
$username = "";
$password = "";

//Check for cookie

if (isset($_COOKIE['auser']) and isset($_COOKIE['apass'])){

$username = $_COOKIE['auser'];
$password = $_COOKIE['apass'];

$username = preg_replace("/[^a-zA-Z0-9\\040.]/", "", $username);
$username = secure($username);
$password = secure($password);

//Run login operation
$query = "SELECT * FROM ".$prefix."users WHERE username = '$username'";
$result = mysql_query($query);
$num = mysql_numrows($result);

//Loop out code
$i=0;
while ($i < 1) {

$luser=@mysql_result($result,$i,"username");
$lpass=@mysql_result($result,$i,"password");

$i++;
}

if($username == $luser and $password == $lpass){
$isloggedin = "yes";
}
else{
if (isset($_COOKIE['auser'])){
$past = time() - 10;
setcookie("auser",$username,$past);
}

if (isset($_COOKIE['apass'])){
$past = time() - 10;
setcookie("apass",$password,$past);
}
$isloggedin = "no";
}

}
else
{
//User is not logged in
$isloggedin = "no";

}

//Return our user data
$userdata[loginstatus] = $isloggedin;
$userdata[username] = $username;

return $userdata;

}

function grabanysetting($where){

include("config.php");

$query = "SELECT * FROM ".$prefix."settings WHERE name = '".$where."'";
$result = @mysql_query($query);
$num = @mysql_numrows($result);

//Loop out code
$i=0;
while ($i < 1) {

$value=@mysql_result($result,$i,"value");
$value = stripslashes($value);
$i++;
}
return $value;
}

function getlinks(){

include("config.php");

//This function gets the links for the top bar from the database

/*

$links = "<li><a href='index.php'>Home</a></li>
<li><a href='account.php'>My Account</a></li>
<li><a href='messages.php'>Message Center</a></li>
<li><a href='trade.php'>Trade Adopts</a></li>
<li><a href='featured.php'>Popular</a></li>";

*/

// We will be getting our links from the database...

$links = "";

$query = "SELECT * FROM ".$prefix."links ORDER BY id ASC";
$result = mysql_query($query);
$num = mysql_numrows($result);

//Loop out code
$i=0;
while ($i < $num) {

$linktext=@mysql_result($result,$i,"linktext");
$linkurl=@mysql_result($result,$i,"linkurl");

$linktext = stripslashes($linktext);

$links = $links."<a href='".$linkurl."' class=navi>".$linktext."</a>";

$i++;
}


return $links;

}

function getsidebar(){

include("config.php");


$loginstatus = logincheck();
$isloggedin = $loginstatus[loginstatus];
$loggedinname = $loginstatus[username];

$query = "SELECT * FROM ".$prefix."users WHERE username = '".$loggedinname."'";
$result = mysql_query($query);
$num = mysql_numrows($result);

$friends=@mysql_result($result,$i,"friends");



if($num > 0){

$i=0;
while ($i < 1) {

$changewarning=@mysql_result($result,$i,"changewarning");

if($changewarning == "1"){
$warn = "<b><u>".$loggedinname."'s Warning Level:</u></b><br>Your Warning Level: <img src='http://4u.1free.ws/1.png'><br><br>";
}
else if($changewarning == "2"){
$warn = "<b><u>".$loggedinname."'s Warning Level:</u></b><br>Your Warning Level: <img src='http://4u.1free.ws/2.png'><br><br>";
}
else if($changewarning == "3"){
$warn = "<b><u>".$loggedinname."'s Warning Level:</u></b><br>Your Warning Level: <img src='http://4u.1free.ws/3.png'><br><br>";
}
else if($changewarning == "4"){
$warn = "<b><u>".$loggedinname."'s Warning Level:</u></b><br>Your Warning Level: <img src='http://4u.1free.ws/4.png'><br><br>";
}
else if($changewarning == "5"){
$warn = "<b><u>".$loggedinname."'s Warning Level:</u></b><br>Your Warning Level: <img src='http://4u.1free.ws/5.png'><br>You are currently banned, and cannot use the PM System.<br><br>";
}

$i++;
}



if($friends == " "){
$friends = "You currently have no friends.";
}
else{
$friends = "".$friends."";
$friends = preg_replace("/\\s/", "<br><b><a href='profile2.php?user=", $friends);
$friends = preg_replace("/\,/", "'>Friend</a></b>", $friends);
}





$query = "SELECT * FROM forum WHERE fid='15'";
$result = mysql_query($query);
$num = mysql_numrows($result);



$fid=@mysql_result($result,$i,"fid");
$topic=@mysql_result($result,$i,"topic");
$lby=@mysql_result($result,$i,"lby");
$ldatetime=@mysql_result($result,$i,"ldatetime");
$ltopic=@mysql_result($result,$i,"ltopic");
$lid=@mysql_result($result,$i,"lid");

if($ltopic == ""){
$lpost = "<i>Never</i>";
}
else{
$lpost = "<a href='view_topic.php?id=".$lid."'>".$ltopic."</a><br>".$ldatetime."<br>by: <a href='profile2.php?user=".$lby."'>".$lby."</a>";
}

$lastpost = "
<table border='0' class='ftable2'>
<tr>
<td align='center' class='trow'>The latest post in your Subscribed Forum:</td>
</tr>
<tr>
<td align='center' class='trow'><a href='main_forum.php?fid=".$fid."'>".$topic."</a></td>
</tr>
<tr>
<td align='center' class='trow'>".$lpost."</td>
</tr>
</table>";




//This function determines what shows in the side bar of the template
//This will most likely be either a login prompt, quick account access, or something else

//First we see if we are logged in or not

$loginstatus = logincheck();
$isloggedin = $loginstatus[loginstatus];
$loggedinname = $loginstatus[username];

if($isloggedin == "yes"){

$msgctr = "<a href='messages.php'>Visit Message Center</a>(Unread: 0 | Total: 0)<br>";

$query = "SELECT * FROM ".$prefix."messages WHERE touser='".$loggedinname."'";
$result = mysql_query($query);
$num2 = mysql_numrows($result);

if($num2 > 0){
$msgctr = "<a href='messages.php'>Visit Message Center</a>(Unread: 0 | Total: ".$num2.")<br>";
}

$query = "SELECT * FROM ".$prefix."messages WHERE touser='".$loggedinname."' and status='unread'";
$result = mysql_query($query);
$num = mysql_numrows($result);

if($num > 0){
$msgctr = "<a href='messages.php'>Visit Message Center</a>(Unread: <b>".$num."</b> | Total: ".$num2.")<br>";
}



$group = getgroup();
$cancp = cancp($group);

if($cancp == "yes"){
$admin = "<a href='admin.php'><b>ACP</b></a><br>";


$rep = "<a href='report.php'>Visit Reports</a><br>";

$date = date('Y-m-d');

$query = "SELECT * FROM ".$prefix."report WHERE datesent='".$date."' and status='unread'";
$result2 = mysql_query($query);
$num9 = mysql_fetch_field($result2) or die ("Query failed: " . mysql_error() . " Actual query: " . $query);


if($num9 > 0){
$rep = "<a href='report.php'>Visit Reports <b>(".$num.")</b></a><br>";
}
}



$sidebar = "
".$warn."
<b><u>".$loggedinname."'s Links:</u></b><br>
".$admin."
<a href='account.php'>Vist Your Account</a><br>
".$rep."
".$msgctr."
<a href='profile.php?'>Member List</a><br>
<a href='logout.php'>Log Out</a><br><br>

<b><u>Affiliates:</u></b><br>
<i>We currently have no affiliates. Talk to Mark to become one!</i>

<b><u>Friends:</u></b><br>
".$friends."<br><br>
<center>".$lastpost."</center><br>
";

}
}
else{

$sidebar = "<b><u>Member Login:</u></b><br>
<form name='form1' method='post' action='login.php'>
<p>Username:
<input name='username' type='text' id='username'>
</p>
<p>Password:
<input name='password' type='password' id='password'>
</p>
<p>
<input type='submit' name='Submit' value='Log In'>
</p>
</form>Don't have an account?<br><a href='register.php'>Register Free</a><br><a href='forgotpass.php'>Forgot Password?</a>";

}




return $sidebar;

}

function getpostbar($name){

include("config.php");

$loginstatus = logincheck();
$isloggedin = $loginstatus[loginstatus];
$loggedinname = $loginstatus[username];


$group = getgroup();
$cancp = cancp($group);

$query = "SELECT * FROM ".$prefix."users WHERE username = '".$name."'";
$result = mysql_query($query);
$num = mysql_numrows($result);

$uid=@mysql_result($result,$i,"uid");
$membersince=@mysql_result($result,$i,"membersince");
$displayquote=@mysql_result($result,$i,"displayquote");
$profilepic=@mysql_result($result,$i,"profilepic");
$points=@mysql_result($result,$i,"points");
$posts=@mysql_result($result,$i,"posts");
$status=@mysql_result($result,$i,"status");
$changewarning=@mysql_result($result,$i,"changewarning");

if($status == "yes"){
$mstatus = "Online<br>";
}
else{
$mstatus = "Offline<br>";
}

if($isloggedin == "yes" and $loggedinname == "$name" or $cancp == "yes"){
$warning = "<b>Warning level:</b> ".$changewarning."<br>";
}
else{
$warning = "";
}

$postbar = "
<span class='smalltext'>
<img src='".$profilepic."'><br>
<b>Status:</b> ".$mstatus."
<b>Member Since: </b><br>".$membersince."<br>
<b>Quote:</b><br>
".$displayquote."<br>
".$warning."
<b>Points:</b> <a href='donate.php?from=".$uid."&am=".$points."'>".$points."</a><br>
<b>Post Count:</b> ".$posts."<br>
</span>
";

return $postbar;
}
function getsignature($name){

include("config.php");

$query = "SELECT * FROM ".$prefix."users WHERE username = '".$name."'";
$result = mysql_query($query);
$num = mysql_numrows($result);

$signature=@mysql_result($result,$i,"signature");

if($signature == ""){
$signature = "";
}
else{
$signature = "<br><br><br><br><br>___________________________<br>".$signature."";
}


return $signature;
}


function dologin($username, $password){

//This function logs a user in...

include("config.php");

$query = "SELECT * FROM ".$prefix."users WHERE username = '$username'";
$result = @mysql_query($query);
$num = @mysql_numrows($result);

//Loop out code
$i=0;
while ($i < 1) {

$luser=@mysql_result($result,$i,"username");
$lpass=@mysql_result($result,$i,"password");



$i++;
}

if($username == $luser and $password == $lpass){
$status = "success";

//If the cookie already exists for some reason, delete it

if (isset($_COOKIE['auser']) and isset($_COOKIE['apass'])){

$past = time() - 10;
setcookie("auser",$username,$past);
setcookie("apass",$password,$past);

}



// Set the cookie
$Month = 2592000 + time();
setcookie("auser",$username,$Month);
setcookie("apass",$password,$Month);

}
else{
$status = "error";
}



return $status;

}

function getgroup(){

//This function gets the numerical usergroup ID of a user, or returns 0 if is a guest

include("config.php");

$loginstatus = logincheck();
$isloggedin = $loginstatus[loginstatus];
$loggedinname = $loginstatus[username];

if($isloggedin == "yes"){

$query = "SELECT * FROM ".$prefix."users WHERE username = '$loggedinname'";
$result = @mysql_query($query);
$num = @mysql_numrows($result);

//Loop out code
$i=0;
while ($i < 1) {

$group=@mysql_result($result,$i,"usergroup");

$i++;
}

return $group;

}
else{
return 0;
}

}

function cancp($usergroup){

include("config.php");

//This function determines if a usergroup is allowed to access the Admin CP

$query = "SELECT * FROM ".$prefix."groups WHERE gid = '$usergroup'";
$result = @mysql_query($query);
$num = @mysql_numrows($result);

//Loop out code
$i=0;
while ($i < 1) {

$cancp=@mysql_result($result,$i,"cancp");

$i++;
}

if($cancp == "" or $usergroup == 0){
$cancp = "no";
}

return $cancp;

}

function getadmlinks(){

include("config.php");

//This function shows special links to the site admin

$links = "<li><a href='index.php'>Home</a></li>
<li><a href='admin.php?set=adopts'>Change Adoptables</a></li>
<li><a href='admin.php?set=content'>Change Content</a></li>
<li><a href='admin.php?set=manageforum'>Manage Forum</a></li>
<li><a href='admin.php?set=users'>Change Users</a></li>
<li><a href='admin.php?set=settings'>Site Settings</a></li>
<li><a href='admin.php?set=ads'>Manage Ads</a></li>";



return $links;

}

function cando($usergroup, $do){

include("config.php");

//This function determines if a usergroup is allowed to do a specific task

$query = "SELECT * FROM ".$prefix."groups WHERE gid = '$usergroup'";
$result = @mysql_query($query);
$num = @mysql_numrows($result);

//Loop out code
$i=0;
while ($i < 1) {

$cando=@mysql_result($result,$i,$do);

$i++;
}

if($cando == "" or $usergroup == 0){
$cando = "no";
}

return $cando;

}

function canadopt($aid, $cond, $promocode){

include("config.php");

// This function determines if a user can adopt a specific adoptable...

$canadopt = "yes"; // The default status is that we CAN adopt, unless proven false...

// The first thing we check is that we are logged in

$loginstatus = logincheck();
$isloggedin = $loginstatus[loginstatus];
$loggedinname = $loginstatus[username];

if($isloggedin != "yes" and $cond != "showing"){
$canadopt = "no";
}

// Now we check if our usergroup has permission to adopt the adoptable...

$group = getgroup();
$dbcanadpt = cando($group, "canadopt");

if($dbcanadpt != "yes" and $cond != "showing"){
$canadopt = "no";
}

// We need to pull a lot of junk from the database for these next few checks


$query = "SELECT * FROM ".$prefix."adoptables WHERE id='$aid'";
$result = mysql_query($query);
$num = mysql_numrows($result);

//Loop out code
$i=0;
while ($i < 1) {

$whenisavail=@mysql_result($result,$i,"whenisavail");
$correctpromocode=@mysql_result($result,$i,"promocode");
$freqcond=@mysql_result($result,$i,"freqcond");
$number=@mysql_result($result,$i,"number");
$date=@mysql_result($result,$i,"date");
$datecond=@mysql_result($result,$i,"datecond");
$adoptscond=@mysql_result($result,$i,"adoptscond");




$morethannumberen=@mysql_result($result,$i,"moreless");
$morethannumber=@mysql_result($result,$i,"morelessnum");
$usergroupsen=@mysql_result($result,$i,"levelgrle");
$usergroupid=@mysql_result($result,$i,"grlelevel");

$type=@mysql_result($result,$i,"type");

$i++;
}

// Now we check if the adoptable requires a promo code and if the promo code submitted is correct...

if($whenisavail == "promo" and $promocode != $correctpromocode){

// A promo code is required but the submitted promo code is not the correct code
$canadopt = "no";

}

// Now we check those three conditions we have in the Admin CP
// If ANY of them fails, this check fails!

if($whenisavail == "conditions"){

// If we have a restriction on the number of times this can be adopted...

if($freqcond == "enabled"){

// We have a frequency based condition
// Select from the database and determine how many times this adoptable type has been adopted

$num = 0;

$query = "SELECT * FROM ".$prefix."owned_adoptables WHERE type='$type'";
$result = mysql_query($query);
$num = mysql_numrows($result);

if($num > $number){

// Not Available
$canadopt = "no";

}


} // End the frequency condition IF statement

// Begin the date restriction check

$today = date('Y-m-d');

if($datecond == "enabled" and $date != $today){

$canadopt = "no";

}

// We are checking to see how many of this adoptable a user owns
// If they own more than the specifed number, they cannot adopt...



if($morethannumberen == "enabled"){

$num = 0;

$query = "SELECT * FROM ".$prefix."owned_adoptables WHERE owner='$loggedinname' and type='$type'";
$result = mysql_query($query);
$num = mysql_numrows($result);

if($num > $morethannumber){

$canadopt = "no";


}


} // End morethannumberen check




// Check if the user is of a specified usergroup...

if($usergroupsen == "enabled"){

$ourgid = getgroup();

// If the two numbers do not match, do not allow the adoption...

if($ourgid != $usergroupid){

$canadopt = "no";

}


}




} // End the is there conditions if statement


return $canadopt;

}

function getaltstatus($parentid, $childid, $childlevel){

include("config.php");

// This function determines if we will use alternate images...
// All this does is give us a yes or no
// This does NOT actually assign the alternate images in the DB.....

$altstatus = "no";
$run = "no";

// First we need to see if this adoptable type has alternate images enabled...

$query = "SELECT * FROM ".$prefix."adoptables WHERE id='$parentid'";
$result = mysql_query($query);
$num = mysql_numrows($result);

//Loop out code
$i=0;
while ($i < 1) {

$alternates=@mysql_result($result,$i,"alternates");
$altoutlevel=@mysql_result($result,$i,"altoutlevel");
$altchance=@mysql_result($result,$i,"altchance");

$i++;
}

// If alternate images are enabled, we must run some checks to see if we use them...

if($alternates == "enabled"){


// Let's see if the level we are on is the level that requires alternates
// If we're not on a level that requires to check alternates, why bother?

if($childlevel == $altoutlevel){


$run = "yes";

}



}

if($run == "yes"){

// This is where we actually determine if we use alternate images...

$randnum = rand(1, $altchance);

if($randnum == 1){
$altstatus = "yes"; // If we pull a 1 as the random number, we use the alternate images :)
}

}


return $altstatus;

}

function getcurrentimage($id){

// This function determines which image we should use for a given adoptable...

include("config.php"); // This is so we can use the table prefix

$image = "";

// First we select the adoptable from the database and get some basic information...

$query = "SELECT * FROM ".$prefix."owned_adoptables WHERE aid='$id'";
$result = mysql_query($query);
$num = mysql_numrows($result);

//Loop out code
$i=0;
while ($i < 1) {

$type=@mysql_result($result,$i,"type");
$currentlevel=@mysql_result($result,$i,"currentlevel");
$imageurl=@mysql_result($result,$i,"imageurl");
$usealternates=@mysql_result($result,$i,"usealternates");


$i++;
}

if($imageurl != ""){

// If we are using a custom image for this adoptable, use that
$image = $imageurl;

}
else{

// We have to dig this up ourselves...
// Check if we are using an egg image or a level image...

if($currentlevel == 0 or $currentlevel == "0"){

// Let's see what the egg image is...

$query = "SELECT * FROM ".$prefix."adoptables WHERE type='$type'";
$result = mysql_query($query);
$num = mysql_numrows($result);

//Loop out code
$i=0;
while ($i < 1) {

$eggimage=@mysql_result($result,$i,"eggimage");


$i++;
}

$image = $eggimage; // Set the image URL equal to the egg image...

}
else{

// We have to find out what level we are using...
// Then we can choose the appropriate image for what we are using...

$query = "SELECT * FROM ".$prefix."levels WHERE adoptiename='$type' and thisislevel='$currentlevel'";
$result = mysql_query($query);
$num = mysql_numrows($result);

//Loop out code
$i=0;
while ($i < 1) {

$primaryimage=@mysql_result($result,$i,"primaryimage");
$alternateimage=@mysql_result($result,$i,"alternateimage");


$i++;
}

// If alternate images are enabled and an alternate image exists, use it

if($usealternates == "yes" and $alternateimage != ""){

$image = $alternateimage; // Use the alternate image

}
else{

$image = $primaryimage; // Set the image equal to the primary image for the level

}



}

}

if($type == "" or $image == ""){

// We did not settle on an image, so we show an error image...

$image = "http://www.".$domain."".$scriptpath."/templates/icons/delete.gif";

}


return $image;

}

function getcurrentlevel($id){

// This function gets the current level of an adoptable...

include("config.php");

$query = "SELECT * FROM ".$prefix."owned_adoptables WHERE aid='$id'";
$result = mysql_query($query);
$num = mysql_numrows($result);

//Loop out code
$i=0;
while ($i < 1) {

$currentlevel=@mysql_result($result,$i,"currentlevel");


$i++;
}

if($currentlevel == ""){

$currentlevel = "error"; // If the adoptable does not have a current level or does not exist, we return an error...

}

// Return the level

return $currentlevel;


}

function getnextlevelexists($type, $currentlevel){

include("config.php");

// This function determines if a higher level exists for an adopt, or if it is at max level.

$query = "SELECT * FROM ".$prefix."levels WHERE adoptiename='$type' and thisislevel > '$currentlevel'";
$result = mysql_query($query);
$num = mysql_numrows($result);

$exists = "false";

if($num > 0){

$exists = "true"; // A higher level exists

}

return $exists;

}

function convertidtotype($id){

// This function takes in an adoptable's ID and returns the type of adoptable it is...

include("config.php");

$query = "SELECT * FROM ".$prefix."owned_adoptables WHERE aid='$id'";
$result = mysql_query($query);
$num = mysql_numrows($result);

//Loop out code
$i=0;
while ($i < 1) {

$type=@mysql_result($result,$i,"type");


$i++;
}

if($type == ""){

$type = "error";

}

return $type;

}

function converttypetoparentid($type){

// This function takes in an adoptable type and returns the ID of the parent

include("config.php");

$query = "SELECT * FROM ".$prefix."adoptables WHERE type='$type'";
$result = mysql_query($query);
$num = mysql_numrows($result);

//Loop out code
$i=0;
while ($i < 1) {

$id=@mysql_result($result,$i,"id");


$i++;
}

if($id == ""){
$id = "error";
}

return $id;

}

function reward($id, $type, $currentlevel, $owner){

include("config.php");

// This function determines if we are giving the user a reward or not...

$query = "SELECT * FROM ".$prefix."levels WHERE adoptiename='$type' and thisislevel='$currentlevel'";
$result = mysql_query($query);
$num = mysql_numrows($result);

//Loop out code
$i=0;
while ($i < 1) {

$rewarduser=@mysql_result($result,$i,"rewarduser");
$promocode=@mysql_result($result,$i,"promocode");


$i++;
}

if($rewarduser == "yes" and $promocode != ""){

// We are sending out a reward...

$mtitle = "You have received a reward!";
$mtext = "Congratulations! You have received a reward because one of your adoptables leveled up and the site admin has chosen to reward you for this.<br><br>
<b><u>Your reward is the following promo code:</u></b> ".$promocode."<br><br>
You may use this promo code on the <a href='promo.php?promocode=".$promocode."'>Promo Code Page</a> to receive a special exclusive or limited edition adoptable!<br><br>
Congratulations on your reward!";

$mtext = mysql_real_escape_string($mtext);

$date = date('Y-m-d');
$query = "INSERT INTO ".$prefix."messages VALUES ('', 'SYSTEM', '$owner','unread','$date','$mtitle', '$mtext')";
mysql_query($query);

// Now we check if we are sending out an email to the user alerting them of the message...

$query = "SELECT * FROM ".$prefix."users WHERE username='".$owner."'";
$result = mysql_query($query);
$num = mysql_numrows($result);

//Loop out code
$i=0;
while ($i < 1) {

$newmessagenotify=@mysql_result($result,$i,"newmessagenotify");
$email=@mysql_result($result,$i,"email");

$i++;
}

if($newmessagenotify == 1){

// We are sending this user an email about the new message...

$systememail = grabanysetting("systememail");

$headers = "From: ".$systememail."";

$site_name = grabanysetting("sitename");

$message = "Hello ".$owner.";\n\nYou have received a new Private Message from SYSTEM at ".$site_name." with the title ".$mtitle.".\n
You can read this message at: http://www.".$domain."".$scriptpath."/messages.php\n
Thank You. The ".$site_name." team.";

mail($email, $site_name." - You Have Received a Reward", $message, $headers);

}



}

return $rewardstatus;

}

function getadmimages(){

include("config.php");

$formcontent = "";

$query = "SELECT * FROM ".$prefix."filesmap";
$result = mysql_query($query);
$num = mysql_numrows($result);

//Loop out code
$i=0;
while ($i < $num) {

$wwwpath=@mysql_result($result,$i,"wwwpath");
$friendlyname=@mysql_result($result,$i,"friendlyname");

$formcontent = $formcontent."<option value='".$wwwpath."'>".$friendlyname."</option>";


$i++;
}

return $formcontent;

}

function deleteuser($user){

include("config.php");

//This function deletes a user from the system...

$user = secure($user);

$query = "DELETE FROM ".$prefix."users WHERE username = '".$user."'";
$result = mysql_query($query);

$query = "DELETE FROM ".$prefix."owned_adoptables WHERE owner = '".$user."'";
$result = mysql_query($query);

}

function getads($page){

// Function to display site advertisements

include("config.php");

if($page == "any"){
$page = "";
}

$query = "SELECT * FROM ".$prefix."ads WHERE page = '".$page."' and status = 'active' ORDER BY RAND() LIMIT 1";
$result = @mysql_query($query);
$num = @mysql_numrows($result);

if($num > 0){

//Loop out code
$i=0;
while ($i < 1) {

$value=@mysql_result($result,$i,"text");
$value = stripslashes($value);
$aid=@mysql_result($result,$i,"id");
$actualimpressions=@mysql_result($result,$i,"actualimpressions");
$impressions=@mysql_result($result,$i,"impressions");
$i++;
}

if($impressions == ""){
$impressions = 0;
}

$actualimpressions = $actualimpressions + 1;

//Update the impressions count
$query = "UPDATE ".$prefix."ads SET actualimpressions='".$actualimpressions."' WHERE id='".$aid."'";
mysql_query($query);

//Check that ad is not over max impressions...
if ($actualimpressions >= $impressions and $impressions != 0){
$query = "UPDATE ".$prefix."ads SET status='inactive' WHERE id='".$aid."'";
mysql_query($query);
}


}
else{
$value = "";
}

return $value;

}



?>

BMR777
05-30-2009, 06:51 PM
That line is in the adopt.php code you posted, not functions.php. :)

rosepose
05-30-2009, 08:04 PM
Oh. Well, I tried adding it after what you said to, and got the following error:

Parse error: syntax error, unexpected T_VARIABLE in /home/solaeria/public_html/alearith/adopt.php on line 163

This is what I had:
<?php

// ************************************************** ********************
// Rusnak PHP Adoptables Script
// Copyright 2009 Brandon Rusnak
// For help and support: http://www.rusnakweb.com/forum/
//
// Redistribution prohibited without written permission
// ************************************************** ********************

// Wake the sleeping giant

// ************************************************** ********************
// Basic Configuration Info
// ************************************************** ********************

include("inc/functions.php");
include("inc/config.php");
include("lang/lang.php");

$themeurl = grabanysetting("themeurl");

// ************************************************** ********************
// Define our top links by calling getlinks()
// ************************************************** ********************

$links = getlinks();

// ************************************************** ********************
// Define our ads by calling getads()
// ************************************************** ********************

$ads = getads("any");

// ************************************************** ********************
// Grab any settings that we will need for the current page from the DB
// ************************************************** ********************

$browsertitle = grabanysetting("browsertitle");
$sitename = grabanysetting("sitename");
$slogan = grabanysetting("slogan");

// ************************************************** ********************
// Check and see if the user is logged in to the site
// ************************************************** ********************

$loginstatus = logincheck();
$isloggedin = $loginstatus[loginstatus];
$loggedinname = $loginstatus[username];

// ************************************************** ********************
// End Prepwork - Output the page to the user
// This page sets up the new adoptions and then forwards the user to
// a secondary page for adoptables processing.....
// ************************************************** ********************

$id = $_GET["id"];
$id = preg_replace("/[^a-zA-Z0-9s]/", "", $id);
$id = secure($id);

$promocode = $_GET["promocode"];
$promocode = preg_replace("/[^a-zA-Z0-9\\040.]/", "", $promocode);
$promocode = secure($promocode);

// Here we check if we have an ID that has been submitted or no

if($id == "" or !is_numeric($id)){

// We did not enter in an id, or it is not a number
// Show the available adoptables to the user...

$article_title = $showingtitle;
$article_content = $showing;

// If we are a guest, show a message that lets them know that they cannot adopt...

if($isloggedin != "yes"){

$article_content = $article_content."".$showingguest;

}

// Begin the output of all the adoptables to the user...

$query = "SELECT * FROM ".$prefix."adoptables";
$result = mysql_query($query);
$num = mysql_numrows($result);

//Loop out code
$i=0;
while ($i < $num) {

$aid=@mysql_result($result,$i,"id"); //The adoptable's ID
$type=@mysql_result($result,$i,"type");
$description=@mysql_result($result,$i,"description");
$eggimage=@mysql_result($result,$i,"eggimage");

// Call a function to check if we have the proper privledge level to adopt this pet
// This function checks all of the little conditions and makes sure they are present
// If they are not present, the adoptable is not shown here, as that would be cruel.
// We call the function with the showing flag to not deny the showing if the user is a guest.


if($promocode == ""){
$promocode = "none";
}

$canadopt = canadopt($aid, "showing", $promocode); // Feed an adoptable ID and showing, to show the adopt to guests...

if($canadopt == "yes"){

//If we can adopt the adoptable, show the image and adoption link...

$article_content = $article_content."<p><b><u><a href='adopt.php?id=".$aid."'>".$type.":</a></u></b></p>
<p><a href='adopt.php?id=".$aid."'><img src='".$eggimage."' border='0'></a></p>";

if($isloggedin == "yes"){
$article_content = $article_content."<p><b><a href='adopt.php?id=".$aid."'><img src='templates/icons/add.gif' border=0> Adopt ".$type."</a></b></p>";
}
else{
$article_content = $article_content."<p><img src='templates/icons/no.gif' border=0> <b>".$guesterror."</b></p>";
}


}

$i++;
} // End the looping out of all adoptables...

} // This bracket ends the IF check for whether or not an ID was entered
else{

// We have specified an ID of an adoptable we wish to adopt
// Let the user name the adoptable, then forward them
// to an additional page that actually adds the adoptie
// to their account.

// Now we have to connect to the database and get information about the adoptable

$query = "SELECT * FROM ".$prefix."adoptables WHERE id='$id'";
$result = mysql_query($query);
$num = mysql_numrows($result);

//Loop out code
$i=0;
while ($i < 1) {

$aid=@mysql_result($result,$i,"id"); //The adoptable's ID
$type=@mysql_result($result,$i,"type");
$description=@mysql_result($result,$i,"description");
$eggimage=@mysql_result($result,$i,"eggimage");

$i++;
}

if($aid == $id){

//The adoptable exists and is valid

// Make sure again that we can adopt this adoptie...

$canadopt = canadopt($aid, "adopting", $promocode);
$article_content = $article_content."<br>Can Adopt? ".$canadopt."<br>";

if($canadopt == "yes"){

$article_title = "Adopting ".$type;
$article_content = $langa1."".$type.$langa2;



$article_content = $article_content."<br><img src='".$eggimage."' border='0'><br>
<form name='form1' method='get' action='doadopt.php'>
<p>Adoptable Name:
<input name='name' type='text' id='name'>
<input name='id' type='hidden' id='id' value='".$id."'>
<input name='promocode' type='hidden' id='promocode' value='".$promocode."'>
</p>
<p>
<input type='submit' name='Submit' value='Adopt Me'>
</p>
</form>";


}
else{

$article_title = $accden;
$article_content = $adoptnoper;

} // End Can Adopt ELSE

}
else{

//The adoptable does not exist, nothing we can do...

$article_title = $err_idnoexist;
$article_content = $err_idnoexist_text;

} // End adoptable does not exist ELSE



} // This bracket ends the else statements for whether or not an ID was entered


// ************************************************** ********************
// Begin Template Definition
// ************************************************** ********************

//Define our current theme
$file = $themeurl;

// Do the template changes and echo the ready template
$template = file_get_contents($file);

$template = replace(':ARTICLETITLE:',$article_title,$template) ;
$template = replace(':ARTICLECONTENT:',$article_content,$templ ate);
$template = replace(':ARTICLEDATE:',$article_date,$template);

$template = replace(':BROWSERTITLE:',$browsertitle,$template);
$template = replace(':SITENAME:',$sitename,$template);

//Define our links
$template = replace(':LINKSBAR:',$links,$template);

//Get the content for the side bar...

$sidebar = getsidebar();
$template = replace(':SIDEFEED:',$sidebar,$template);

//Get the ad content...
$template = replace(':ADS:',$ads,$template);

//Get the slogan info
$template = replace(':SLOGAN:',$slogan,$template);


echo $template;

// ************************************************** ********************
// End Template Definition
// ************************************************** ********************



?>

BMR777
05-31-2009, 08:09 AM
Ok, find and remove:

$article_content = $article_content."<br>Can Adopt? ".$canadopt."<br>";

That looks correct to me so I don't know why the line I told you to add would give an error like that.

Maybe find this:

$article_content = $langa1."".$type.$langa2;

Replace with:

$article_content = $langa1."".$type."".$langa2;

Maybe that will fix the issue? I don't see though why the code I gave you would cause an error.

Are some adoptables still letting you adopt? What do the ones that you get the access denied message have in common / set for conditions?