Mysidia Adoptables Support Forum

Mysidia Adoptables Support Forum (http://www.mysidiaadoptables.com/forum/index.php)
-   Mys v1.1.x Mods (http://www.mysidiaadoptables.com/forum/forumdisplay.php?f=20)
-   -   Secure Random Adoption Process (http://www.mysidiaadoptables.com/forum/showthread.php?t=1783)

fadillzzz 01-23-2011 04:14 AM

Secure Random Adoption Process
 
This mod is intended for people who already or wanted to have a random adoption process on their adoptables site.
This mod will use Session Value instead of the GET method to transfer the id of an adoptables from adopt.php to doadopt.php
That way people won't be able to manipulate the id of an adoptables to another id to get the adoptables they want.
You can use POST method but they can change it using the text editor. So with this mod, they have no idea how to do that.

NOTE:Please make a backup of your files before installing this mod!

Now, let's move on!
1. Open your adopt.php file, on line 2 just below the
PHP Code:

<?php

tag put this code
PHP Code:

session_start(); // This is important! 

2.(Skip this step if your site already limit the adopt.php to only show 1 random adoptables)
Go to line 86, replace this code

PHP Code:

$query "SELECT * FROM ".$prefix."adoptables"

with this
PHP Code:

$query "SELECT * FROM ".$prefix."adoptables WHERE whenisavail = 'always' ORDER BY RAND() LIMIT 1"// Only shows 1 random adoptables 

3. Put this code on line 98
PHP Code:

$_SESSION['id'] = $aid// This is what we use to transfer the aid value 

4. Then on line 119 find this code
PHP Code:

    $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>"

And replace it with this
PHP Code:

$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='promocode' type='hidden' id='promocode' value='"
.$promocode."'>
  </p>
  <p>
    <input type='submit' name='Submit' value='Adopt Me'>
</p>
</form>"


5. After that, remove these 2 lines from the file (line 115 & 116)
PHP Code:

$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>"

We're done with adopt.php, let's continue with editing doadopt.php
1. Open your doadopt.php, on line 2 just below the
PHP Code:

<?php

tag put this code
PHP Code:

session_start(); // This is important! 

2. Find this code on line 65 -75
PHP Code:

$id $_GET["id"]; 

And replace it with
PHP Code:

if($_GET["id"] == ""){
$id $_SESSION['id'];
}elseif(
$_GET["id"] != ""){
$id $_GET["id"];


3. Find this code
PHP Code:

if($isloggedin == "yes"){ 

And before that line add this
PHP Code:

if($promocode != ""){ 


4.
And then before this
PHP Code:

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

Add this code
PHP Code:

}else{
$article_title $accden;
$acticle_content "Enter error message here";



NOTE:Don't forget to edit the "Enter error message here" text



That's it you're done! Now people will completely get unchangeable random adoptables!

If there's any error you encounter after installing this mod, please let me know! (This is my first mod)

PokePets 01-23-2011 04:22 AM

Thank you =D

fadillzzz 01-24-2011 05:43 AM

First post updated!
Added a fix for the broken promo code page

Kaeliah 01-24-2011 08:07 AM

It would seem there's a conflict between your mod and the Gender Ratio mod that Famer has.

fadillzzz 01-24-2011 09:53 AM

I'll take a look into it, thanks for letting me know Kaeliah!

RoconzaArt 01-24-2011 12:04 PM

Yes I checked this mod with HOF's Gender Ratio mod are giving a invaid ID error.

fadillzzz 01-25-2011 02:19 AM

First post updated!
I've updated the tutorial so it won't break the promo code feature, and it will work with any mod that will require the edit of adopt.php and doadopt.php such as HoF's gender ratio system.
EDIT: Updated again! I added a security fix to prevent the user from using the GET method to enter any ID of an adoptables (with the condition of whenisavail set to always) and fill in the promocode with random string to bypass the security..Hopefully this will be the last problem I found with this mod :cfrown:

RoconzaArt 01-28-2011 11:28 AM

I have a few mods on already I don't know what to do could some one help me?

fadillzzz 01-28-2011 11:30 AM

Sure, I'll help.

RoconzaArt 01-28-2011 11:36 AM

Thanks, I tried to add it but I already have HOF other two mods in place so going by line number is not work. I got a lot of errors the adopt page.

This what my adopt page looks like now without your mod. Were do I put the things I need?

PHP Code:

<?php

// **********************************************************************
// Mysidia Adoptables Script: adopt.php
// Copyright 2011 Mysidia Adoptables staff team
// For help and support: http://www.mysidiaadoptables.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,$template);
$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
// **********************************************************************



?>


fadillzzz 01-28-2011 11:41 AM

Before we get started, can I ask you whether you use the promo code feature on your adoptables site or not?

RoconzaArt 01-28-2011 11:44 AM

Yes to hide evolutions.

fadillzzz 01-28-2011 11:45 AM

Just to hide evolutions?
What I'm trying to ask you is actually whether you give the user a promo code to use for adopting or not...?

RoconzaArt 01-28-2011 11:47 AM

Yes some times for events.

fadillzzz 01-28-2011 11:57 AM

Well, this is your new adopt.php (make a backup of the old one first!)
PHP Code:

<?php
session_start
(); // This is important!  
// **********************************************************************
// Mysidia Adoptables Script: adopt.php
// Copyright 2011 Mysidia Adoptables staff team
// For help and support: http://www.mysidiaadoptables.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 WHERE whenisavail = 'always' ORDER BY RAND() LIMIT 1"// Only shows 1 random 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");

$_SESSION['id'] = $aid// This is what we use to transfer the aid value  

// 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...

    
if($isloggedin == "yes"){
$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='promocode' type='hidden' id='promocode' value='"
.$promocode."'>
  </p>
  <p>
    <input type='submit' name='Submit' value='Adopt Me'>
</p>
</form>"
;  
    }
    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,$template);
$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
// **********************************************************************



?>

Unfortunately, to prevent the breaking of adoption using promo code I have to leave a security hole in the script. The user will still be able to type in the URL manually (domain.com/adopt.php?id=xx) to adopt the pet they want. I think I can fix this but my hosting server is down right now. In the meantime, post your doadopt.php here

RoconzaArt 01-28-2011 12:05 PM

I'll in mind before giving out promocodes.

PHP Code:

<?php

// **********************************************************************
// Mysidia Adoptables Script: doadopt.php
// Copyright 2011 Mysidia Adoptables staff team
// For help and support: http://www.mysidiaadoptables.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 dynamic article content from the content table
// **********************************************************************

$pagecontent getsitecontent("index");
$article_title $pagecontent[title];
$article_content $pagecontent[content];
$article_content nl2br($article_content);

// **********************************************************************
// 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 file actually processes the adoption of a pet...
// **********************************************************************

$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);

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

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

if(
$isloggedin == "yes"){

// I guess the first thing to do is see if we have a valid adoptable ID submitted...

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

$article_title $err_idnoexist;
$article_content $err_idnoexist_text;

}
else{

// The adoptable ID appears to be valid, so we need to double check that it is valid by pulling up the adoptable in the DB

$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");
$genderratio=@mysql_result($result,$i,"genderratio"); 
$evolution=@mysql_result($result,$i,"evolution");
$evolutionlevel=@mysql_result($result,$i,"evolutionlevel");
$evolutionform=@mysql_result($result,$i,"evolutionform"); 

$i++;
}

if(
$id == $aid){

// The ID submitted matches an existing adoptable type

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

// If we can adopt this creature, do the adoption
// Otherwise we show an error...

if($canadopt == "yes"){

// **********************************************************************
// BEGIN the actual adoption process
// **********************************************************************

// First we see if we have a custom name.
// If not, we use the default name

if($name == ""){
$name $type;
}

//The gender mod
if($genderratio >= and $genderratio 101) {
$tempgender rand(0100);
if(
$tempgender >= and $tempgender $genderratio) {
$gender "Female";
unset(
$tempgender);
}
else {
$gender "Male";
unset(
$tempgender);
}
}
else {
$gender "Genderless";
}  

// Now we determine if we are using alternate images or not

$alts getaltstatus($id00);

// Now we actually process the adoption and add it to the database...
// We need a unique code for the adoptable so we can show it to the user when we're done here...

$code rand(120000);


mysql_query("INSERT INTO ".$prefix."owned_adoptables VALUES ('', '$type', '$name','$loggedinname','0','0', '$code', '','$alts','fortrade','no','$gender','$evolution','$evolutionlevel','$evolutionform')");

// Adoption complete, show the user a confirmation screen...
// We need to show the adoptable info from the database...

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

//Loop out code
$i=0;
while (
$i 1) {
 
$id=@mysql_result($result,$i,"aid"); 


$i++;
}


$article_title $name." adopted successfully";
$article_content "<img src='".$eggimage."'><br>".$congrats1." ".$name.".  You can now manage ".$name." on the 
<a href='myadopts.php'>My Adopts</a> page.<br><br><b><a href='myadopts.php?act=manage&id="
.$id."'>Click Here to Manage ".$name."</a><br>
<a href='myadopts.php?act=bbcode&id="
.$id."'>Click Here to get BBCodes / HTML Codes for ".$name."</a></b><br><br>
Be sure and <a href='levelup.php?id="
.$id.">feed</a> ".$name." with clicks so that they grow!";



// **********************************************************************
// END the actual adoption process
// **********************************************************************


}
else{

$article_title $accden;
$article_content $adoptnoper;

}


// End the if for if $id == $aid
else{

// Adoptable does not exist, show an error.

$article_title $err_idnoexist;
$article_content $err_idnoexist_text;

// End the else for if $id == $aid


// End the valid ID input else test statement (bulk of code goes above here)


// End the log in check IF
else{

// Guests cannot adopt pets, so why bother...
$article_title $guesttitleerror;
$article_content $guesterror;

// End the log in check ELSE 

// **********************************************************************
// 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,$template);
$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
// **********************************************************************



?>


fadillzzz 01-28-2011 12:19 PM

Here's your doadopt.php, and remember to back up the old one
PHP Code:

<?php
session_start
(); // This is important! 
// **********************************************************************
// Mysidia Adoptables Script: doadopt.php
// Copyright 2011 Mysidia Adoptables staff team
// For help and support: http://www.mysidiaadoptables.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 dynamic article content from the content table
// **********************************************************************

$pagecontent getsitecontent("index");
$article_title $pagecontent[title];
$article_content $pagecontent[content];
$article_content nl2br($article_content);

// **********************************************************************
// 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 file actually processes the adoption of a pet...
// **********************************************************************

if($_GET["id"] == ""){
$id $_SESSION['id'];
}elseif(
$_GET["id"] != ""){
$id $_GET["id"];
}  

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

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

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

if(
$isloggedin == "yes"){
if(
$promocode != "" or $promocode != "none"){  

// I guess the first thing to do is see if we have a valid adoptable ID submitted...

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

$article_title $err_idnoexist;
$article_content $err_idnoexist_text;

}
else{

// The adoptable ID appears to be valid, so we need to double check that it is valid by pulling up the adoptable in the DB

$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");
$genderratio=@mysql_result($result,$i,"genderratio"); 
$evolution=@mysql_result($result,$i,"evolution");
$evolutionlevel=@mysql_result($result,$i,"evolutionlevel");
$evolutionform=@mysql_result($result,$i,"evolutionform"); 

$i++;
}

if(
$id == $aid){

// The ID submitted matches an existing adoptable type

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

// If we can adopt this creature, do the adoption
// Otherwise we show an error...

if($canadopt == "yes"){

// **********************************************************************
// BEGIN the actual adoption process
// **********************************************************************

// First we see if we have a custom name.
// If not, we use the default name

if($name == ""){
$name $type;
}

//The gender mod
if($genderratio >= and $genderratio 101) {
$tempgender rand(0100);
if(
$tempgender >= and $tempgender $genderratio) {
$gender "Female";
unset(
$tempgender);
}
else {
$gender "Male";
unset(
$tempgender);
}
}
else {
$gender "Genderless";
}  

// Now we determine if we are using alternate images or not

$alts getaltstatus($id00);

// Now we actually process the adoption and add it to the database...
// We need a unique code for the adoptable so we can show it to the user when we're done here...

$code rand(120000);


mysql_query("INSERT INTO ".$prefix."owned_adoptables VALUES ('', '$type', '$name','$loggedinname','0','0', '$code', '','$alts','fortrade','no','$gender','$evolution','$evolutionlevel','$evolutionform')");

// Adoption complete, show the user a confirmation screen...
// We need to show the adoptable info from the database...

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

//Loop out code
$i=0;
while (
$i 1) {
 
$id=@mysql_result($result,$i,"aid"); 


$i++;
}


$article_title $name." adopted successfully";
$article_content "<img src='".$eggimage."'><br>".$congrats1." ".$name.".  You can now manage ".$name." on the 
<a href='myadopts.php'>My Adopts</a> page.<br><br><b><a href='myadopts.php?act=manage&id="
.$id."'>Click Here to Manage ".$name."</a><br>
<a href='myadopts.php?act=bbcode&id="
.$id."'>Click Here to get BBCodes / HTML Codes for ".$name."</a></b><br><br>
Be sure and <a href='levelup.php?id="
.$id.">feed</a> ".$name." with clicks so that they grow!";



// **********************************************************************
// END the actual adoption process
// **********************************************************************


}
else{

$article_title $accden;
$article_content $adoptnoper;

}


// End the if for if $id == $aid
else{

// Adoptable does not exist, show an error.

$article_title $err_idnoexist;
$article_content $err_idnoexist_text;

// End the else for if $id == $aid


// End the valid ID input else test statement (bulk of code goes above here)

// End IF promo code is not empty
else{
$article_title $accden;
$acticle_content "Promo code cannot be empty";
}  
// End the log in check IF
else{

// Guests cannot adopt pets, so why bother...
$article_title $guesttitleerror;
$article_content $guesterror;

// End the log in check ELSE 

// **********************************************************************
// 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,$template);
$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
// **********************************************************************



?>

Also, I think I've come up with a fix for the adopt.php, so try to use this instead for the adopt.php and since I haven't tested this mainly because my hosting server is down you should keep the adopt.php from my previous post and use it in case this one doesn't work
PHP Code:

<?php
session_start
(); // This is important!  
// **********************************************************************
// Mysidia Adoptables Script: adopt.php
// Copyright 2011 Mysidia Adoptables staff team
// For help and support: http://www.mysidiaadoptables.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 WHERE whenisavail = 'always' ORDER BY RAND() LIMIT 1"// Only shows 1 random 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");

$_SESSION['id'] = $aid// This is what we use to transfer the aid value  

// 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...

    
if($isloggedin == "yes"){
$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='promocode' type='hidden' id='promocode' value='"
.$promocode."'>
  </p>
  <p>
    <input type='submit' name='Submit' value='Adopt Me'>
</p>
</form>"
;  
    }
    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{
if(
$promocode == "" or $promocode == "none"){
$article_title $accden;
$article_content $adoptnoper;
}
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


// End Else IF promo code empty or none
// 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,$template);
$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
// **********************************************************************



?>

The last file needs to be edited would be the functions.php...

RoconzaArt 01-28-2011 12:44 PM

It works awesome now thanks. No invaide ID or errors adopting from a promo code.

Your the best :)

Slix 02-13-2011 07:49 PM

I want to implement this, but I also want to show the right description for the adoptables. Is it possible to show that, then adopt the one you clicked on? I tried it out and it ended up showing a description that wasn't the same as the egg I adopted.

Hall of Famer 02-14-2011 11:12 AM

Well this I'd advise you to send a PM to Fadillzzz, he may have a solution for you.


All times are GMT -5. The time now is 06:41 PM.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions Inc.