• Visitors can check out the Forum FAQ by clicking this link. You have to register before you can post: click the REGISTER link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. View our Forum Privacy Policy.
  • Want to receive the latest contracting news and advice straight to your inbox? Sign up to the ContractorUK newsletter here. Every sign up will also be entered into a draw to WIN £100 Amazon vouchers!

Weirdness passing variable to PHP page

Collapse
X
  •  
  • Filter
  • Time
  • Show
Clear All
new posts

    Weirdness passing variable to PHP page

    Let's say I enter a URL into a browser like this:

    Code:
    www.fred.com/mypage.php?thingy=cukker
    Then on mypage.php I want to display the value of "thingy" I do this
    PHP Code:
    <?
    echo $thingy;
    ?>
    This was working fine on Webserver A (test) but when I transferred the site to Webserver B (live) $thingy was displayed as a blank value, so I had to change the code to do this:
    PHP Code:
    <?
    echo $_GET["thingy"];
    ?>
    Any ideas why this might be so? Which is the "correct" method?

    TIA

    #2
    not a PHP expert but...

    it looks like a config difference between the 2 web servers
    Thingy isn't defined as a variable, it's being passed in through the URL, webserver A can ignore that fact, webserver B demands a more explicit variable definition.

    I'm sure Nick will be online later to answer properly (and recommend a Mac )
    Coffee's for closers

    Comment


      #3
      Probably some stupid PHP setting, always use explicit _GET or something - first method was bad because variable was essentially not set.

      Comment


        #4
        Originally posted by Platypus View Post
        Let's say I enter a URL into a browser like this:

        Code:
        www.fred.com/mypage.php?thingy=cukker
        Then on mypage.php I want to display the value of "thingy" I do this
        PHP Code:
        <?
        echo $thingy;
        ?>
        This was working fine on Webserver A (test) but when I transferred the site to Webserver B (live) $thingy was displayed as a blank value, so I had to change the code to do this:
        PHP Code:
        <?
        echo $_GET["thingy"];
        ?>
        Any ideas why this might be so? Which is the "correct" method?

        TIA
        The first server has the register_globals setting enabled, the second doesn't.

        The second is the correct way; register_globals is a serious potential security hole, and its use has been deprecated since version 4.2.0.

        Comment


          #5
          Originally posted by NickFitz View Post
          The first server has the register_globals setting enabled, the second doesn't.

          The second is the correct way; register_globals is a serious potential security hole, and its use has been deprecated since version 4.2.0.


          the legend lives on......

          Comment


            #6
            Originally posted by NickFitz View Post
            The first server has the register_globals setting enabled, the second doesn't.

            The second is the correct way; register_globals is a serious potential security hole, and its use has been deprecated since version 4.2.0.
            Thanks, Nick. I was hoping you'd be along to give the definitive answer

            Much appreciated

            Comment


              #7
              Originally posted by Platypus View Post
              Thanks, Nick. I was hoping you'd be along to give the definitive answer

              Much appreciated
              HTH

              Comment


                #8
                Originally posted by Platypus View Post
                Thanks, Nick. I was hoping you'd be along to give the definitive answer

                Much appreciated

                Comment


                  #9
                  You could probably get round it by running the following command at the top of the page:
                  Code:
                  extract($_GET);
                  However you really do not want to do this as from a security point of view it is absolute madness......

                  Comment

                  Working...
                  X