書籍で 掲示板 作成 を 勉強しています。
その中 keizi_top.php ファイルがあります。
http://afurieitohannei.la.coocan.jp/sns/keizi_top.htm
以上の中 if($su_d<>"") がありますが
比較演算子では
<>""と == "" は 全く逆 の立場に にあります。
https://www.php.net/manual/ja/language.operators.comparison.php
if($su_d== "")として 文字を書き込んで 送信したところ
まったく 送信できませんでした。
ある人から言わせれば if($su_d== "")だと
input要素に require属性でも記載しているのでは?
と 回答を得ましたが まったく意味が分かりません?
もし この回答が 本当なら それが原因で 送信できないのでしょうか?
民様 どう思われますか?
よろしくお願いいたします。
コードを見る限り、input 要素に required 属性はないので、送信はされるはず…。データベース側で弾いてるのかも。
<input type="text" name="su" size="50" required>
とすると、「送信」ボタンを押しても送信されず、入力欄が赤くなって吹き出しでメッセージが出たりするかと。
ありがとうございました。
<input type="text" name="su" size="50">
を
http://www.htmq.com/html5/input_required.shtml#:~:text=%E2%80%A6%E2%80%A6,%E7%9F%A5%E3%82%89%E3%81%9B%E3%82%8B%E3%81%93%E3%81%A8%E3%81%8C%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82
参考にして
<input type="text" name="yourname" required>
に変更しました。
結果は
送信は できているみたい ですが!
mysqlの以下と伝導していますので
bang | int(11) | NO | PRI | NULL | auto_increment
番号だけ出ましたが
文字が出てきませんでした。削除されたのでしょう
これは 実践 する場合 の 参考にします。
時間がもったいないので 原因は 必要に応じて 調べます。
なのでこれで解決いたします。
ありがとうございました。
今後ともよろしくお願いいたします。
以下 参考 資料ですがネット上にありました。
私の域を超えていました。
前後の空白文字を除去してからチェックする必要があります。
シングルバイト文字は trim関数で取り除けますがマルチバイト
文字の空白は自前で除去しないといけません。下記のような関数
をユーザ定義関数として記述したりします。
(例)
function mb_trim($arg) {
do {
$old = $arg;
$tmp = trim($old);
if (mb_substr($tmp, 0, 1) === " ") $tmp = mb_substr($tmp, 1);
if (mb_substr($tmp, -1) === " ") $tmp = mb_substr($tmp, 0, mb_strlen($tmp)-1);
$arg = $tmp;
} while ($arg !== $old);
return $arg;
}
どうもすみません
年に数回しか利用しないので
使い慣れていないせいか
ベストアンサー
に したいのですが できない状態です。
ここは回答欄ではないので、ベストアンサーにはできません。質問の意図がよく分からず、回答としては責任が持てないので、ここに書いてます。
input タグの name="su" を name="yourname" と書き換えたら、ブラウザからは yourname という名前で入力内容が送られますが、受け取り側は su という名前で受け取ろうとするので、何も受け取れないことになります。
どうもすみません
以上の回答に
<input type="text" name="yourname" required>
は 間違いでしたので
<input type="text" name="su" required>
ですが "su" に変更したところ
if($su_d=="")
でも 送信できるようになりました。
あなたの回答
tips
プレビュー