php(現在の主流の開発言語として)初心者向けの頭痛まとめ!
【1】最新のphp(現在の主流の開発言語として)では変数のget、post、sessionがページ間で受け渡せませんこのバージョンでは自動グローバル変数がオフになっているため、前のページから送信された変数を取得するには、$_GET[foo]、$_POST[foo]、$_SESSION[foo] を使用してそれらを取得することもできます。もちろん、変更することもできます。自動グローバル変数をオンにします (php
(現在の主流の開発言語として).ini を register_globals = On に変更しました); 互換性を考慮して、新しい記述方法に慣れておくことをお勧めします。
【2】Win32上のapache
(Unixプラットフォームで最も人気のあるWEBサーバープラットフォーム)2 getメソッドを使用して中国語パラメータを渡すとエラーが発生します test.php
(現在主流の開発言語として)?a= Hello&b =Hello パラメータを渡すと内部エラーが発生します
解決策: "test.php
(現在の主流の開発言語として)?a=".urlencode(Hello)."&b=".urlencode(Hello)
【 3】win32 でのセッションが正しく動作しません
php
(現在の主流の開発言語として).ini デフォルト session.save_path = /tmp これは明らかに Linux での設定です、win32 php
(現在の主流の開発言語として) )セッションファイルの読み書きができず、セッションが使用できなくなる 絶対パスに変更するだけ、例えばsession.save_path = c:windows emp
【4】エラーメッセージを表示する
php
(as現在の主流の開発言語) .ini の display_errors = On および error_reporting = E_ALL では、エラー修正のためにデバッグ中にそれらをオンにするのが最善です (現在の主流の開発言語として)。言語)書き込みエラー メッセージは、ほとんどが未定義の変数に関するものです。変数が割り当てられる前に呼び出されると、プロンプトが表示されます。解決策は、$foo が表示されている場合は、if(isset($foo)) echo $foo または echo @$foo を実行することです。 【5】Win32メールではmail()は送信できません
Linuxで設定したsendmailはwin32ではメールを送信するために呼び出す必要があります
(現在主流の開発言語として)PHP
を修正します
。 .ini の SMTP = ip //ip は含まれていません 検証機能を備えた SMTP サーバー (オンラインで見つけるのは困難です)
PHP (現在主流の開発言語として) メールを送信するための最良の解決策は、ソケットを使用して相手に直接送信することですサーバーを転送せずにパーティーのメールサーバー
【6】初期インストールされたMySQL(PHPとの最良の組み合わせ)
パスワードを設定していない場合は、
Update MySQL(PHPとの最良の組み合わせ).user set user="root" の場合、password="yourpassword"
パスワードを変更します 【7】ヘッダーは既に送信されました
このエラーは通常、HEADER を使用するときに発生します。これにはいくつかの理由が考えられます。 1. HEADER を使用する前に PRING または ECHO を実行します。 2. 現在のファイルの前に空行があります。 3. ファイルを INCLUDE し、ファイルの最後に空行があると、出力にこのエラーが表示されます。 !
【8】php
(現在主流の開発言語)
.ini
を変更しても変化なし iis(MicrosoftのWEBサーバープラットフォーム)
、apache(WEB上で最も人気のある)などのWebサーバーを再起動するUnixプラットフォーム サーバープラットフォーム)待つと最新の設定が適用されます 【9】php
(現在主流の開発言語として)
2003年にインストール(ISAPIのインストール方法は専門家からアドバイスをお願いします) php(現在の主流の開発言語として)
4のphp(現在の主流の開発言語として)4isapi.dllは2003といくつかの競合があるようで、cgiしか使用できません(現在はあまり使用していません) )モードのインストール 手順 まず、www.php(現在の主流の開発言語として)
.netの下にインストールプログラムをインストールします: php(現在の主流の開発言語として)-4.2.3-installer。 .exe を使用して最新バージョンを見つけ、php (現在の主流の開発言語として)-4.2.3-installer.exe をインストールする前に iis (Microsoft の WEB サーバー プラットフォーム) 6.0 が起動していることを確認することもできます。アクセスできるようになります。 インストール後、デフォルトの Web サイトに移動します --> アプリケーション構成ステップ 2: Web サービス拡張機能をクリックします --> 新しい Web サービス拡張機能をクリックします。ステップ 3: 拡張機能 --> 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"){