Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Issues After Update from 24.03 to 24.11

    Scheduled Pinned Locked Moved Captive Portal
    18 Posts 3 Posters 1.1k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • C
      Cornel
      last edited by

      Solved - very obvious reason.... I should have used:

      https://captive.xxxxxx.org:8003/index.php?zone=wireless_guest

      If I ommit the /index.php?zone=wireless_guest this error is thrown which is obvious if you look at what line 1746 does.

      So probably this is also the explanation for the situation of @mcconju

      GertjanG 1 Reply Last reply Reply Quote 0
      • GertjanG
        Gertjan @Cornel
        last edited by

        @Cornel said in Issues After Update from 24.03 to 24.11:

        https://captive.xxxxxx.org:8003/index.php?zone=wireless_guest

        You should use that where ??

        No "help me" PM's please. Use the forum, the community will thank you.
        Edit : and where are the logs ??

        C 1 Reply Last reply Reply Quote 0
        • C
          Cornel @Gertjan
          last edited by

          @Gertjan When I was testing how my custom captive portal html code was shown. I had some issues with my portal page and was reloading it often to check how my html was shown. Somehow along the way I got distracted, closes the browser window and entered just the captive portal url without the /indec.php?zone= part. Then this error is thrown.

          1 Reply Last reply Reply Quote 0
          • GertjanG
            Gertjan @Gertjan
            last edited by

            About the array issue :

            @Gertjan said in Issues After Update from 24.03 to 24.11:

            Would love to test drive this, and I'll do so tomorrow (23h00 here now). Now, I can't, hotel is loaded, so is my captive portal. Talking down the portal down is plain dangerous.

            I've added a second interface my portal :

            64f93a4d-c00c-4a5b-9c3c-99c5bfac2875-image.png

            No fire, no smoke. Could login just fine.

            @Cornel said in Issues After Update from 24.03 to 24.11:

            which is obvious if you look at what line 1746 does.

            Line 1746 use the variable $cpzone, which is mandatory.
            In your case, $cpzone will be set to "wireless_guest".

            But the page called /index.php?zone=wireless_guest

            and look, at what happens at line 38 in index.php :

            $cpzone = strtolower($_REQUEST['zone']);
            $cpcfg = config_get_path("captiveportal/{$cpzone}", []);
            
            

            and a couple of lines lower : if there is no captive portal config the the zone name, bail out.

            if (empty($cpcfg)) {
            	log_error("Submission to captiveportal with unknown parameter zone: " . htmlspecialchars($cpzone));
            	portal_reply_page($redirurl, "error", gettext("Internal error"));
            	ob_flush();
            	return;
            }
            

            Without a zone parameter you would find many lines telling you that "Submission to captiveportal with unknown parameter zone: ". There won't be any PHP errors. index.php would have been bailed out long before that.

            You can test the portal pages with

            a852f4b4-6daf-424e-9c8a-b5f430db70a0-image.png

            No "help me" PM's please. Use the forum, the community will thank you.
            Edit : and where are the logs ??

            C 1 Reply Last reply Reply Quote 0
            • C
              Cornel @Gertjan
              last edited by

              @Gertjan I agree that if you call the captive portal as intended it works. However if you manually open just the portal url without adding the 'query string' i.e. without '?zone=' the error is thrown. What happens in your setup when you do this?

              GertjanG 1 Reply Last reply Reply Quote 0
              • GertjanG
                Gertjan @Cornel
                last edited by Gertjan

                @Cornel said in Issues After Update from 24.03 to 24.11:

                What happens in your setup when you do this?

                ๐Ÿ‘ -> ๐Ÿ‘ -> ๐Ÿ˜ 

                Thanks for insisting.

                I saw your PHP ERROR: Type: 1, File: /etc/inc/captiveportal.inc, Line: 1746, Message: Uncaught TypeError: explode(): Argument #2 ($string) must be of type string, array given in /etc/inc/captiveportal.inc:1746
                Stack trace:
                #0 /etc/inc/captiveportal.inc(1746): explode()
                #1 /etc/inc/captiveportal.inc(1804): portal_ip_from_client_ip()
                #2 /etc/inc/captiveportal.inc(1825): portal_hostname_from_client_ip()
                #3 /usr/local/captiveportal/index.php(60): portal_reply_page()
                #4 {main}
                  thrown
                

                The test :

                if (empty($cpcfg)) {
                

                line 59, fails to do it job. [edit : and I'm wrong, line 59 works just fine, see next posts ]
                I'll get back to this.

                No "help me" PM's please. Use the forum, the community will thank you.
                Edit : and where are the logs ??

                C 1 Reply Last reply Reply Quote 0
                • C
                  Cornel @Gertjan
                  last edited by

                  @Gertjan

                  Thanks for insisting.

                  You are welcome ๐Ÿ˜ƒ

                  line 59, fails to do it job.

                  I'll get back to this.

                  ๐Ÿ‘ Much appreciated

                  GertjanG 1 Reply Last reply Reply Quote 0
                  • GertjanG
                    Gertjan @Cornel
                    last edited by Gertjan

                    @Cornel

                    It took me a while, but the issue was hiding in plain sight.

                    Here :

                    @Gertjan said in Issues After Update from 24.03 to 24.11:

                    #3 /usr/local/captiveportal/index.php(60): portal_reply_page()

                    When $cpcfg is empty, because the url contain an non existent or invalid "&zone=xxxxxx" parameter this gets execute :

                    	log_error("Submission to captiveportal with unknown parameter zone: " . htmlspecialchars($cpzone));
                    	portal_reply_page($redirurl, "error", gettext("Internal error"));
                    	ob_flush();
                    	return;
                    

                    It took me a while ... but found that, before everything terminates, portal_reply_page) is called and portal_reply_page() uses $cpcfg and presumes it's valid.
                    But in this case, it wasn't. hence the PHP error.

                    	// log_error("Submission to captiveportal with unknown parameter zone: " . htmlspecialchars($cpzone));
                    
                    	portal_reply_page($redirurl, "error", gettext("Internal error"));
                    	ob_flush();
                    	return;
                    

                    (A) Solution :

                    if (empty($cpcfg)) {
                    	log_error("Submission to captiveportal with unknown parameter zone: " . htmlspecialchars($cpzone));
                    	// portal_reply_page($redirurl, "error", gettext("Internal error"));
                    	echo gettext("Internal error");
                    	ob_flush();
                    	return;
                    }
                    

                    No "help me" PM's please. Use the forum, the community will thank you.
                    Edit : and where are the logs ??

                    C 1 Reply Last reply Reply Quote 0
                    • M
                      mcconju
                      last edited by

                      2e7cf51c-19da-4c93-b3b1-04891fc93115-image.png

                      Looking through the config file and everything seems correct as with yours. Yet the errors keeps coming. It's still happening...

                      GertjanG 1 Reply Last reply Reply Quote 0
                      • GertjanG
                        Gertjan @mcconju
                        last edited by Gertjan

                        @mcconju said in Issues After Update from 24.03 to 24.11:

                        the errors keeps

                        What errors ?
                        Can you show them ?
                        The same as shown above ?

                        The bug that has been found in this thread is probably already years old.
                        Yet, nobody was confronted with it.
                        And there is an obvious reason : a captive portal visitor :
                        Doesn't know that he is using a portal ...
                        Should have an access method, like a voucher code that he bought upfront, or an access code + password that he found in the hotel room. They connect to the known SSID.
                        And that's it : the login page will show up, and the portal user now sees why he held a voucher code in other other hand.

                        Nobody has to type in a 'URL' to access the portal.
                        Which means that nobody can make errors during manual typing of the portal login page access URL. As this is never needed.

                        And that's why the issue never popped up before.
                        The admin make the portal work, and that's it.

                        if you need to test the login page : click here :

                        b6e63910-5759-4adc-a1b6-dc842b9dd21c-image.png

                        Anyway, the fault has been located.
                        The fault has been located.
                        3 options now:
                        Do nothing, and don't type bad URLS, and you'll be fine. A future upgrade will handle the issue.
                        Do what I've shown above.
                        if there is a third option needed : tell me all about it.

                        No "help me" PM's please. Use the forum, the community will thank you.
                        Edit : and where are the logs ??

                        1 Reply Last reply Reply Quote 0
                        • C
                          Cornel @Gertjan
                          last edited by

                          @Gertjan said in Issues After Update from 24.03 to 24.11:

                          @Cornel

                          It took me a while, but the issue was hiding in plain sight.

                          Thx - glad we now fully understand what was happening.

                          1 Reply Last reply Reply Quote 0
                          • GertjanG Gertjan referenced this topic on
                          • GertjanG Gertjan referenced this topic on
                          • First post
                            Last post
                          Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.