ホームページ >バックエンド開発 >PHPチュートリアル >PHP初心者が注意すべき14のことまとめ_PHPチュートリアル
今日は、PHP 初心者にとって頭の痛い問題についてまとめます。以下に挙げた 14 の質問が PHP 初心者の役に立つことを願っています。
1. ページ間で変数を転送することはできません
最新のPHPバージョンではget、post、sessionの自動グローバル変数がオフになっているため、前のページから送信された変数を取得するには$_GET['foo']を使用します,$_POST['foo'],$_SESSION['foo'] を取得します。もちろん、自動グローバル変数を on に変更することもできます (php.ini を register_globals = On に変更します)。互換性を考慮して、新しい記述方法に慣れることをお勧めします。
2. Win32でapache2がgetメソッドを使って中国語パラメータを渡すとエラーが発生します
test.php?a=Hello&b=你好
パラメータを渡すと内部エラーが発生します
解決策:「test.php」 ? a=".urlencode(Hello)."&b=".urlencode(Hello)
3. win32 でのセッションが正常に動作しません
php.ini のデフォルトの session.save_path = /tmp
これは明らかにLinux での設定、win32 での PHP ではセッション ファイルの読み書きができないため、セッションが使用できなくなります
たとえば session.save_path = c:windowstemp のように絶対パスに変更するだけです
4. エラー メッセージを表示します
場合php.ini の display_errors = On および error_reporting = E_ALL の場合、エラー修正のためにデバッグ中にこれをオンにするのが最善です。以前の PHP 記述方法を使用すると、ほとんどのエラー メッセージが表示されます。未定義の変数。変数に値が割り当てられる前に、変数が呼び出されるときにプロンプトが表示されます。解決策は、変数を検出またはシールドすることです。
例えば、$fooを表示するには、if(isset($foo)) echo $foo または echo @$foo です
5. Win32 では Mail() でメールを送信できません
Linux で設定した Sendmail は送信できます。 win32 では、メールを送信するには smtp サーバーを呼び出す必要があります。php.ini = ip //ip は検証機能のない smtp サーバーです (インターネット上で見つけるのは困難です)。サーバーを転送せずに、ソケットを使用して相手のメールサーバーに直接送信します。
6. MySQL の初期インストールでパスワードが設定されていない場合は、
Update mysql.user set password="yourpassword" where user="root"
パスワードを変更
7. ヘッダーは送信済み
このエラーは通常、HEADER を使用するときに表示されます。 1. HEADER を使用する前に PRING または ECHO を実行した 2. 現在のファイルの前に空白行がある 3. INCLUDE が含まれている可能性があります。ファイルの最後に空白行があると、出力にもこのエラーが発生します。
8. php.iniを変更しても変化なし
IISやApacheなどのWebサーバーを再起動すると、最新の設定が適用されます
9. PHPは2003にインストールされています(インストール方法ISAPI の場合は専門家にアドバイスを求めてください)
PHP4 の php4isapi.dll は 2003 と競合しているようです。CGI モードでのみインストールできます:
ステップ 1、まず www.php.net にインストール プログラムをインストールします。 php-4.2.3-installer .exe をインストールします。php-4.2.3-installer.exe をインストールする前に、IIS6.0 が起動し、アクセスできることを確認してください。 インストール後、デフォルトの Web サイトに移動します -> アプリケーション構成
ステップ 2: Web サービス拡張機能 -> 新しい Web サービス拡張機能
をクリックして、
を追加します。
ステップ 4: php.exe へのパスを見つけて追加します。
ステップ 5: 確認するだけです。
ステップ 6: php サービス拡張機能を選択して、[許可] をクリックします。