Mysidia Adoptables Support Forum

Mysidia Adoptables Support Forum (http://www.mysidiaadoptables.com/forum/index.php)
-   Questions and Supports (http://www.mysidiaadoptables.com/forum/forumdisplay.php?f=18)
-   -   Error When Using Item (http://www.mysidiaadoptables.com/forum/showthread.php?t=4628)

Abronsyth 08-13-2014 12:08 PM

Error When Using Item
 
Purchasing an item works fine, and it works perfectly when I go to inventory>item>use.

I can get to the select adoptable page, but after I try to actually use it, it brings me to a blank white page and doesn't work. Sorry if my explanation doesn't make sense!

So this page is fine;
http://i.imgur.com/PxBFvxr.png
But after I click "Choose This Adopt" I end up on a blank page.

Does anyone else have this issue, or know how to fix it?

Warm regards,
Abron

Hall of Famer 08-13-2014 03:30 PM

umm did you modify the item functions or the inventory.php file? If you get a white page its most likely a syntax error.

Abronsyth 08-13-2014 03:34 PM

No, I have not touched it., or at least not that I recall. ((I wish PHP made more sense to me XD))
PHP Code:

<?php

class InventoryController extends AppController{

    const 
PARAM "confirm";
    private 
$view;
    private 
$subController;

    public function 
__construct(){
        
parent::__construct("member");
    }
    
    public function 
index(){
        
$mysidia Registry::get("mysidia");
        
$document $mysidia->frame->getDocument();
        
$document->setTitle($mysidia->lang->inventory);
        
        
$inventory = new Inventory($mysidia->user);
        if(
$inventory->gettotal() == 0) throw new InvalidIDException($mysidia->lang->inventory_empty);
        
$inventory->display();
    }
            
    public function 
uses(){
        
$mysidia Registry::get("mysidia");
        
$document $mysidia->frame->getDocument();
        
$item = new PrivateItem($mysidia->input->post("itemname"), $mysidia->user->username);   
        if(
$item->iid == 0) throw new InvalidIDException("It appears that you do not have this item in your inventory.");
        
        if(
$mysidia->input->post("aid")){
            if(!
$item->checktarget($mysidia->input->post("aid")) or $mysidia->input->post("validation") != "valid"){
                
$document->setTitle($mysidia->lang->use_title);
                
$document->addLangvar($mysidia->lang->use_fail);
            }
            elseif(!
$item->randomchance()){
                
$item->remove();
                
$document->setTitle($mysidia->lang->badluck);
                
$document->addLangvar($mysidia->lang->effect);
            }
            else 
$item->apply($mysidia->input->post("aid")); 
            return;            
        }
        
        
$document->setTitle($mysidia->lang->select_title);
        
$document->addLangvar($mysidia->lang->select);
        
        
$chooseFrom = new Form("chooseform""uses""post");
        
$adoptable = new DropdownList("aid");
        
        
$ids $mysidia->db->select("owned_adoptables", array("aid"), "owner = '{$mysidia->user->username}'")->fetchAll(PDO::FETCH_COLUMN);    
        
$names $mysidia->db->select("owned_adoptables", array("name"), "owner = '{$mysidia->user->username}'")->fetchAll(PDO::FETCH_COLUMN);
        
$adoptable->add(new Option("None Selected""none"));
        
$adoptable->fill($names$ids);
        
        
$chooseFrom->add($adoptable);
        
$chooseFrom->add(new PasswordField("hidden""itemname"$mysidia->input->post("itemname")));
        
$chooseFrom->add(new PasswordField("hidden""validation""valid"));
        
$chooseFrom->add(new Button("Choose this Adopt""submit""submit"));
        
$document->add($chooseFrom);
    }
    
    public function 
sell(){
        
$mysidia Registry::get("mysidia");
        
$document $mysidia->frame->getDocument();
        
$item = new PrivateItem($mysidia->input->post("itemname"), $mysidia->user->username);   
        if(
$item->iid == 0) throw new InvalidIDException("It appears that you do not have this item in your inventory.");
        
        if(!
$mysidia->input->post("quantity")){
            
$document->setTitle($mysidia->lang->global_action_title);
            
$document->addLangvar($mysidia->lang->sell_empty);
        }
        elseif(
$item->quantity $mysidia->input->post("quantity")){
            
$document->setTitle($mysidia->lang->global_action_title);
            
$document->addLangvar($mysidia->lang->sell_quantity);
        }
        else{
            
$item->sell($mysidia->input->post("quantity"));
            
$document->setTitle("Transaction Completed");
            
$document->addLangvar("{$mysidia->lang->sell}{$mysidia->input->post("quantity")} {$mysidia->input->post("itemname")} {$mysidia->lang->sell2}");
        }    
    }
    
    public function 
toss(){
        
$mysidia Registry::get("mysidia");
        
$document $mysidia->frame->getDocument();
        
$item = new PrivateItem($mysidia->input->post("itemname"), $mysidia->user->username);  
        if(
$item->iid == 0) throw new InvalidIDException("It appears that you do not have this item in your inventory.");
        
        if(
$mysidia->input->get("confirm")){
            
$item->toss();
            
$document->setTitle($mysidia->lang->global_action_complete);
            
$document->addLangvar($mysidia->lang->toss.$mysidia->input->post("itemname").$mysidia->lang->toss2);
            return;
        }
        
        
$warning "Are you sure you wish to toss {$mysidia->input->post("itemname")}?<br> 
                    It will be permanently removed from your inventory, and this action cannot be undone!<br>"
;
        
$document->setTitle("Confirm your Action");
        
$document->add(new Comment($warning));    

        
$confirmForm = new FormBuilder("confirmform""toss/confirm""post");
        
$confirmForm->buildPasswordField("hidden""action""toss")
                    ->
buildPasswordField("hidden""itemname"$mysidia->input->post("itemname"))
                    ->
buildButton("Please Toss""confirm""confirm");
        
$document->add($confirmForm);            
    }
}
?>


Missy Master 08-13-2014 04:14 PM

Ugh it did this for me too, several times now!

I am really praying for an answer to this! It's gotten to where I can't use ANY items now, once it does it to one .. plus, if I go in as a diff user? Then it works ok!

Missy Master 08-13-2014 04:22 PM

Okay this is a huge problem now for me, if we cant figure it out Im going to have to take Simmland offline.

Just had it happen again and it locks up all use of ALL items, once it happens.

Go in under another name, and it's fine. So it cant be the ip ...

Hall of Famer 08-13-2014 05:10 PM

I see, sounds serious. If anyone of you dont mind giving me ftp access to your server Id love to test something and see where the error is. Send me a PM of the information if you want to.

Missy Master 08-13-2014 07:07 PM

Messaged you :)

Hwona 08-13-2014 07:43 PM

Oh dear - is this affecting both v.1.3.3 and v.1.3.4?

Missy Master 08-13-2014 09:24 PM

As far as I know, just .4.

But wow, its really bad and I have looked through everything and cannot find a trigger for it at ALL.

Abronsyth 08-13-2014 09:54 PM

I am running 1.3.3 and having this issue. I can't remember if I've had it happen before, or not.

Missy Master 08-13-2014 10:03 PM

Ah, thats a shame then! When it happens, I look at the user tables, everything, nothing has altered at all I can see, but it's just that user it happens to, for the moment. No idea why it happens, no idea how to undo it, but a few people had brought it to my attention and now it's happening to me too .. and it's so bad I might have to shut down totally.

No use of the toys or pets or any of that really screws up the whole site :(

Missy Master 08-14-2014 02:55 PM

Okay, finally got it to happen on the secondary account ( miloe ) -- I used item after item and it was great, then I went and bought a few new pets --- got them fine --- then went back and tried to add an item and BAM!

White screen! http://sim-life.com/Simmland/inventory/uses

Hall of Famer 08-14-2014 03:01 PM

umm do you find any patterns in this? Does this tend to happen to certain adoptables of yours or when you use certain items?

Missy Master 08-14-2014 03:06 PM

No pattern so far, and I've been looking --- can be any pet, any species, any item. And I was wondering if it had something to do with the level of the pet or something, but then I realized, this happens - the white screen - at a point where you aren't even able to choose a pet yet, at least for me it does.

But just to be sure, i just applied items to level 0's and level 3's just fine.

On my third account, my test, since I cant use the others now.


Out of nowhere, you click use on something, and white screen.

Abronsyth 08-14-2014 03:09 PM

For me it happens with either of the adoptables (only two exist right now on my site). I will try adding a new item and testing it out with that item.

If you need my FTP info just ask!

Missy Master 08-14-2014 03:17 PM

I strongly suspect a bug located in inventory.php or something to do with it, but I could be wrong!

Missy Master 08-14-2014 05:56 PM

If this helps ??

Going to Toss or Sell both DO still work, on all items!

It's just 'Use' that gets the white out!

I think its in function uses, but I just cant find it ..............

Hwona 08-14-2014 06:10 PM

Quote:

Originally Posted by Annatar (Post 30950)
If this helps ??

Going to Toss or Sell both DO still work, on all items!

It's just 'Use' that gets the white out!

I think its in function uses, but I just cant find it ..............

If you have an inventory.php file in v.1.3.4, I THINK it's the first function that shows up...
umm, you said you're getting a blank screen? Doesn't that usually mean syntax error or something similar? O.o
Did this work before?

Missy Master 08-14-2014 06:12 PM

Yeah it's on there as inventory.php ...

the thing is, it works for a while, then it suddenly stops, and you get white out on all items, from then on, on that account, to 'use ' them --- sign in under a diff name, and you are good to go.

It's really affecting things on my site, I didn't realize it was this bad. I'm looking at the function code to try to see whats wrong...

Missy Master 08-14-2014 06:15 PM

This is inventoryview.php 'use' code:


Code:

               
        public function uses(){
                $mysidia = Registry::get("mysidia");
                $document = $this->document;       
                if($mysidia->input->post("aid")){
                    $message = (string)$this->getField("message");
                    $document->setTitle($mysidia->lang->global_action_complete);
            $document->addLangvar($message);
            return;               
                }
               
                $petMap = $this->getField("petMap");
                $document->setTitle($mysidia->lang->select_title);
        $document->addLangvar($mysidia->lang->select);               
                $chooseFrom = new Form("chooseform", "uses", "post");
               
                $adoptable = new DropdownList("aid");
                $adoptable->add(new Option("None Selected", "none"));
        if($petMap->size() > 0){
            $iterator = $petMap->iterator();
            while($iterator->hasNext()){
                $adopt = $iterator->nextEntry();
                $adoptable->add(new Option($adopt->getValue(), $adopt->getKey()));
            }
        }               
                $chooseFrom->add($adoptable);
               
                $chooseFrom->add(new PasswordField("hidden", "itemname", $mysidia->input->post("itemname")));
                $chooseFrom->add(new PasswordField("hidden", "validation", "valid"));
                $chooseFrom->add(new Button("Choose this Adopt", "submit", "submit"));
        $document->add($chooseFrom);
        }


and

from inventory.php

Code:


public function uses(){
                $mysidia = Registry::get("mysidia");
                $document = $mysidia->frame->getDocument();
                $item = new PrivateItem($mysidia->input->post("itemname"), $mysidia->user->username); 
        if($item->iid == 0) throw new ItemException("use_none");
               
                if($mysidia->input->post("aid")){
                    if(!$item->checktarget($mysidia->input->post("aid")) or $mysidia->input->post("validation") != "valid"){
                            throw new ItemException("use_fail");
            }
                    elseif(!$item->randomchance()){
                $item->remove();
                                throw new ItemException("use_effect");
            }
            else{
                            $message = $item->apply($mysidia->input->post("aid"));
                                $this->setField("message", $message);
                        }       
            return;                       
                }

        $stmt = $mysidia->db->select("owned_adoptables", array("aid", "name"), "owner = '{$mysidia->user->username}'");
        $map = $mysidia->db->fetchMap($stmt);
                $this->setField("petMap", $map);
        }


Hwona 08-14-2014 07:15 PM

This is really wierd. I'm using v.1.3.3 but I don't have this... wait, what host are you huys using?

Missy Master 08-14-2014 07:17 PM

I'm on Skyehosting.

Hwona 08-14-2014 07:43 PM

Do you both have the same host? I don't know...
@Abronsyth
You can borrow my site's inventory file! It works... for now. :L

Abronsyth 08-14-2014 08:07 PM

I use iPage, so it's not to do with the host.

Wallie, thanks! If you can either post it or PM the code to me I can at least compare them and see if there's something different in there.

Missy Master 08-14-2014 08:08 PM

I wonder if that would help me with mine? If I dont get this fixed, I'm going to have to shut down Simmland :(

No one can use items now.

Hwona 08-14-2014 08:12 PM

Here you go(not I may have customized a thing or two in there):
PHP Code:

<?php

class InventoryController extends AppController{

    const 
PARAM "confirm";
    private 
$view;
    private 
$subController;

    public function 
__construct(){
        
parent::__construct("member");
    }
    
    public function 
index(){
        
$mysidia Registry::get("mysidia");
        
$document $mysidia->frame->getDocument();
        
$document->setTitle($mysidia->lang->inventory);
        
        
$inventory = new Inventory($mysidia->user);
        if(
$inventory->gettotal() == 0) throw new InvalidIDException($mysidia->lang->inventory_empty);
        
$inventory->display();
    }
            
    public function 
uses(){
        
$mysidia Registry::get("mysidia");
        
$document $mysidia->frame->getDocument();
        
$item = new PrivateItem($mysidia->input->post("itemname"), $mysidia->user->username);   
        if(
$item->iid == 0) throw new InvalidIDException("It appears that you do not have this item in your inventory.");
        
        if(
$mysidia->input->post("aid")){
            if(!
$item->checktarget($mysidia->input->post("aid")) or $mysidia->input->post("validation") != "valid"){
                
$document->setTitle($mysidia->lang->use_title);
                
$document->addLangvar($mysidia->lang->use_fail);
            }
            elseif(!
$item->randomchance()){
                
$item->remove();
                
$document->setTitle($mysidia->lang->badluck);
                
$document->addLangvar($mysidia->lang->effect);
            }
            else 
$item->apply($mysidia->input->post("aid")); 
            return;            
        }
        
        
$document->setTitle($mysidia->lang->select_title);
        
$document->addLangvar($mysidia->lang->select);
        
        
$chooseFrom = new Form("chooseform""uses""post");
        
$adoptable = new DropdownList("aid");
        
        
$ids $mysidia->db->select("owned_adoptables", array("aid"), "owner = '{$mysidia->user->username}'")->fetchAll(PDO::FETCH_COLUMN);    
        
$names $mysidia->db->select("owned_adoptables", array("name"), "owner = '{$mysidia->user->username}'")->fetchAll(PDO::FETCH_COLUMN);
        
$adoptable->add(new Option("None Selected""none"));
        
$adoptable->fill($names$ids);
        
        
$chooseFrom->add($adoptable);
        
$chooseFrom->add(new PasswordField("hidden""itemname"$mysidia->input->post("itemname")));
        
$chooseFrom->add(new PasswordField("hidden""validation""valid"));
        
$chooseFrom->add(new Button("Choose this Adopt""submit""submit"));
        
$document->add($chooseFrom);
    }
    
    public function 
sell(){
        
$mysidia Registry::get("mysidia");
        
$document $mysidia->frame->getDocument();
        
$item = new PrivateItem($mysidia->input->post("itemname"), $mysidia->user->username);   
        if(
$item->iid == 0) throw new InvalidIDException("It appears that you do not have this item in your inventory.");
        
        if(!
$mysidia->input->post("quantity")){
            
$document->setTitle($mysidia->lang->global_action_title);
            
$document->addLangvar($mysidia->lang->sell_empty);
        }
        elseif(
$item->quantity $mysidia->input->post("quantity")){
            
$document->setTitle($mysidia->lang->global_action_title);
            
$document->addLangvar($mysidia->lang->sell_quantity);
        }
        else{
            
$item->sell($mysidia->input->post("quantity"));
            
$document->setTitle("Transaction Completed");
            
$document->addLangvar("{$mysidia->lang->sell}{$mysidia->input->post("quantity")} {$mysidia->input->post("itemname")} {$mysidia->lang->sell2}");
        }    
    }
    
    public function 
toss(){
        
$mysidia Registry::get("mysidia");
        
$document $mysidia->frame->getDocument();
        
$item = new PrivateItem($mysidia->input->post("itemname"), $mysidia->user->username);  
        if(
$item->iid == 0) throw new InvalidIDException("It appears that you do not have this item in your inventory.");
        
        if(
$mysidia->input->get("confirm")){
            
$item->toss();
            
$document->setTitle($mysidia->lang->global_action_complete);
            
$document->addLangvar($mysidia->lang->toss.$mysidia->input->post("itemname").$mysidia->lang->toss2);
            return;
        }
        
        
$warning "Are you sure you wish to toss {$mysidia->input->post("itemname")}?<br> 
                    It will be permanently removed from your inventory, and this action cannot be undone!<br>"
;
        
$document->setTitle("Confirm your Action");
        
$document->add(new Comment($warning));    

        
$confirmForm = new FormBuilder("confirmform""toss/confirm""post");
        
$confirmForm->buildPasswordField("hidden""action""toss")
                    ->
buildPasswordField("hidden""itemname"$mysidia->input->post("itemname"))
                    ->
buildButton("Please Toss""confirm""confirm");
        
$document->add($confirmForm);            
    }
}
?>

@Annatar
That would be horrible! You have a lot of custom stuff there no?

Missy Master 08-14-2014 08:14 PM

I have a lot I've worked on for it, yes, and I have three more sites I really want to open, and use our great code here!

But no use of items means I cant do anything at all right now.

Ah, thanks for posting that!



The strangest thing is, sell works, and toss .. it's just use.

Hwona 08-14-2014 08:22 PM

Wait....
I'm going to make a quick list of differences that I can find...
1. only the use function "returns" anything
2. only the use function works with adoptables

Missy Master 08-14-2014 08:25 PM

Aww it wont work for me, hehehe.

Hwona 08-14-2014 08:37 PM

Quote:

Originally Posted by Annatar (Post 30962)
Aww it wont work for me, hehehe.

I believe it's because you're using v.1.3.4. :L

Missy Master 08-14-2014 08:40 PM

Yep I think so :)

Hall of Famer 08-15-2014 05:53 AM

I have an account on your site now, I've purchased some items and I will adopt a few pets too. With this, I will try to reproduce the same white screen as you've encountered. I am sure theres a way to find out, I will let you know once I figure out. ^^

Missy Master 08-15-2014 09:32 AM

Great!!

It took me ten times on one account and 20 on another to get it to happen, but once it did, there was no going back. Most of the members cant use items it seems now ...

Hwona 08-15-2014 10:30 AM

@Annatar
Wait... do you think it's a problem with the database?

Missy Master 08-15-2014 10:45 AM

Well, I really cant tell, because I've looked at everything after this happens, and right before, too, noted what all the user, item, inventory, banning, all those tables for all that, and I can't find one thing different in anything.

But it's likely some obscure value that gets inserted, or possibly there is a 'cut off' ?? Of how many items can be used?

It might possibly be something in where the amount of clicks and leveling gets cut off, there's something that seems to reach a cut off and then you error out and white out. Syntax is bad for it or something, but once you reach this critical point, you get no more chances then lol.

And bingo make a new account and log in, and you're right as rain.

Can't be ip based.

Hwona 08-15-2014 10:52 AM

@Annatar
I tried over 30 times on my test site...
Nothing. Everything works.
What browser are you all using and how many items, pets, and users do you have?

Missy Master 08-15-2014 10:55 AM

I know it isn't just me since others are having it happen on their sites, and once it happens, it doesn't matter what browser or anything, I have used Chrome, FF and IE.

Happens on all of them :(

I have about 20 users, 15 items, 10 pet species.

Try making an account on Simmland and see if it happens? I had to do it 15 times but it did happen again, and then 20 times later on a second account.

Hwona 08-15-2014 10:57 AM

Re
 
Quote:

Originally Posted by Annatar (Post 30982)
I know it isn't just me since others are having it happen on their sites, and once it happens, it doesn't matter what browser or anything, I have used Chrome, FF and IE.

Happens on all of them :(

I have about 20 users, 15 items, 10 pet species.

Try making an account on Simmland and see if it happens? I had to do it 15 times but it did happen again, and then 20 times later on a second account.

I'll try on your site... What kinds of items have you been using? O.o

Missy Master 08-15-2014 11:03 AM

I've used Mature ( kicks a baby to level 3 ), and toys.

Let me paste the codes here for the toys for you :)

This is from functions_items.php, and is the basic outlay for all my add on toys. They work fine over and over, and then --- they don't. The only diff for any of these is they insert toys into different 'slots' to allow for more to be seen at a time.

Possibly it's reaching a cut off from the leveling of clicks or something? But then, why am I not the only one having it happen on their site ...
Code:



function items_click4($item, $adopt){
  $mysidia = Registry::get("mysidia");
  $newclicks = $item->value;
  $mysidia->db->update("owned_adoptables", array("totalclicks" => $newclicks), "aid='{$adopt->aid}'and owner='{$item->owner}'");

  $mysidia->db->update("owned_adoptables", array("toy_1" => $newclicks), "aid='{$adopt->aid}'and owner='{$item->owner}'");
  $note = "You added a {$item->itemname}, and the Pet has just received a {$item->value}<br>";
  //Now lets check if the adoptable has reached a new level.
 
  $ownedAdopt = new OwnedAdoptable($adopt->aid);
  if($ownedAdopt->hasNextLevel()){
      //new level exists, time to check if the total clicks have reached required minimum clicks for next level.
        $nextLevel = $ownedAdopt->getNextLevel();
        $requiredClicks = $nextLevel->getRequiredClicks();
    if($newclicks >= $requiredClicks and $requiredClicks != 0 and $requiredClicks != ""){
            // We need to level this adoptable up...
        $mysidia->db->update("owned_adoptables", array("currentlevel" => $nextlevel), "aid ='{$adopt->aid}' and owner='{$item->owner}'");         
        $note .= "And it has gained a new level!";
    }
  }

  //Update item quantity...
  $delitem = $item->remove();
  return $note;
}


Hwona 08-15-2014 11:05 AM

@Annatar
Okay... well, I tried this on canis, but I don't seem to be having any problems... O.o
Are you only having this on SIMLAND?
Edit: Can you test it out on my site?


All times are GMT -5. The time now is 09:35 AM.

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