
Wizacr
Senior Members-
Posts
22 -
Joined
-
Last visited
Everything posted by Wizacr
-
This should be a last resort only. Maintaining your own NS record for Ifastnets server would require you to be consistently up to date with their DNS servers IPs, they hardly change but when they do you'd have to manually update yours, this can cause a large amount of downtime. There are methods to automate this but I won't be covering this due to complexity in setup and how your records will be stored. As far as how to set them up, it depends on registrar. An NS record is nothing more than a typical A record, this will satisfy most registrars, however some will require them to be "global" or "registered nameservers" depending their language used. If this is required you'll have to check with your domain registrar on how to set them up, be aware that it may require the purchase of another domain. My suggestion, refrain from this method unless deemed absolutely necessary by your registrar. Communicate consistently with your registrar as you're more likely to solve it with them. Ifastnet is less likely to be helpful in this situation.
-
Edit: your image shows the same nameserver listed twice, both ns1083.ifastnet.com. Make sure you are using two separate nameservers, if you are continue reading. This issue appears to be a mix as best I can tell. The problem is likely that your domain registrar wants the SOA record setup correctly, in this case ifastnet has them set as root.localhost, but the first line should be a contact email address hence why the registrar kicks you back. This is not atypical practice but it is not standard for all registars, this would be my assumption as to why there's confusion. With this said, as it's not an issue outside of your particular instance, I'd wager a correction is not likely. I would seek help from the registrar to see if they'll override this for you. If all else fails, unfortunately my only guidance could be to setup an NS record of your own pointing to Ifastnets particular IPS and maintaing them, or reach out to other registrars that might help.
-
Signup not working due to IP change from iFastNet
Wizacr replied to Ulti's topic in MyOwnFreeHost General
Your site does not utilize Cloudflare. This being known, it looks to be an issue on your users side. They could be using a VPN or something such as Cloudflare WARP, you should request that if anything such as these is active that they disable them and try again. If this does not fix it, their issue goes beyond the support you can provide and they should speak with their own ISP. -
Signup not working due to IP change from iFastNet
Wizacr replied to Ulti's topic in MyOwnFreeHost General
This is likely because your site may be protected with Cloudflare. The 172 address is a Cloudflare IP and the 58 address is with Hong Kong Telecom. When your site is protected with Cloudflare the users IP is not passed properly with cached pages. If you're using Cloudflare and this sounds like the case to you, Cloudflare has documentation on how to prevent this. -
VistaPanel-SB - A SiteBuilder Addon For VistaPanel
Wizacr replied to MeTooIDK's topic in MyOwnFreeHost General
This is interesting, I'll definitely have to dive into this problem more and see what causes this to happen when I have the time. If I come up with a solution to negate a time delay I'll be sure to provide it here. -
VistaPanel-SB - A SiteBuilder Addon For VistaPanel
Wizacr replied to MeTooIDK's topic in MyOwnFreeHost General
I've done very limited work within the VistaPanel so I'm making some guesses here. Looks like the code I modified works in Chrome without issue, however to get it to act appropriately in FireFox I had to make sure the code was in the "bottom advert" portion. -
VistaPanel-SB - A SiteBuilder Addon For VistaPanel
Wizacr replied to MeTooIDK's topic in MyOwnFreeHost General
The site builder element is rendered after the page is loaded from the PAGE.appGroups array. This means that you can not modify any element until after the page has been completely loaded since it simply doesn't exist yet. This is why your delay works. My suggested method to have scripts run as expected is to run them after the page has been loaded. Below is an example. function spro() { document.getElementsByTagName("footer")[0].innerHTML += ` <div class="modal fade" id="sb" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> <h4 class="modal-title" id="myModalLabel">Entering SiteBuilder (Site.Pro</h4> </div> <div class="modal-body"> <div class="alert alert-warning" role="alert"> <span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span> <span class="sr-only">Recommened:</span> Upgrade to Premium Hosting for more features,more faster! </div> <form method="POST" action="https://buildall.onrender.com/main"> <label for="ftp_user">FTP Username:</label><br> <input class="form-control" type="text" id="ftp_user" name="ftp_user" ><br> <label for="ftp_password">FTP Password:</label><br> <input class="form-control" type="text" id="ftp_password" name="ftp_password" ><br><br> <label for="domain">Domain Name:</label><br> <input class="form-control" type="text" id="domain" name="domain"><br> <label for="ftp_host">FTP Host:</label><br> <input class="form-control" type="text" id="ftp_host" name="ftp_host" ><br><br> <label for="builder_upload">Domain Directroy (Example: subdomain.web.net/htdocs/):</label><br> <input class="form-control" type="text" id="builder_upload" name="builder_upload" ><br><br> <input type="submit" value="Go!" class="btn btn-primary"> </form> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> </div> </div> </div> </div> ` var a = document.getElementById("icon-sitereptile") a.setAttribute("data-toggle", "modal"); a.setAttribute("data-target", "#sb"); a.setAttribute("href", "#sb"); var b = document.getElementById("item_sitereptile") b.setAttribute("data-toggle", "modal"); b.setAttribute("data-target", "#sb"); b.setAttribute("href", "#sb"); b.setAttribute("ng-href","#sb"); } window.addEventListener("load", function() { spro(); }); I simply wrapped the entire code within a function, then called that function with an event listener that looks for the page to be fully loaded. -
Set blacklisted email domains
Wizacr replied to duckhost.ml's topic in MyOwnFreeHost Feature Request
I went a bit over board in that. The idea remains relatively the same just minus the multi step form. -
Set blacklisted email domains
Wizacr replied to duckhost.ml's topic in MyOwnFreeHost Feature Request
Setting this up would be relatively simple, but to implement properly may be more challenging. Assuming you're using the default signup form, you may find it easier to create this using a multi-step process. One where your first step is to enter your email then the user submits this and you can check it against your own list of 'bad' email domains, if they check out proceed to take them to the remainder of the sign up form. The reason for a multi step process is to properly send the captcha back to iFastnet for registration. One glaring issue is the ease that the user can modify the form data before submitting after you've processed your checks. We can ignore this, as it is not typical for bots or random fly by users. However, as you learn and get familiar with PHP etc. this should be resolved. To break this down a bit, you would have step 1 be an input textbox asking for the users email address, the user would submit this and on the following page you can use PHP to check their email domain against a list of 'bad' email domains. A quick example script for this would be: $e = $_POST['email']; if ($e) { $e = explode('@', $e); $blacklist = array('wzcmail.com', 'temp-mail.org', 'otherbademail.com'); if (in_array($e['1'], $blacklist)) { die('Error.'); //Don't display the remainder of the form, ask the user to use a real email address. } else { echo 'Good to go.'; //Continue the page asking for remaining information. } } If the email domain is in your blacklist the script would prevent them from seeing the remainder of the form blocking their registration. If their email domain is not on your blacklist they would continue to sign up properly. You would then store the email in a hidden input box with the remainder of the form. The basic components you'd need to learn and understand in PHP for this script are: IF statements explode() Arrays in_array() You can find more on these from sites such as w3schools.com. I hope this helps you understand what you'll need learn to set this up on your site, creating your own solutions to problems is the best way to begin learning. -
Your solution will work, however, here's another solution that will modify the actual array as well as allow you to modify search text etc. <script> function fr(k, u, d, a) { for (var i=0; i < a.length; i++) { for (var x=0; x < a[i].items.length; x++) { if (a[i].items[x].feature === k) { if (d === 'url') a[i].items[x].url = u; if (d === 'itemdesc') a[i].items[x].itemdesc = u; if (d === 'searchtext') a[i].items[x].searchtext = u; } } } } fr('sitereptile', 'https://google.com', 'url', PAGE.appGroups); fr('sitereptile', 'My Builder', 'itemdesc', PAGE.appGroups); fr('sitereptile', 'build', 'searchtext', PAGE.appGroups); </script> This will change the SiteBuilder URL to "https://google.com", the text to "My Builder" and the search text to "build". I did a quick test and it worked fine.
-
File Manager - CSS badly taken into account [Solved]
Wizacr replied to Leg2027's topic in Free Hosting General
Your browser should not be cacheing an entire HTML file. When you revisit a site, your browser receives the HTML file from the server everytime. The browser checks to see what assets that HTML file links to and whether it has them cached or not. Having your browser cache an HTML file would be considered bad practice and thus is not a default action. -
File Manager - CSS badly taken into account [Solved]
Wizacr replied to Leg2027's topic in Free Hosting General
You can manually append a version number (if you will) to your CSS url that will cause the browser to update it as if it was a new file. Just add ?v=X.XX after style.css (see examples below) to force this behavior. So for each update to your css file change the version number in your main HTML file, this will cause every users browser to recache the css file. Example: <link rel="stylesheet" href="style.css?v=1.0"> Upon update: <link rel="stylesheet" href="style.css?v=1.1"> -
File Manager - CSS badly taken into account [Solved]
Wizacr replied to Leg2027's topic in Free Hosting General
When you visit a website your browser will cache certain files (in this case your CSS file) to limit bandwidth usage on both the user and server ends. When you've made changes to a cached file, use CTR + F5 to ignore your browsers cache and reload all content from the server. -
<script> remove = ["sitereptile"]; function find(k, a) { for (var i=0; i < a.length; i++) { for (var x=0; x < a[i].items.length; x++) { if (a[i].items[x].feature === k) { a[i].items[x] = undefined; if (a[i].items[x] === undefined) { a[i].items.splice(x, 1); } } } } } function remail(l) { for (var e=0; e < l.length; e++) { if (l[e].desc === 'Email') { l[e] = undefined; if (l[e] === undefined) { l.splice(e, 1); } } } } remove.forEach(item => find(item, PAGE.appGroups)); remail(PAGE.appGroups); </script> I think I understand what's needed here, this code should provide the desired functions. You can add the feature name in the "remove" array to remove any other individual icons. The second function "remail()" removes the entire email portion. This is tested to work.
-
CSS would be the preferred method, not sure why a JS solution was being sought after. I'll leave a CSS solution here for whomever wants it. <style> #item_sitereptile, #icon-sitereptile, #email-group, #soft_div-group, #email-drop-area { display: none; } </style>
-
It works, I recommend using the "bottom advert" box for these things.
-
<script> const r = [ 'item_sitereptile', 'icon-sitereptile', 'email-group', 'soft_div-group', 'email-drop-area' ]; window.addEventListener("load", function() { r.forEach(remove); }); function remove(item) { document.getElementById(item).style.display = "none"; } </script> This should take care of webmail and the website builder, you can add any further elements to the array that you'd like to remove. EDIT: Added an event listener to wait until page is complete before running.