Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


string last won the day on May 25

string had the most liked content!

Community Reputation

37 Excellent

About string

  • Rank

Recent Profile Visitors

6925 profile views
  1. Only the online encoder supports PHP 8.1. I think it is safe to assume that WHMCS does not use the online encoder, but the "standalone" encoder product, for which no update has been published yet.
  2. Oh, thanks for tagging me @Danse The module of wsa probably performs a similar task, so similarities in the description are normal, but yes, I also recognize a few "coincidences". The example you brought is awesome 😂. But don't worry, no matter if it's "wordspinned" like you say (the one section is obviously copied 1:1) or not, I'm happy if our modules (and textes) give inspiration. I really don't mind at all. The only reason I'm even going into this is because of this: So this is the first time I've heard that. The module is used well and when there were reports that something was not recognized, it was always due to the customer. There has been an enormous amount of time invested in self-developed tricks to trick the Google / Hotmail image proxy, for example, even with self-hosted domains and so on. First taking over the text (at least partially, see example of @Danse), and then making wild claims - I actually find that a bit cheeky. I would like to have examples with which provider our module doesn't work, but works with yours 🤷‍♂️.
  3. If I don't find something right away, I search for it directly in the database. The SQL queries would be: SELECT * FROM `tbltickets` WHERE `message` LIKE '%123456%' SELECT * FROM `tblticketreplies` WHERE `message` LIKE '%123456%' SELECT * FROM `tblnotes` WHERE `note` LIKE '%123456%' Via phpMyAdmin this also works via the "Search" link in the navigation bar (see attachment). Based on the output, you will find the ID of the ticket / customer. While not as nice as a reasonably integrated search in WHMCS, this works well.
  4. The error message clearly indicates that PHP lacks the permission to create the directory. The most common explanation is that the owner (chown) or permission (chmod) is not correct. I don't think it's the permissions, since the permissions are usually set to 0755 for folders and 0644 for files by default. I'm also unsure why the health check would even attempt to create this directory. Since WHMCS is encrypted, I can't figure that out, but maybe the health check will do that if the configured cron directory does not exist. So I would recommend that you also double check the path you configured.
  5. Looks like a permission issue, probably an incorrect owner of the directories / files. First you should check under which user PHP runs, then check if the owner is correctly set for your WHMCS directory and fix it if not (`chown -R USER:GROUP /path/to/whmcs`).
  6. The problem is that the IDs of the rows in the table start again at 1. To solve the problem you have to adjust the ID of the affected accounts (probably in tblusers) and then you must adjust the AUTO_INCREMENT value of the table so that newly assigned IDs are automatically higher than the previous ones. However, I can't tell you exactly which tables you need to edit. Without insight into the current structure that would be a lot of guessing with multiple eventualities. If you are not familiar with the WHMCS database schema or don't have a good understanding of databases, it probably makes sense to import a working backup or contact an experienced database administrator. Unless you have solved the problem already, I can also imagine that sooner or later even more serious problems will occur. Because if an ID already exists in the database, which would actually be the ID of the next entry, WHMCS will abort in the middle of the action. By "in the middle of an action" I mean for example the creation of a customer account. WHMCS does not really have an error handling for such errors, which will cause even more inconsistencies in the database. But yes, here I am already guessing - it all depends on the exact changes made.
  7. Here you go 🙂 Save this file under /includes/hooks/adminpageSkipSettingsAuth.php (you can change the filename however you want): https://pastebin.com/pRvVzbkn
  8. Yes, that would be the way it should be done. As an alternative you can rebuild the WHMCS module params using this code: https://pastebin.com/SgaBKj2G ModuleBuildParams() should return exactly the same array as you see it in your module functions. But this function is not officially documentated, so I don't know if this function will be changed in a later version, or even exist at all.
  9. If the spam comes from unregistered users, you could enable the "Clients Only" option in each support department: https://docs.whmcs.com/Support_Departments This way, only logged in users will be able to send a contact request. WHMCS will not remove the "Contact Us" link, but when someone clicks on it, they have to log in to create a request.
  10. I see 3 possible solutions: Output the json data at the _ClientArea function Output the json data using a newly created php file Output the json data using a hook Output the json data at the ClientArea function This is the easiest way. An example: https://pastebin.com/vSZ9Aie8 The disadvantage is the SSL checker from WHMCS. WHMCS checks for each _ClientArea function execution if a valid SSL certificate exists (and that can be very slow). However, I believe this check is only executed if the last check showed that no valid SSL certificate exists on the domain. And maybe the behavior has changed in the meantime - anyway, when the SSL checker came out there was this problem and personally I went over using the next option, which should also be somewhat less resource-heavy, because unwanted hooks are not executed. Not that it will make a significant performance difference, but well, if you're running this every few seconds and also possibly by multiple clients at the same time, it's certainly not wrong to pay attention to it as well, or at least be informed about it. Output the json data using a newly created php file You create a new file in your module directory, include the init.php of WHMCS (init.php is in the WHMCS root directory) so you can access all the WHMCS stuff (like the Eloquent ORM) and then call this file via XHR: https://pastebin.com/rYKTYLEk Important: Unlike the ClientArea function, you must ensure that the client has permission to access the service. So if you have a parameter for the service ID, you have to make sure that the user ID (e.g. $_S|E|S|S|I|O|N['uid'] (remove '|' - WHMCS WAF bypass, sorry)) belongs to this service. Otherwise, a customer could view the data of other customers by just changing the ID in the paramters. Personally, I think this is the best approach, because you avoid the mentioned SSL checker problem of WHMCS and it is quite likely that this will also work in future WHMCS versions without any problems. Output the json data using a hook It is also possible that you send output to the client via hook. Here is an example: https://pastebin.com/F9amWiJg I would not go this route if you have access to the source code of the module. It's easy to get the service model: https://pastebin.com/PBBxURX7 Side note Ideally, you create a small HTTP controller to handle the AJAX requests, otherwise it gets confusing if you send many different XHR requests. I'm sorry for posting the code samples on pastebin and to obfuscate some parts. The WHMCS web application firewall blocks my post every time no matter how I modify the examples. I have tried for 15 minutes to get it working. A tech board where you can't post code correctly. Ridiculous, I can't even write SESSION correctly with a dollar sign in front of it. 🤷‍♂️🤦‍♂️
  11. No. You don't define the datetime, WHMCS does. While the second is stored in the database, WHMCS does not output it. Since the the module debug log page is not an editable template file, you cannot change the output value. Well, technically you can change it by JS, but that seems unreasonable to me. Instead, I would just store the timestamp somewhere else (action or request).
  12. There is no addon for this because it is time-consuming to identify and fix all edge cases . Yes, a developer would probably see first successes quickly, but the edge cases will make up 99% of the work. And such special cases must be solved in cooperation with the buyer of such a module. And that's where the issues begin - often customers are uncooperative, throwing down any scraps of words as a "full issue description" and so on. And even if it's a problem, which happens maybe one in 100 times, an "ASAP" solution is expected when someone spends money on a module. So it's not really an option to say, "yeah, that's just the way it is" without risking that the client going nuts. In addition - and this is the real reason - the market for such an addon is too small and one can't charge a lot for it, otherwise no one of the few interested people would buy it. In short, it makes no economic sense to invest a lot of time in something like this. If such a module appears on the marketplace, it will probably be from someone who has solved the problem for himself and wants to sell the module. If you want a solution, you will have to find a developer. And you will certainly have to pay a certain amount of money for the development - i don't think developers are just waiting to take on this job, as it's a boring, time-consuming matter that needs to be paid accordingly. Sorry if this sounds too direct, but that's the way it is 😕. At least in this matter I can reassure you. Of course, we never know what WHMCS does next, but if things continue as usual, that module would rarely need updates once it is working as intended.
  13. Pinkmare's answer is correct. If you want to encode your code with ionCube, you need the buy the encoder. The Licensing addon from WHMCS does not encode code, it only offers licensing options for your software. If you don't need to encrypt files on a regular basis, ionCube's online encoder may be an alternative. It is very cheap (starts at 0.50 USD per archive).
  • Create New...

Important Information

By using this site, you agree to our Terms of Use & Guidelines and understand your posts will initially be pre-moderated