Today I will give you a summary of the headaches for PHP beginners. The 14 questions raised below hope to be helpful to PHP beginners.
1. Variables cannot be passed between pages
Get, post, session automatic global variables are turned off in the latest PHP version, so you need to start from the previous page To obtain the submitted variables, use $_GET['foo'], $_POST['foo'], $_SESSION['foo']. Of course, you can also modify the automatic global variables to be on (php.ini is changed to register_globals = On); considering compatibility, it is better to force yourself to become familiar with the new writing method.
2. Using the get method to pass Chinese parameters to apache2 under Win32 will cause an error
test.php?a=Hello&b=Hello
Passing parameters will cause an internal error
Solution: "test.php?a=".urlencode(Hello)."&b=".urlencode(Hello)
3. Session under win32 does not work properly
php.ini default session.save_path = /tmp
This is obviously a configuration under linux, and php cannot be read under win32 Writing session files makes the session unusable
Just change it to an absolute path, for example session.save_path = c:windowstemp
4. Display error message
When display_errors in php.ini = On and error_reporting = E_ALL, all errors and prompts will be displayed. It is best to turn it on during debugging for error correction. If you use the previous php writing method, the error message is mostly about undefined variable. There will be a prompt when a variable is called before it is assigned a value. The solution is to detect or shield it.
For example, to display $foo, you can if(isset($foo)) echo $foo or echo @$foo
5. Mail() cannot send emails under Win32
The sendmail configured under Linux can be sent. Under win32, you need to call the smtp server to send emails. Modify the SMTP = ip of php.ini //ip is an smtp server without verification function (online Hard to find), the best solution for sending emails in PHP is to use socket to send directly to the other party's email server without forwarding the server.
6. If the password is not set for the initial installation of mysql, you should use
update mysql.user set password="yourpassword" where user="root"
Change password
7. header already sent
This error usually occurs when you use HEADER. It may be due to several reasons: 1. You PRING or ECHO before using HEADER 2. There is a blank line in front of your current file 3. You may have INCLUDEd a file and there is a blank line at the end of the file or this error will occur in the output.
8. There is no change after changing php.ini
Restart the web server, such as IIS, Apache, etc., and then the latest settings will be applied
9. PHP is installed on 2003 (the installation method of ISAPI is requested by experts for advice)
PHP4’s php4isapi.dll seems to conflict with 2003 and can only be installed in CGI mode:
Step 1, first install an installation program under www.php.net. I installed: php-4.2.3-installer.exe. You can also find the latest version and install php-4.2. Before 3-installer.exe, make sure your IIS6.0 is started and accessible. After installation, go to the default website-->Application configuration;
Step 2: Click web service extension-->New web service extension;
Step 3: Extension-- >php, then add;
Step 4: Find the path to php.exe and add it;
Step 5: Confirm;
Step 6: Select php service extension and click Allow.
10. Sometimes the sql statement does not work and the database operation fails
The easiest debugging method is to echo the sql sentence and see what the value of the variable is. No.
1