PHP_PHP チュートリアルのいくつかのエラー処理方法とテクニックの概要
1: 変数を取得できないのはなぜですか? ある Web ページから別の Web ページにデータ名を POST するのに、$name を出力するときに値を取得できないのはなぜですか?
PHP 4.2 以降のバージョンでは、register_globalデフォルトはオフです
別のページから送信された変数を取得したい場合:
方法 1:
PHP.ini で register_global を見つけて on に設定します。方法 2:
この extract($ を受信側 Web ページの先頭に置きます) _POST);extract($_GET);(extract($_SESSION) の前に Session_Start() が必要であることに注意してください) 方法 3:
変数を 1 つずつ読み取ります $a=$_GET["a"];$b = $_POST["b"] など この方法は面倒ですが、より安全です。
実行時に特定の変数の値を知っておく必要があります。これが私がやったことです。debug.php ファイルを作成します。その内容は次のとおりです:
PHP コード:--------------------------- -- -------
コードをコピーします
";このページで取得される変数は次のとおりです:"; <div class="codebody" id="code45322">Print_R($_GET); <BR>Echo "このページで取得される _POST 変数は次のとおりです:"; <BR>Print_R($_POST); <BR>Echo "このページで取得される _COOKIE 変数は次のとおりです:" ; <BR>Print_R($_COOKIE ); <BR>Echo "このページで取得される _SESSION 変数は次のとおりです:" <BR><BR><BR>; ------------------ -------------------------------- <BR>その後、php.ini に include_path = "c:/php" を設定し、このフォルダーに debug.php を置きます。<BR>将来的には、このファイルをすべての Web ページに含めて、取得した変数名と値を表示できるようになります。 <BR><BR>3: セッションの使用方法<BR></div> セッションに関連するすべてのことは、前に関数 session_start() を呼び出す必要があります。<BR> セッションの値の支払いは、次のように非常に簡単です。 <BR><BR></P><P> コードをコピーします<STRONG><BR> コードは次のとおりです。 </STRONG><BR><BR>Session_start() ; <div class="codetitle">$Name = "これはセッションの例です"; <span style="CURSOR: pointer" onclick="doCopy('code37036')">Session_Register("Name");// 注意: Session_Register("$Name"); <U>Echo $_SESSION["Name "]; </U>// $_SESSION["Name"] の後は、「これはセッションの例です」 </span></div><div class="codebody" id="code37036">php4.2 以降では、セッション料金を直接支払うことができます: <BR><BR><BR><BR> コードをコピーします<BR><BR> コードは次のとおりです次のように: </div><BR><BR>Session_Start(); <div class="codetitle"> $ _Session ["name"] = "value"; <span style="CURSOR: pointer" onclick="doCopy('code15010')"><U></U> セッションをキャンセルするには: </span></div><div class="codebody" id="code15010"><BR> コードは次のとおりです: <BR><BR></div>session_start () ; <BR>Sactive_unset (); <BR> php4.2 以降では、特定のセッション変数をキャンセルする際にバグがあります。 <div class="codetitle">1: Session_Start() を呼び出す前に出力を行うことはできません。 ============ =============================== <span style="CURSOR: pointer" onclick="doCopy('code54531')">1行 <U>2行 [ php] </U>3行 Session_Start();//before 1行目にすでに出力があります </span>4行... </div>5行[/php] <div class="codebody" id="code54531">=============== ============== =============== <BR><BR>ヒント 1: <BR><BR>「...ヘッダーはすでに送信されました...」が表示されるたびに、ブラウザに情報を出力する前のSession_Start()です </div>出力を削除すると正常になります (COOKIEでもこのエラーが発生し、エラーの原因は同じです) <BR> <BR><BR>ヒント 2: <BR><BR>Session_Start() がループ ステートメント内に配置されており、情報が以前にブラウザーに出力された場所を特定するのが難しい場合は、次のメソッドを使用できます: <BR>1 line [php] Ob_Start( ); [/ php] <BR>....これがあなたのプログラムです... <BR>2: このエラーは何ですか? <BR>警告: session_start(): open(/tmpsess_7d190aa36b4c5ec13a5c1649cc2da23f, O_RDWR) が失敗しました:.... <BR>セッション ファイルのストレージ パスが指定されていませんでした。 <BR><STRONG>解決策: <BR></STRONG>(1) C ドライブにフォルダー tmp を作成します <BR>(2) php.ini を開き、session.save_path を見つけ、それを session.save_path= "c:/tmp" に変更します </P><P><STRONG>4: 理由変数を別のWebページに転送すると、前半部分のみが取得され、スペースで始まる変数はすべて失われます<BR></STRONG><BR><BR><BR>コードをコピー<BR><BR> コードは次のとおりです:</P><P><FONT style="BACKGROUND-COLOR: #ffff00">$Var="hello php";//$Var= " Hello php"; に変更して結果を取得してみます<BR>$post= "receive.php?Name=".$Var; </FONT>header("location:$post"); <BR><br><br> accept.php の内容: <STRONG><BR></STRONG><div class="codetitle"> コードをコピーします <span style="CURSOR: pointer" onclick="doCopy('code35968')"><U> コードは次のとおりです: </U></span></div>Echo "<pre class="brush:php;toolbar:false">"; <div class="codebody" id="code35968">Echo "" ;
正しい方法は次のとおりです:
コードをコピーします
$Var="hello php";
$post= "receive.php?Name=".urlencode($Var);
5: 「[/php]」で終わらずに指定した長さの中国語文字をインターセプトし、余分な部分を「...」に置き換える方法
一般的に言えば、インターセプトされる変数はMysqlから取得されます。フィールドの長さは最初に確認する必要があります。通常は char(200) で、句読点を含めて 100 文字の中国語文字を保持できます。
{
$strlen=strlen($str);
for($i=0;$i<$strlen;$i++,$clen++ )
{
if ($clen>=$start+$len)
Break;
if(ord(substr($str,$i,1))>0xa0)
{
if ($clen>=$start)
$tmpstr.=substr($str,$i,2);
}
else
{
if ($clen>=$start)
$tmpstr.=substr($str,$i,1) );
}
}
return $tmpstr;
}
関数 showShort ($str,$len)
{
$tempstr($str,0,$len)
if ($str<> )
$tempstr .= "..."; //ここで変更するだけです。
return $tempstr;
6: SQL ステートメントを標準化します
キーワードの誤用によって表示されないように、フィールドとフィールドを追加します。間違いです。
もちろん、キーワードの使用はお勧めしません。
$Sql="INSERT INTO `xltxlm` (`author`, `title`, `id`, `content`, `date`) VALUES ('xltxlm', 'use`', 1, ' criterion your SQL string ', '2003-07-11 00:00:00')"
「`」の入力方法は? TAB キーで
7: Html/PHPの書式文字列を解釈せずにそのまま表示する方法
コードをコピー
コードは次のとおりです。 PHP "; Echo "Interpreted: ".$str."
Processed:";
Echo htmlentities(nl2br($str));
コードをコピーします
コードは次のとおりです:
Function foo()
global $a;//削除結果を見るにはここをクリックしてください Echo "$a";
"; Echo "システムでサポートされているすべての関数がここに表示されます。 print_r($arr)";
10: 間の日数を比較する方法2 つの日付
コードをコピーします
$Date_1="2003-7-15";//$Date_1=" 2003-6-25 23: 29:14"; $Date_2="1982-10-1";
11: PHP をアップグレードした後、元のプログラムが全画面表示になったのはなぜですか 注意: 未定義の変数:
これは変数が未定義であるために発生する警告です
php.ini を開き、一番下にある error_reporting を見つけてください。変更します。 error_reporting = E_ALL & ~E_NOTICE の場合
解析エラー エラーの場合
error_reporting(0) をオフにすることはできません
エラー プロンプトをオフにしたい場合は、php.ini を開き、display_errors を見つけて、display_errors = Off に設定します。今後エラーが発生してもプロンプトは表示されません
それでは、error_reporting とは何ですか?
12: ファイルの先頭と末尾にファイルを追加したいのですが、いちいち追加するのは面倒です。
1: php.ini ファイルを開きます
include_path= "c:" を設定します
2: 2 つのファイル
auto_prepend_file.php と auto_append_file.php を作成し、C ドライブに保存します。これらは各 php ファイルの先頭と末尾に自動的に添付されます。
auto_prepend_file = auto_prepend_file.php を先頭に追加します auto_append_file = auto_append_file.php を末尾に追加します
将来的には、各 php ファイルは
コードをコピーする
13: PHPを使用してファイルをアップロードする方法
コードは次のとおりです:
$store_dir = "d:/";// アップロードされたファイルの保存場所
$accept_overwrite = 1; // 同じファイルを上書きするかどうかは許可されています
// ファイル サイズを確認します
if ($upload_file_size > $file_size_max) {
echo "申し訳ありませんが、ファイルの容量が指定されたサイズよりも大きいです"
exit
}
// ファイルの読み取りと書き込みを確認します
if (file_exists) ($store_dir . $upload_file_name) && !$accept_overwrite) {
Echo "同じファイル名のファイルが存在します"
終了
}
//指定されたディレクトリにファイルをコピーします
if (!move_uploaded_file($upload_file,$) store_dir.$upload_file_name)) {
echo "ファイルのコピーに失敗しました";
}
}
Echo "
ファイルをアップロードしました:"
echo $_FILES['upload_file']['name '];
echo "
";
//クライアントマシンファイルの元の名前。
Echo "ファイルの MIME タイプは次のとおりです:";
echo $_FILES['upload_file']['type'];
//ファイルの MIME タイプ。ブラウザは次のような情報をサポートする必要があります。 「画像/gif」。
echo "
";
Echo "アップロード ファイル サイズ:";
echo $_FILES['upload_file']['size'];
//アップロードされたファイルのサイズ (バイト単位)。
echo "
";
Echo "ファイルはアップロード後に一時的にサーバーに保存されます:";
echo $_FILES['upload_file']['tmp_name'];アップロード後のサーバーのファイル名。
echo "
";
$Erroe=$_FILES['upload_file']['error'];
switch($Erroe){
case 0:
アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウトout‐‐‐‐‐‐‐‐アップロード‐ケース :
使う 使う 使う 使う 使う アウト アウト オフ アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト スルー スルー スルー ' ‐to ‐ ‐‐‐‐‐‐と
14: GD ライブラリを構成する方法
以下は私の構成プロセスです
1: dos コマンドを使用します (手動で実行することもできます。dlls フォルダー内のすべての dll ファイルを system32 ディレクトリにコピーします) copy c:phpdlls* .dll c: windowssystem32
2: php.ini を開きます
extension_dir = "c:/php/extensions/";
3:
extension=php_gd2.dll; 拡張子の前にあるカンマを削除します。 dll についても同様です。このファイル c:/php/extensions/php_gd2.dll が存在することを確認してください
4: 次のプログラムを実行してテストします
Ob_end_flush()
//これより前にブラウザに情報を出力できないことに注意してください。 auto_prepend_file が設定されているかどうか。
$im = @imagecreate (200, 100)
$background_color = imagecolorallocate ($) im, 0,0, 0) ;
$text_color = imagecolorallocate ($im, 230, 140, 150);
imagestring ($im, 3, 30, 50, "単純なテキスト文字列", $text_color); ($im);
15: UBB コードとは何ですか?
UBB コードは、Ultimate Bulletin Board (海外の BBS プログラムでも使用されています) で使用される特別な TAG です。中国)
HTML の使用が禁止されている場合でも、UBBCode を使用することもできます。フォーラムで HTML の使用が許可されている場合でも、使用するコードが少なく安全であるため、HTML の代わりに UBBCode を使用することをお勧めします。 Q3boy の UBB にはサンプルがあり、テストを直接実行できます
16: MySQL のユーザーとパスワードを変更したいです
まず最初に宣言しておきますが、ほとんどの場合、MySQL を変更するには mysql の root 権限が必要です。そのため、一般のユーザーは管理者に要求しない限りパスワードを変更できません 。
方法 1
ただし、PASSWORD 関数を使用することを忘れないでください。
方法 2
Mysqladmin -u root -p password mypasswd このコマンドを入力した後、root の元のパスワードを入力する必要があり、root のパスワードが mypasswd に変更されます。
コマンド内のrootを自分のユーザー名に変更すると、自分のパスワードを変更できます。 もちろん、mysqladmin が mysql サーバーに接続できない場合、または mysqladmin を実行できない場合、
この方法は無効です。
そしてmysqladminはパスワードをクリアできません。
次のメソッドは mysql プロンプトで使用され、mysql root 権限が必要です:
メソッド 3 mysql> INSERT INTO mysql.user (Host,User,Password)
VALUES('%',' jeffrey', PASSWORD('biscuit')); mysql> FLUSH PRIVILEGES
正確には、ユーザー名 jeffrey とパスワード biscuit のユーザーを追加します。 「mysql中国語リファレンスマニュアル」にこの例があったので書き出してみました。
PASSWORD機能を使用してからFLUSH PRIVILEGESを使用することに注意してください。
方法 4
REPLACE ステートメントを使用するだけで、方法 3 と同じです
mysql> REPLACE INTO mysql.user (Host,User,Password) VALUES('%','jeffrey',PASSWORD('biscuit')) ;
mysql> フラッシュ権限
方法 5
mysql> SET PASSWORD FOR jeffrey@"%" = PASSWORD('biscuit'); PASSWORD() 関数も使用する必要があります,
使用する必要はありませんフラッシュ特権。
方法6
mysql> GRANT USAGE ON *.* TO jeffrey@"%" IDENTIFIED BY 'biscuit' ここでの PASSWORD() 関数は不要です。フラッシュ権限を使用しました。
注: PASSWORD() は、Unix パスワード暗号化と同じ方法でパスワード暗号化を実行しません。
17: 彼がこのページに接続した Web サイトを知りたいです
コードをコピーします
18: データをデータベースに入れてページに表示するときに注意すべき点は何ですか? データベースに入るとき
$str=addslashes($str);
$sql="insert into ` tab` (`content`) value(' $str')";
エクスポート時
$str=stripslashes($str);
表示時
$str=htmlspecialchars(nl2br($str));
19: 現在のアドレスバー情報を読み取る方法
$se='';
foreach ($_GET as $key => $value) {
$se.=$key." =".$value ."&";
}
$se=Preg_Replace("/(.*)&$/","$1",$se);
$se?$se="?".$se :"";
echo $s."?$se";
20: 戻るボタンをクリックしたのですが、なぜ以前に入力した内容が消えてしまったのですか? 解決策:
コードをコピーします
21: 画像にIPアドレスを表示する方法
コードをコピーします
コードは次のとおりです:
ImageTTFText($img,10, 0,78,30,$shadow,"d:/windows /fonts/Tahoma.ttf",$ip); //背景を表示
ImageTTFText($img,10,0,25,28,$textColor,"d: /windows/fonts/Tahoma.ttf","あなたの IP は ".$ip); // IP を表示します
ImagePng($img);
imagecreatefrompng($img);
ImageDestroy($img);
22 : ユーザーの実際の IP を取得する方法
コードは次のとおりです:
function iptype2 () {
if ("HTTP_X_FORWARDED_FOR") {
return getenv("HTTP_X_FORWARDED_FOR");
戻ります」なし";
}
}
function iptype3 () {
if (getenv(
);
$ip3 = iptype3();
if (isset($ip1) && $ip1 != "none" && $ip1 != "unknown") {
return $ip1;
}
elseif (isset($ip2 ) && $ip2 != "none" && $ip2 != "unknown") {
return $ip2;
elseif (isset( $ip3) && $ip3 != "none" && $ip3 != "unknown" ) {
$ip3 を返す
}
else {
return "none"
}
Echo ip();
23: データベースから 3 日以内のすべてのレコードを読み取る方法
まず、テーブルには時刻を記録する DATETIME フィールドがあります。
形式は '2003-7-15 16:50:00' です
SELECT * FROM `xltxlm` WHERE TO_DAYS(NOW()) - TO_DAYS(`date`)
24: MySQL データベースにリモートで接続する方法
mysql テーブルにはホスト フィールドがあり、ユーザーを追加するか、「%」に変更するか、接続を許可する IP アドレスを指定して、それを遠隔で。
$link=mysql_connect("192.168.1.80:3306","ルート","");
25: 正規表現の使用方法
正規表現内の特殊文字
26: Apache を使用した後、ホームページが文字化けして表示されます
方法 1:
方法 2:
AddDefaultCharset GB2312
========== == =============================================
ヒント:
コードを投稿すると GB2312 は?????? と解釈されます このように変更すると GB2312 ではなくなります
コードは次のとおりです:
$Date_1="2003-7-15";//次のようにすることもできます:$Date_1="2003-7-15 23:29:14";
$Date_2="1982-10-1"; d1 =strtotime($Date_1);
$d2=strtotime($Date_2);
$Days=round(($d1-$d2)/3600/24);
エコー "$Days 日間苦労しました^_^ " ;
27: 承認ページで一重引用符と二重引用符が ('") になるのはなぜですか? : $str=ストリップスラッシュ($str)
28: 30 秒以上経過してもプログラムを停止せずに実行し続ける方法 set_time_limit(60)//最大実行時間は 1 分です
set_time_limit(0)//プログラムが自動的に終了するまで実行するか、停止します手動で
29: 現在オンラインになっている人の数を計算します
例 1: テキストを使用して実装します
コードをコピーします
//まず、ファイルの読み取りと書き込みの権限が必要です。 //このプログラムは直接実行できます。初めてエラーを報告した後、次のことができます。
$online_log = "count.dat"; // 人数のファイルを保存します。
}
}
array_push($temp,getenv('REMOTE_ADDR')." ,".(time() + ($timeout))."n"); // 視聴者の時間を更新します
$ users_online = count($temp); //オンラインの人数を計算します
$entries = implode("", $temp);
//ファイルを書き込みます
$fp = fopen($online_log,"w"); ($fp,LOCK_EX); //flock() は NFS および他のネットワーク ファイル システムでは正しく動作しません。 Work
fputs($fp,$entries)
fclose($fp);
echo "現在、".$users_online."人々はオンラインです"
例 2:
データベースを使用してオンライン ユーザーを実装します
30: テンプレートとは何か、その使用方法
私は phplib テンプレートを使用します
以下はいくつかの関数の使用法です
$T->Set_File("Any Definition", "Template file.tpl"); $ T->Set_Block("set_file で定義","","好きなように定義");
$T->Parse("Set_Block で定義", " >",true);
$T->Parse("結果を自由に出力します", "Set_File で定義");
ループ形式を次のように設定します:
コードは次のとおりです: //ここでは phplib テンプレートが使用されています
................................. $ TPL- & GT ; PARSE ("OUTPUT", "HTML"); get("output");// $output は Web ページのコンテンツ全体です function wfile($file,$content,$mode='w') {
$oldmask = umask(0);
$fp = fopen($mode);
fwrite($fp,$content);
umask($) oldmask);
return true
}
// ファイルに書き込みます
Wfile($FILE,$output);
header("location:$FILE");// 生成された Web ページにリダイレクトします
コードは次のとおりです以下のように:

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











エラーの原因とソリューションPECLを使用してDocker環境に拡張機能をインストールする場合、Docker環境を使用するときに、いくつかの頭痛に遭遇します...

WordPressサイトファイルアクセスが制限されています:最近.txtファイルにアクセスできない理由のトラブルシューティング。一部のユーザーは、ミニプログラムのビジネスドメイン名を構成する際に問題に遭遇しました:�...

LaravelはPHPベースのフレームワークであるため、PHPとLaravelは直接匹敵するものではありません。 1.PHPは、シンプルで直接的であるため、小規模プロジェクトや迅速なプロトタイピングに適しています。 2。LARAVELは、豊富な機能とツールを提供するため、大規模なプロジェクトや効率的な開発に適していますが、急な学習曲線があり、純粋なPHPほど良くない場合があります。

Binanceアカウントを安全に保ちたいですか?この記事では、ダウンロードとインストール、設定の有効化、バックアップキー、毎日の使用のヒントなど、Binance Security Authenticator(Google Authenticatorなど)の使用方法について詳しく説明します。

Django Time Rangeのクエリに関する質問:なぜ終了日が含まれていないのですか?データベースクエリにDjangoを使用する場合、時間を使用する必要があることがよくあります...

まだBinanceの英語インターフェイスについて頭痛がしますか?心配しないで!このチュートリアルでは、Binance Webバージョンとアプリを中国語に設定する方法を段階的に教えてくれます。単純化されているか伝統的であろうと、手順はシンプルで理解しやすいです。言語の壁に別れを告げ、より便利で効率的なバイナンストレーディングエクスペリエンスをお楽しみください!

Jiutian Computing Power Platformのローカルコンピューターの後のタスクステータスに関する議論は閉じられています。多くのユーザーは、人工知能トレーニングのためにジュイアンコンピューティングパワープラットフォームを使用する際に質問に遭遇します...
