[Plugin: LeagueManager] Scores entered not holding
I have being trying to update scores for my league using the MatchPlan for the specific league. Every time I enter the score and click update it vanishes. The points assigned for each league stay only the match scores seem to not be retaining. Any idea what could be causing this? I get no errors or messages.
I got this exact same problem. This started when updated to the newest version (3.7). WordPress itself is up to date.
I have a similar problem too. Scores entered are no longer being retained by the plugin and the league standings do not update. It’s been working fine for a few months… very confused.
This problem still stands.
Anyone got even a clue??
WP is up to date. LeagueManager is the new version.
I have the same problem!
It makes the plugin unusable.
Happened here too, from what I can tell after updating to the latest WP version. It worked fine last season (May).
I’ve had the same problem when using the ‘default’ mode and have a lot of matches, but if I’m using ‘championship’ mode it works better, especially if I do as ‘mdotti’ suggests and filter by match day. I have one league that I had set up as default and have 48 matches and it won’t let me add scores, so it seems the two different modes work differently.
I’ve been digging into the code quite a bit lately, this is a problem that’s starting to come up in a couple of the leagues I’m working with, so hopefully I’ll find a more universal solution and can share it.
Just updated to 126.96.36.199, thinking this was fixed. It wasn’t. I’m going to find a hotfix right now and will post a solution soon.
I think this happens because the POST is too big, so the variables at the end of the POST (league_id, updateLeague in admin/matches.php) don’t get included. Because of this, the function in admin/show-league.php (lines 45-47) doesn’t get called and the update fails.
Solution: in sports/basketball.php, comment lines 187 and 190. They add 6 fields to the POST per match which causes huge overhead and doesn’t contribute to the standings at all.
That’s not enough though. In admin/show-league.php it says
!isset($_POST['doaction2'])but doaction2 is in fact set so the entire script fails. Deleting that part works just fine.
Also, several files in sports/ have a misspelling, they say
class=, you might want to fix that.
I posted this a couple of months ago about this issue:
This problem is based on a PHP update (introduced in 5.3.9) that introduced a setting to help prevent hash collision attacks. The setting is “max_input_vars” and is defaulted to be set at 1,000.
The problem with updating an entire season, or even a few weeks worth, of matches is there are a lot of variables per game and those variables add up quickly when you’re limited to 1,000.
The best solution would be to re-write the code to work on a few lines at a time instead of grabbing all the code at once and then updating game by game, and I’m looking at it to see if I can do that (keeping in mind that League Manager isn’t my plug in).
In the mean time, there are two solutions:
1). Make sure you have match days defined in the season (how many matches per season), then make sure when you add a match you have a match day assigned to the match. When you go to update matches, filter by match day so you are only working with game 12 or whatever, so that the number of updates and variables used stays under the limit. If you’ve got 36 teams in a league and you’re trying to update 18 games at a time, you might run into the problem anyway and you’ll need to see solution 2. There are a lot of reasons that this is the best option, but the best reason is that it doesn’t involved anything like code changing or server tweaking…
2). This isn’t the ideal solution because it’s bypassing a setting that’s been added to PHP to avoid a vulnerability. The solution is to increase the number of variables that can be set at one time from 1,000 to some number higher. If you have access to your server’s php.ini file and know how to modify files on a server, you can add or modify the max_input_vars setting like this:
max_input_vars = 2,500
You can also change this setting in an .htaccess file in your local word press directory like this (they are different, if you put the above code in an htaccess file you’ll get a server error):
php_value max_input_vars 2500
I’ve tested this and it does work. If you find that the number isn’t high enough, add another 500 or 1,000, but I wouldn’t recommend throwing 10,000 in right away as the purpose of the restriction was to close a PHP vunerability.
If I can figure out how to update the code to work with a group of matches at a time so that the problem goes away, I’ll update the code here.
Changing the basketball.php file will only help those that are using basketball as their sport, otherwise that file is never called. Personally, I do as that’s what my site is, basketball, but it won’t help anyone with a soccer site, etc.
Deleting the ‘!isset($_POST[‘doaction2′])’ code isn’t a solution or part of the problem. That block is part of an if-then-else that has multiple options.
Thanks for the heads up on the ‘clas’ typos, I haven’t had time to go through all the files for errors like that, so please do let me know of anything you (or anyone else) find…
- The topic ‘[Plugin: LeagueManager] Scores entered not holding’ is closed to new replies.