Home  >  Article  >  Backend Development  >  Summary of frequently asked questions for php beginners

Summary of frequently asked questions for php beginners

WBOY
WBOYOriginal
2016-07-25 09:12:26877browse

1. Variables get, post, and session cannot be passed. In the latest PHP version, automatic global variables are turned off, so to get the submitted variables from the previous page, you must use $_get['foo'], $_post['foo' ],$_session['foo'] to get. Of course, you can also modify the automatic global variables to on (php.ini changed to register_globals = on); considering compatibility, it is better to force yourself to become familiar with the new writing method.

2. When apache uses the get method to pass Chinese parameters under win, an error will occur: test.php ?a=Hello&b=Hello Passing parameters will cause an internal error ​ Solution:

  1. "test.php ?a=".urlencode(Hello)."&b=".urlencode(Hello)
Copy code

3. The session under win does not work properly php .ini default session.save_path = /tmp This is obviously a configuration under Linux. PHP under win cannot read and write the session file, causing the session to be unusable. Just change it to an absolute path, for example, session.save_path = c:windows emp

4, display error message When php.ini's display_errors = 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, most of the error messages are about undefined variables. 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 win

Sendmail configured under Linux can be sent. Under Win, 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 (hard to find online)

php The best solution for sending emails 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" to change the password

7,header already sent This error often occurs when using headers. Possible reasons: pring or echo before using headers. There is a blank line in front of your current file. You may have included a file with a blank line at the end of the file or the output will also appear like this. mistake. !

8, 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 00 (I would like to ask experts for advice on how to install isapi) The php isapi.dll of php seems to conflict with 00 and can only be installed in cgi mode. Step 1: First install an installation program under www.php .net. I installed: php -..-installer.exe. You can also find the latest version and make sure before installing php -..-installer.exe. Your iis6.0 is started and can be accessed. 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 Five: Confirm and that’s it! Step 6: Select the php service extension and click Allow.

10. Sometimes the sql statement does not work and the database operation fails. The easiest way to debug is to echo the sql sentence and see if the value of the variable can be obtained.

11. The difference between include and require There is not much difference between the two. If the file to be included does not exist, include prompts notice, and then continues to execute the following statements. require prompts a fatal error and exits. According to tests, under the win platform, they are included first and then executed, so it is best not to have include or require statements in the included files, which will cause directory confusion. Maybe the situation is different under *nux, I haven't tested it yet. If you do not want a file to be included multiple times, you can use include_once or require_once## to read and write document data.

  1. function r($file_name) {
  2.  $filenum=@fopen($file_name,"r");
  3.  @flock($filenum,lock_sh);
  4.  $file_data=@fread($filenum,filesize( $file_name));
  5. @fclose($filenum);
  6. return $file_data;
  7. }
  8. function w($file_name,$data,$method="w"){
  9. $filenum=@fopen($file_name,$method ;

    12. The difference between isset() and empty() Both are used to test variables, but isset() tests whether a variable has been assigned a value, while empty() tests whether a variable that has been assigned a value is empty. If a variable is referenced in PHP without being assigned a value, it is allowed, but there will be a notice prompt. If a variable is assigned a null value, $foo="" or $foo=0 or $foo=false, then empty($ foo) returns true, isset($foo) also returns true, which means assigning a null value will not unregister a variable.

    To unregister a variable, you can use unset($foo) or $foo=null

    13, mysql query statement contains keywords When php queries mysql, sometimes the mysql table name or column name contains keywords, and at this time there will be an error in the query. For example, if the table name is order, an error will occur during query. The simple way is to add `[above the tab key] to the table name or column name in the SQL statement to distinguish it, for example, select * from `order`

    14. How to upload multiple files at one time through http protocol There are two ideas, which are two implementations of the same method. The specific procedures need to be designed by yourself. Set up multiple file input boxes in the form and name them with arrays, as follows:

    1.  In this way, do the following tests on the server side:
    2. echo "
      "; </li>
      <li>print_r($_files); </li>
      <li>echo "
      " ;
    Copy code

    Set multiple file input boxes in the form, but with different names, as follows:

    Copy the code

      Do the same test on the server side:

    1. echo "
      "; </li>
      <li>print_r($_files); </li>
      <li>echo "
      ";
    Copy code


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:PHP framework: uxfNext article:PHP framework: uxf