Jump to content

Scripts from my book don't work-Why?


guayaquil

Recommended Posts

I recently bought [i]PHP 5/MySQL Programming for the absolute beginner,[/i] because I am. I have installed PHP 5.1.4 on my Mac OS X running Apache 1.3 and it works. When I call the info, the info page shows up.

However, when I try any of the scripts from the book, they don't work. So is there a version conflct? or something about the author's syntax that's wrong? Here is the code as I use it:

<html>
<head>
<title>Hi User</title>
</head>


<body>
<h1>Hi User</h1>

<?
if (empty($username)) {
print <<<HERE
<form>
Please enter your name:
<input type = "text"
name = "username"><br>
<input type = "submit">
</form>
HERE;

} else {
print "<h3>Hi there, $username!</h3>";
} //end
?>
</body>
</html>

If it is really apparent to you, then I apologize. But I am only beginning and it's frustrating if I can't even use the code in a book for beginners. help. This is what I get:
[img]http://www.el-cordovez.com/result.gif[/img]
Link to comment
https://forums.phpfreaks.com/topic/17927-scripts-from-my-book-dont-work-why/
Share on other sites

That's because the script in your book relies on REGISTER_GLOBALS being turned on, when very likely your csetup has it off (default setting of PHP nowadays).
Use $_REQUEST['username'] instead of just $username and it should work better.

I used $_REQUEST because I don't remember if the default method for a form is GET or POST, so $_REQUEST will work either way. But better would be to specify the method in the <form> tag:

print <<<HERE
<form name="myform" method="post" action="$_SERVER['PHP_SELF']">
(...)

Then you can use $_POST['username'].
[quote author=guayaquil link=topic=104727.msg417960#msg417960 date=1155908601]
Thanks cook, but since I am going to be using so many scripts from this book, shouldn't I just turn on Register_Globals?
[/quote]

No. You should probably throw away the outdated book :)

Seriously - program properly rather than including a potential security problem. Register_globals is set as default OFF for very good reasons.
[quote author=guayaquil link=topic=104727.msg417995#msg417995 date=1155911271]
how can it be updated the title says PHP 5.
[/quote]

That's a question for the authors. register_globals set to OFF has been the default setting in php for quite a long time.  Sounds like an old book with a new cover and a few php5 functions thrown in.
NOOOOO! don't tell me I wasted €31 on an outdated book. So it's the difinitely the REGISTER_GLOBALS? the issue? Bummer. This is not very encouraging. Who knows what else would be outdated in the book. Is there a reference for updated tags/comands, etc. for PHP 5?
  • 2 weeks later...

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.