[1] 페이지 간 변수 이동은 불가능합니다. 최신 PHP 버전에서는 Get, Post, Session 자동 전역 변수가 꺼져 있으므로 이전 페이지에서 제출된 변수를 가져오려면 $_GET['foo'], $_POST를 사용하세요. . ['foo'],$_SESSION['foo'] 를 얻습니다. 물론 자동 전역 변수를 활성화하도록 수정할 수도 있습니다(php.ini가 reGISter_globals = On으로 변경됨). 호환성을 고려하면 강제로 새로운 작성 방법에 익숙해지는 것이 좋습니다.
[2] Win32에서 apache2에 중국어 매개변수를 전달하기 위해 get 메소드를 사용하면 오류가 발생합니다.
test.php?a=Hello&b=Hello
매개변수를 전달하면 내부 오류가 발생합니다.
해결책: "test.php?a=".urlencode(안녕하세요)."&b=".urlencode(안녕하세요)
........................
【3】win32 win32에서 세션이 정상적으로 작동하지 않습니다.
php.ini의 기본 session.save_path = /tmp
이것은 분명히 Linux에서 PHP가 win32에서 세션 파일을 읽고 쓸 수 없다는 것입니다. , 세션을 사용할 수 없게 됩니다. 경로가 충분합니다. 예: session.save_path = c:Windows emp
[4] 오류 정보 표시
php.ini의 display_errors = On 및 error_reporting = E_ALL, 디버깅을 위해 모든 오류와 프롬프트가 표시됩니다. 오류 수정을 위해 켜는 것이 가장 좋습니다. 이전 PHP 작성 방법을 사용하는 경우 오류 메시지는 대부분 정의되지 않은 변수에 관한 것입니다. 변수에 값이 할당되기 전에 호출되면 프롬프트가 표시됩니다. 해결 방법은 변수를 감지하거나 보호하는 것입니다.
예를 들어 $foo를 표시하려면 if(isset($foo)) echo $foo 또는 echo @$foo를 사용할 수 있습니다.
【5】mail()은 Win32에서 이메일을 보낼 수 없습니다.
Linux에서 sendmail을 구성했습니다. win32에서는 이메일을 보내려면 smtp 서버를 호출해야 합니다. php.ini = ip //ip는 확인 기능이 없는 smtp 서버입니다(온라인에서 찾기 어려움)
최고의 솔루션 php에서 이메일을 보내는 방법은 소켓을 이용하여 서버를 포워딩하지 않고 상대방의 이메일 서버로 바로 보내는 방법입니다.
【6】MySQL 초기 설치 시 비밀번호가 설정되어 있지 않은 경우 update mysql.user setpassword="yourpassword"를 사용하여 비밀번호를 변경해야 합니다. 여기서 user="root"는 비밀번호를 변경합니다.
【7]헤더가 이미 sent
이 오류는 일반적으로 HEADER를 사용할 때 나타납니다. 1. HEADER를 사용하기 전에 PRING 또는 ECHO를 수행했습니다. 2. 현재 파일 앞에 빈 줄이 있습니다. 파일을 포함시켰는데 파일 끝에 빈 줄이 있을 수 있습니다. 이 오류는 줄이나 출력에서도 발생합니다. !
【8】php.ini 변경 후 변경 없음
IIS, Apache 등 웹 서버를 다시 시작하면 최신 설정이 적용됩니다.
[9] PHP는 2003년에 설치되었습니다. (ISAPI의 설치 방법은 전문가의 조언을 구합니다.)
PHP4의 php4isapi.dll은 2003과 일부 충돌이 있는 것으로 보이며 CGI 모드에서만 설치할 수 있습니다.
1단계, 먼저 www.php .net 아래에 설치 프로그램이 있습니다. 저는 php-4.2.3-installer.exe를 설치했습니다. 또한 최신 버전을 찾아 php-4.2.3을 설치하기 전에 IIS6이 있는지 확인할 수도 있습니다. -installer.exe.0이 시작되어 액세스할 수 있습니다. 설치 후 기본 웹사이트-->애플리케이션 구성으로 이동합니다.
2단계: 웹 서비스 확장을 클릭하고 --> 새 웹 서비스 확장을 생성합니다.
3단계: Extension-->php를 추가한 다음
4단계: php.exe 경로를 찾아서 추가합니다.
5단계: 확인하세요!
6단계: PHP 서비스 확장을 선택하고 허용을 클릭합니다.
【10】가끔 sql 문이 작동하지 않고 데이터베이스 작업이 실패하는 경우가 있습니다. 가장 쉬운 디버깅 방법은 sql 문장을 에코하여 변수 값을 얻을 수 있는지 확인하는 것입니다.
【11】include와 require의 차이점
둘 사이에는 큰 차이가 없습니다. 포함할 파일이 존재하지 않는 경우에는 알림 메시지를 포함시킨 후 다음 명령문을 계속 실행합니다. 치명적인 오류가 발생하고 종료됩니다.
제가 테스트한 바에 따르면 win32 플랫폼에서는 먼저 포함된 후 실행되므로 포함된 파일에 include 또는 require 문을 두지 않는 것이 가장 좋습니다. 이렇게 하면 디렉터리 혼란이 발생할 수 있습니다. *nux에서는 상황이 다를 수도 있습니다. 아직 테스트해 보지 않았습니다.
파일을 여러 번 포함하고 싶지 않은 경우에는 include_once 또는 require_once##를 사용하여 문서 데이터를 읽고 쓸 수 있습니다.
function r($file_name) {
$filenum=@fopen($file_name,"r")
@flock($filenum,LOCK_SH)
$file_data=@fread($filenum) , filesize($file_name));
@fclose($filenum);
return $file_data;
function w($file_name,$data,$method="w") 🎜> $filenum=@fopen($file_name,$method);
Flock($filenum,LOCK_EX)
$file_data=fwrite($filenum,$data);
fclose($filenum);
return $file_data;
}
[12] isset()과 empty()의 차이점
둘 다 변수를 테스트하는 데 사용되지만 isset()은 변수에 값이 할당되었는지 테스트합니다. , 그리고empty()는 할당된 변수가 비어 있는지 여부를 테스트합니다.
PHP에서 값을 할당하지 않고 변수를 참조하는 경우는 허용되지만 변수에 null 값이 할당된 경우 $foo="" 또는 $foo=0 또는 $foo=라는 알림이 표시됩니다. false이면 공백($foo)은 true를 반환하고 isset($foo)도 true를 반환합니다. 즉, 빈 값을 할당하면 변수 등록이 취소되지 않습니다.
변수 등록을 취소하려면 unset($foo) 또는 $foo=NULL을 사용할 수 있습니다.
[13] mysql 쿼리 문에 키워드가 포함되어 있습니다.
PHP가 mysql을 쿼리할 때 mysql 테이블 이름이나 열 이름이 나오는 경우가 있습니다. 키워드가 될 것이며 이때 쿼리에 오류가 있을 것입니다. 예를 들어 테이블 이름이 order인 경우 쿼리 도중 오류가 발생합니다. 간단한 방법은 sql 문에서 테이블 이름이나 컬럼 이름에 '[탭 키 위]'를 추가하여 구분하는 것입니다. * from `order`
【14】HTTP를 통해 여러 파일을 한 번에 업로드하는 프로토콜
에는 두 가지 아이디어가 있는데, 이는 동일한 방법을 두 번 구현한 것입니다. 구체적인 절차는 스스로 설계해야 합니다.
1. 폼에 여러 개의 파일 입력 상자를 설정하고 다음과 같이 배열로 이름을 지정합니다.
"; <br>print_r($_FILES); <br>echo ""
" <br>print_r($_FILES) <br> <br> 위 내용은 초보자가 어떤 테니스 라켓을 사야 하는지, 어떤 테니스 라켓을 사야 하는지 등 PHP 초보자가 가장 고민하는 질문 14가지를 소개한 것입니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되길 바랍니다. <br> <p> </p>