if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。
以下のPHPプログラム名は keizi.php です。
その
if(preg_match("/[^0-9]/",$gu_d)){
ですが どんな意味がありますか?
ちなみに、以上との関連性がある
/** スレッドグループ番号(gu)を取得し$gu_dに代入 **/
$gu_d=$_GET["gu"];
ですが!
同ファイル内の
http://afurieitohannei.la.coocan.jp/sns/keizi_to …
の <a href="keizi.php?gu=$kekka[0]">$kekka[0] $kekka[1]</a>
とリンクされいると思われます。
よろしくお願いいたします。
<?php
/** データベース情報等の読み込み **/
require_once("data/db_info.php");
/** データベースへ接続、データベース選択 **/
$s=new PDO("mysql:host=$SERV;dbname=$DBNM",$USER,$PASS);
/** スレッドグループ番号(gu)を取得し$gu_dに代入 **/
$gu_d=$_GET["gu"];
/** $gu_dに数字以外が含まれていたら処理を中止 **/
if(preg_match("/[^0-9]/",$gu_d)){
print <<<eot1
不正な値が入力されています<BR>
<a href="keizi_top.php">ここをクリックしてスレッド一覧に戻ってください</a>
eot1;
/** $gu_dに数字以外が含まれていない、正常な値での処理 **/
}elseif(preg_match("/[0-9]/",$gu_d)){
/** 名前とメッセージを取得してタグを削除 **/
$na_d=isset($_GET["na"])?htmlspecialchars($_GET["na"]):null;
$me_d=isset($_GET["me"])?htmlspecialchars($_GET["me"]):null;
/** IPアドレス取得 **/
$ip=getenv("REMOTE_ADDR");
/** スレッドグループ番号(gu)に一致するレコードを表示 **/
$re=$s->query("SELECT sure FROM tbj0 WHERE guru=$gu_d");
$kekka=$re->fetch();
/** スレッド内容の表示文字列$sure_comを作成 **/
$sure_com="「".$gu_d." ".$kekka[0]."」";
/** スレッド表示のタイトル等書き出し **/
print <<<eot2
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>SQLカフェ $sure_com スレッド</title>
</head>
<body style="background-color:silver">
<div style="color:purple;font-size:35pt">
$sure_com スレッド!
</div>
<br>
<div style="font-size:18pt">$sure_com のメッセージ</div>
eot2;
/** 名前($na_d)が入力されていればtbj1にレコード挿入 **/
if($na_d<>""){
$re=$s->query("INSERT INTO tbj1 VALUES (0,'$na_d','$me_d',now(),$gu_d,'$ip')");
}
/** 水平線表示 **/
print "<hr>";
/** 日時の順にレスデータを表示 **/
$re=$s->query("SELECT * FROM tbj1 WHERE guru=$gu_d ORDER BY niti");
$i=1;
while($kekka=$re->fetch()){
print "$i($kekka[0]):$kekka[1]:$kekka[3] <br>";
print nl2br($kekka[2]);
print "<br><br>";
$i++;
}
print <<<eot3
<hr>
<div style="font-size:18pt">
$sure_com にメッセージを書くときはここにどうぞ
</div>
<form method="GET" action="keizi.php">
<div>名前 <input type="text" name="na"></div>
メッセージ
<div>
<textarea name="me" rows="10" cols="70"></textarea>
</div>
<input type="hidden" name="gu" value=$gu_d>
<input type="submit" value="送信">
</form>
<hr>
<a href="keizi_top.php">スレッド一覧に戻る</a>
</body>
</html>
eot3;
/** $gu_dに数字以外も、数字も含まれていないときの処理 **/
}else{
print "スレッドを選択してください。<br>";
print "<a href='keizi_top.php'>ここをクリックしてスレッド一覧に戻ってください</a>";
}
?>
参考URL
http://afurieitohannei.la.coocan.jp/sns/tbj0.htm
No.1ベストアンサー
- 回答日時:
>if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。
は質問文に
>/** $gu_dに数字以外が含まれていたら処理を中止 **/
>if(preg_match("/[^0-9]/",$gu_d)){
とありますけど、物足りない点があるのなら具体的に書かれた方が。
と、未経験者は思います。
ご回答下さいましてありがとうございます。
回答が付かないと思っていましたので嬉しいです^^
物足りない点があるのなら具体的に書かれた方が。
ご指摘いただきましてありがとうございます。
そうでした!
この プログラム 意味を理解するうえで
全体の補足に「理解に苦しんでいる点」を書き込みます。
のでよろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP a href リンクタグでだけで 送信が できちゃっています。 1 2022/04/18 04:25
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHP8を使うと、大量のWarningが...
-
PHPSpreadsheetを使って関数を...
-
index.phpって何ですか? 具体...
-
phpでPEAR::DBを使っているので...
-
index.phpに入るには、どうすれ...
-
アマゾンのような評価の星を選...
-
PHPのエラーの解消法について教...
-
これの対応OSを教えて下さい。p...
-
アンドロイドスマホでのphp ech...
-
phpでcookieがうまく保存されない
-
ファイルアップロードの上限を...
-
phpのメールフォームの完了画面...
-
値の取り出し方について教えて...
-
入力した部分を表示させたまま...
-
phpのクラスメソッドの定義が長...
-
SFTPなどは使わないホームペー...
-
ファイルアップロードに関して...
-
掲示板のセキュリティについて...
-
アップロードファイルの数に応...
-
掲示板を作成しておりアップロ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
phpでcookieがうまく保存されない
-
なんでブラウザでPHPを動かすた...
-
PHP8を使うと、大量のWarningが...
-
ワードプレスサイト PHP8.0.25...
-
PHPSpreadsheetを使って関数を...
-
php 入力画面から確認表示画面...
-
PHPのエラーの解消法について教...
-
掲示板のセキュリティについて...
-
php 完了画面の送信メールのコ...
-
PHPのセッション有効期限について
-
掲示板を作成しておりアップロ...
-
PHPでCookieを使った訪問回数に...
-
PHPで画像の渡しが上手く行きま...
-
重複を防ぐ記述について教えて...
-
php 確認表示画面で値をSESSION...
-
ファイルアップロードに関して...
-
メールフォームのタイトルが文...
-
フォームで戻った際に入力済み...
-
PHPで訪問回数を表示するカウン...
-
アップロード画像数でCSSを分け...
おすすめ情報
以上のプログラムですが!
/* $gu_dに数字以外が含まれていたら処理を中止 */
if(preg_match("/[^0-9]/",$gu_d)){
これは 変数 $gu_dに数字が含まれていたら処理を中止
なので リンク先の"gu"に数字が含まれていた場合の判断
基準ですよね
次に
/* $gu_dに数字以外が含まれていない、正常な値での処理 */
}elseif(preg_match("/[0-9]/",$gu_d)){
数字以外が含まれていない だったら 処理を実行する と思います。
すなわち、数字以外の言語しか受け付けないよう! と意味ですよね
違っていたなら ごめんなさい です。
もし、私が正しければ掲示板のスレッド(題目・タイトル)
数字が含まれている場合でもちゃんと数字がが出てきます。
これは なぜですか?私の疑問です。よろしくお願いいたします。
試しに
/* $gu_dに数字以外が含まれていたら処理を中止 */
if(preg_match("/[^0-9]/",$gu_d)){の
[^0-9]の^caretを取り除き
if(preg_match("/[0-9]/",$gu_d)){ としました。
次に
* $gu_dに数字以外が含まれていない、正常な値での処理 */
elseif(preg_match("/[0-9]/",$gu_d)){
[0-9]に^caretを追加して
elseif(preg_match("/[^0-9]/",$gu_d)){
として 試しました結果は
1234 と入力したところ
不正な値が入力されています
ここをクリックしてスレッド一覧に戻ってください
と出ました。
次に
ああああ と入力したところ
不正な値が入力されています
ここをクリックしてスレッド一覧に戻ってください
と出ました。
なんでこんな結果となるのでしょうか?
ちゃんと整理しないと、こんがらがって分からなくなりそうです。
なんだか 参考書の違った結果になったような気がします。
難しいですね 参考書がすべて正しいとは思わないのですが
結果で全てか たまたま そうなったのか
環境は一緒でも インフラ変えたら違ったなどなど
試さないとわかりまりませんね?
経験が私にはないので なんとも言えないです。