回答数
気になる
-
チェックボックスのGETでの受け渡しからMySQLでの照会に際しての配列の扱い方など
まず、foreachと連想配列が苦手で、なかなか理解できずにいる者ですが、 先日の私の質問https://oshiete.goo.ne.jp/qa/12629824.htmlで、 No2&3さんのご指摘もなるほどと思いながら格闘して自分で実装がやりきれず、 No1さんの以下のサンプルを本番に適用してみているところです。 <?PHP $kyugi=filter_input(INPUT_GET,"kyugi",FILTER_VALIDATE_INT,FILTER_REQUIRE_ARRAY); $checked["kyugi"]=[0=>"",1=>"",2=>""]; if($kyugi){ foreach($kyugi as $val){ $checked["kyugi"][$val]=" checked"; } } ?> <form> <label><input type="checkbox" value="0" name="kyugi[]"<?=$checked["kyugi"][0]?>>野球</label> <label><input type="checkbox" value="1" name="kyugi[]"<?=$checked["kyugi"][1]?>>蹴球</label> <label><input type="checkbox" value="2" name="kyugi[]"<?=$checked["kyugi"][2]?>>庭球</label><br> <input type="submit" value="send"> </form> 上記URLと同じ趣旨のしつこい質問ですみませんが、ラジオボタンであれば、MySQLの1カラムに対して0、1、2、3...などと異なる数値が格納されていくのですが、チェックボックスだと、選択肢の数だけカラムをつくって0か1を格納するしかないのでは?という疑問が晴れません。 そして、上記No2&3さんによれば、そのようなやり方は悪手だということでした。 確かにチェックボックスが野球 蹴球 庭球とあるからといって MySQL側も野球 蹴球 庭球と複数の列(column)を 設けるなんて、場当たり的でスマートではない、と理解はしてます。 そして、No3さんのご教示も理屈では理解できますが、自分には高度過ぎて実装ハードルが高そうです・・・。 私が考えていたのは、その「悪手」を地でいってるのですが(涙 ●DB存在するチェックボックスの値(value=1)を受け取るmytable create table `kyugi1` char(1) default NULL COMMENT '好きな球技(野球)', `kyugi2` char(1) default NULL COMMENT '好きな球技(蹴球)', `kyugi3` char(1) default NULL COMMENT '好きな球技(庭球)', ●データが蓄積されていくイメ―ジ kyugi1 kyugi2 kyugi3 野球 蹴球 庭球 回答者1 1 0 1 回答者2 1 0 0 回答者3 1 1 1 回答者4 1 1 0 回答者5 0 0 1 : ●レコード挿入分 insert into mytable (`kyugi1`,`kyugi2`,`kyugi3`) values (1,1,0); 【質問です】 (1) 上記のNo1さんのサンプルをこのまま貼り付けても動きそうな気がしたのですが、実行すると以下の3行目で止まっております $checked["kyugi"]=[0=>"",1=>"",2=>""]; ↑これは、0=>"野球",1=>"蹴球",2=>"庭球" ・・・などと書くべきところではないですよね? (2) 上記のNo1さんの検索フォームですが、value="0"、value="1"、value="2"ではなく、全てvalue="1"であるべきではないでしょうか。 (3) 上記のNo1さんの検索フォームですが、nameは、kyugi[]という配列ではなく、テーブル(DBではmytable)に合わせて、name="kyugi1"、name="kyugi2"・・・でなくてはならないのではないでしょうか? (4) あと、上記のNo1さんのフォームを使わせていただく場合、SQL側は(MySQL5です)は、kyugiテーブルに、ラジオボタン的に、0か1か2・・・と格納されているパターンであれば if(is_array($_GET["kyugi"])){ $sql = "select * from mytable where kyugi in ('" . implode("','", $_GET["kyugi"]) . "')"; } で照会できますが、0か1の場合は、どういうスマートな書き方がありえるなりますでしょうか。 where kyugi1 = 1 or kyugi2 = 1 or kyugi2 = 1 でもシンプルかと思いきや、問題は全然そんな簡単ではなく、「チェックされたものだけをORで結ぶSQL」って 野球1 蹴球1 庭球1 野球1 蹴球1 庭球0 野球1 蹴球0 庭球0 野球0 蹴球0 庭球0 野球0 蹴球0 庭球1 野球0 蹴球1 庭球1 こんないろんなパターンSQL文を構築しなければならないですよね。。。野球 蹴球 庭球の3つならこの6パターンだけですみますが、本番環境はチェックボックスが7つもあって、 網羅的なSQLをつくるとスゴイことになってしまうのです。7×7=49ではなく、もっとパターンありますよね?? ラジオボタンの扱いはいろいろ前例を持っていますが、チェックボックスの扱いが本当にわけわかってなくてすみません。。。
質問日時: 2021/10/24 02:20 質問者: litton101
ベストアンサー
4
0
-
1行でかくIF文が作用しない
ものすごい初級の話でしたら失礼します。 <?php $var1 = 1; $body = "Result:" . ($var1 == 1) ? 'OK' : 'NG' . "<br>\r\n"; echo $body; ?> $var1 = 1 なら、 Result:OK<br> $var1 = 0 なら、 Result:NG<br> と出力されることを期待しているのに、$var1が1でも0でも、「OK」としか表示されず、「Result:」や「<br>」も出力されないのですが、書き方の何がいけないのでしょうか・・・
質問日時: 2021/10/23 17:45 質問者: litton101
ベストアンサー
1
0
-
【初歩?】変数をセットできない(クオーテーションによるくくり方の書き方の問題?)
PHP本体のシングル/ダブルクォーテーションの書き方の作法に関する初歩的問題だと思いますが、 https://github.com/PHPMailer/PHPMailer/tree/5.2-stable このページにPHPMailerのサンプル(A Simple Example)コードがあり、その真ん中くらいの $mail->addAddress('ellen@example.com'); ↑ここを、こう↓書き換えたいのですが、 $mail->addAddress('$_SESSION["var"]'); ・・・しかし、$_SESSION["var"]を認識せずに、アドレスを最低1つは指定しなさいとエラーになります (Message could not be sent.Mailer Error: You must provide at least one recipient email address.) その他の試行錯誤結果としては、 (1) varをシングルクォーテーションでくくる↓ $mail->addAddress('$_SESSION["var"]'); 結果→Parse error: syntax error, unexpected T_STRING in C:\temp\mail.php on line 387 (2) 外側をダブルクォーテーションでくくる↓ $mail->addAddress("$_SESSION['tntEmail']"); 結果→Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\temp\mail.php on line 387 どう書いたら $_SESSION["var"] をセットできますでしょうか。
質問日時: 2021/10/23 15:46 質問者: litton101
ベストアンサー
1
0
-
PHPMailerのサンプルコードのエラーの原因が不明
PHPMailerを使いたくてネット情報などあたっているのですが、 (1) https://taitan916.info/blog/archives/3407 の「ソースコード」 または (2) https://demi-urge.com/php-smtp/ にある「使い方は以下の通りです」のコード を貼り付け、test.phpとします。 公式配布元 https://github.com/PHPMailer/PHPMailer からZIPのパックをダウンロードし、 test.phpがあるディレクトリから見て、以下のように配置してあります。 PHPMailer/src/PHPMailer.php PHPMailer/src/Exception.php PHPMailer/src/SMTP.php IISでtest.phpを開くと、 (1) の方は、Parse error: syntax error, unexpected T_STRING, expecting T_CONSTANT_ENCAPSED_STRING or '(' in D:\002_WebSites\jcea\tec\test.php on line 3 (2) の方は、Parse error: syntax error, unexpected T_STRING, expecting T_CONSTANT_ENCAPSED_STRING or '(' in D:\002_WebSites\jcea\tec\test.php on line 8 どちらも、「use PHPMailer\PHPMailer\PHPMailer;」の記述でつまづくのですが、原因はなんでしょうか? Composerというのが王道みたいですが、Composerは使わないでPHPMailerを使いたいです。 手元の実験環境は、事情あってPHP5.2.17+IIS(Win10)です。
質問日時: 2021/10/21 01:08 質問者: litton101
ベストアンサー
4
0
-
mailやmb_send_mail関数で、本番環境(Apache)とローカル(IIS)で動作が違う
mailやmb_send_mail関数に関して先日以下の質問をして(ご回答は得られず削除しました)、 「以前は動いていた、しかし今は動かない」、ということで、もしかして、と思って プログラムを本番環境(Apache)にアップしたら、きちんと動作することがわかりました。 手元のローカル環境(IIS)でのmailやmb_send_mailだと相変わらず以下のWarningでダメです。 mailやmb_send_mail関数がIISとは関係ないかもしれませんが、 考えうる要因(確認すべきポイント)はありますでしょうか。 (メール送信の仕組みもよくわかっていなくて、IISの設定と関係なかったらすみません) ■削除した質問件名:mailやmb_send_mail関数でSMTP 553 5.7.1の送信エラーを解決できませんか ■以下本文 PHP5+IIS(Win10)に作ったローカル環境で、mail関数やmb_send_mail関数を、 mail($mailto, $mailsbj, $mailbody, $headers, $parameter); mb_send_mail($mailto, $mailsbj, $mailbody, $headers, $parameter); ・・・のように使用すると、いずれも Warning: mail() [function.mail]: SMTP server response: 553 5.7.1 <name@example.com>... Relay operation rejected in C:\temp\temp.php on line 15 というエラーが出ます。 5年前に動作していたPHPのプログラムを久々に焼き直して使おうとしていたのですが。。。 当時と環境が違っている部分もないように思うのですが、 mail関数やmb_send_mail関数がもう使えないということになるのでしょうか。困りました。
質問日時: 2021/10/19 19:37 質問者: litton101
ベストアンサー
1
0
-
PHP 四則演算について
PHPの四則演算について、"<br>"を使用する理由と意味を教えていただけないでしょうか? 【演算の例】 <?pjp? echo 2+3*100."<br>"; //答えは302 echo (2+3)*100."<br>"; //答えは500 ?>
質問日時: 2021/10/16 20:18 質問者: はんばーぐ1219
ベストアンサー
2
0
-
webで一円と五円と十円の枚数を出すプログラムを作ろうとしています。リンクで「一円玉を一枚追加」と言
webで一円と五円と十円の枚数を出すプログラムを作ろうとしています。リンクで「一円玉を一枚追加」と言うものをクリックしたら+1されるものなのですが、一円をプラスした場合他の二つが0になります。他二つも同様なことが起きます。どのように改善すればそれぞれの枚数を表示できますか? <!DOCTYPE html> <html> <?php $one=0; $fiv=0; $ten=0; $a=0; $b=0; $c=0; ?> <head> <meta charset="UTF-8" /> <title>ページタイトル</title> </head> <body> <?php if(isset($_GET['a'])) { $one=$_GET['a']; $a=$a+$one; } if(isset($_GET['b'])) { $fiv=$_GET['b']; $b=$b+$fiv; } if(isset($_GET['c'])) { $ten=$_GET['c']; $c=$c+$ten; } echo '一円の枚数が'; echo $a; echo '枚<br>'; echo '五円の枚数が'; echo $b; echo '枚<br>'; echo '十円の枚数が'; echo $c; echo '枚<br>'; echo '<a href="http://〜/〜/〜.php?n=' . '&a=' . ($one+1) .'">一円玉を一枚追加</a>'; echo '<a href="http://〜/〜/〜 .php?n=' . '&b=' . (&fiv+1) .'">五円玉を一枚追加</a>'; echo '<a href="http://〜/〜/〜.php?n=' . '&c=' . ($ten+1) .'">十円玉を一枚追加</a>'; ?> </body> </html>
質問日時: 2021/10/11 22:46 質問者: コントローラー
解決済
1
0
-
時刻修正とバリデーション処理
時刻を修正するフォームを作成しています。<input type="text" name="hour">のようにして、以下の条件を満たすバリデーション処理を追加することはできますか?(時間:06~24時の間、分と秒:00~59の間 半角数字のみ許可)
質問日時: 2021/09/30 17:16 質問者: オバケイ
解決済
1
0
-
PHP言語について
PHP言語を勉強していくため、環境設定を行いました。 具体的には、「HAMPPのインストール」、「TeraPadのインストール」を行い、設定を行いました。 しかしPHPの動作チェックとして、「<?php phpinfo(); ?>をTeraPadに入力した上で、googleクロムブラウザ上で「http://localhost/test/phpinfo.php」を入力して確認したところ、 「このサイトにアクセスできません」とエラー出て繋がりません。 PHPの勉強が進められず非常に困っています。 解決策と考えられる原因について、アドバイスをいただけないでしょうか? すみませんが、少しでも多くの方からご回答いただければと思っておりますので、どうぞよろしくお願いいたします。
質問日時: 2021/09/29 22:17 質問者: はんばーぐ1219
ベストアンサー
2
0
-
hiddenを使っているのに、表がずれてしまいます。
以下のコードで、表を作っていますが、 echo '<td><input type="hidden" name="id" value="'.$row['id'].'"></td>'; を入れることで、列がずれてしまいます。 私のhiddenに対する認識の誤りでしょうか。 列を正しくするためにはどのようにしたらよろしいでしょうか。 どなたかお知恵をお貸しくださ <body> <div id="container"> <div id="main"> <h1>請求書UP&Mail送信状況確認</h1> <table border="1"> <tr> <th>コード</th> <th>2104UP状況</th> <th>Mail送信状況</th> <th>Mail送信<br> </th> </tr> <?php try { $pdo = new PDO(DNS, USER_NAME, PASSWORD, get_pdo_options()); $sql = "SELECT * FROM invoice_check"; $stmt = $pdo->prepare($sql); $stmt->execute(); $result = $stmt->fetchAll(PDO::FETCH_ASSOC); } catch (Exception $e) { echo "DB接続エラー"; echo $e->getMessage(); exit(); } foreach ($result as $row) { echo '<form action="send_mail.php" method="POST">'; echo '<tr>'; echo '<td><input type="hidden" name="id" value="'.$row['id'].'"></td>'; echo '<td>', $row['id'], '</td>'; echo '<td>'; $filename ='../data/2104/'.htmlspecialchars($row['id'],ENT_QUOTES).'-2104鑑.pdf'; if (file_exists($filename)) { echo '<font color="blue">済</font>'; } else { echo '<font color="red">未</font>'; }; echo '</td>'; echo '<td>'; if ($row['mail_2104'] == 1) { echo '<font color="blue">済</font>'; } else { echo '<font color="red">未</font>'; }; echo '</td>'; echo '<td><input type="submit" name="send" value="送信" ></td>'; echo '</tr>'; echo '</form>'; } ?>
質問日時: 2021/09/29 12:12 質問者: SC.ハーロック
ベストアンサー
1
0
-
ローカル開発環境について
初心者向けのローカル開発環境としてMAMP(XAMPP)が代表格だと思いますが、MAMP(XAMPP)とDockerだとどちらの方がオススメですか?
質問日時: 2021/09/27 13:47 質問者: オバケイ
ベストアンサー
2
0
-
出勤時刻と退勤時刻のみを管理するシステム
PHPとJavaScriptで出勤時刻と退勤時刻のみを管理するシステムを作成する場合、SQLの知識は不要ですか? 大まかな作成手順を教えていただけると幸いです。出勤、退勤時刻以外の労働時間数や残業時間等は管理対象外とします。 機能と画面構成は以下の通りです。 【機能】 (1) 出勤時刻の打刻 (2) 退勤時刻の打刻 (3) 出勤時刻の修正 (4) 退勤時刻の修正 (5) 期間指定による出勤表の表示 【画面構成】 (1) 出勤打刻 ・ページタイトル ・JavaScriptで現在の時刻をリアルタイムに表示 ・打刻ボタン (2) 退勤打刻 ・ページタイトル ・JavaScriptで現在の時刻をリアルタイムに表示 ・打刻ボタン (3) 出勤表 ・ページタイトル ・期間指定フォーム ・日別で出勤打刻と退勤打刻を一覧表示 (4) 出勤打刻の修正 ・ページタイトル ・時刻修正フォーム (5) 退勤打刻の修正 ・ページタイトル ・時刻修正フォーム
質問日時: 2021/09/25 12:16 質問者: オバケイ
解決済
5
0
-
move_uploaded_fileについて
PHPで画像をアップロードしたいので、調べながら作成しているのですが、 こちらのサイトの https://qiita.com/ryo-futebol/items/11dea44c6b68203228ff 1. サーバー内に画像を保存する為のディレクトリを作成(images) というのは move_uploaded_fileで指定することで自動的に作成、保存されるという認識で合ってますか?
質問日時: 2021/09/23 14:49 質問者: R無知無能
解決済
1
0
-
ファイルダウンロード後に、データベースのデータを更新させるにはどうしたらよいでしょうか、
header('Content-Type: application/octet-stream'); header('X-Content-Type-Options: nosniff'); header('Content-Length: '.filesize($dir_path . $value)); header('Content-Disposition: attachment; filename="' . $value . '"'); header('Connection: close'); while (ob_get_level()) {ob_end_clean();} readfile($dir_path . $value); 上記のコードを使って、ダウンロードはうまくできるのですが、ダウンロード後に $sql ="UPDATE invoice_check SET dl_check = 1, last_dl_time = ? WHERE id = ?"; のコードで、MySQLのデータを更新させたいのですが、どのようにつなげたらよいかわかりません。 どなたか、ヒントとなるサンプルコードで構いませんので、ダウンロード後にデータベースの値を更新させる方法を伝授ください。
質問日時: 2021/09/06 16:08 質問者: SC.ハーロック
ベストアンサー
1
0
-
phpでtry〜catch処理がありますが、catchに捕まるときの大抵の原因(誤字脱字以外)はなん
phpでtry〜catch処理がありますが、catchに捕まるときの大抵の原因(誤字脱字以外)はなんだと考えられますか?
質問日時: 2021/08/31 13:00 質問者: 鎌やろう
ベストアンサー
3
0
-
これは例外処理でしょうか?
あるプログラムを実行したら下記のエラーが出ました。 一番目のエラーは分かりますが、二番目のエラーは見覚えがありません。 恐らく例外処理の類だと思われますが、果たしてあっているのでしょうか? このエラーをとるヒントを教えていただけると幸いです。 よろしくお願いいたします。 Warning: Undefined variable $sql in C:\xampp\htdocs\skill\skill.php on line 24 Fatal error: Uncaught ValueError: PDO::prepare(): Argument #1 ($query) cannot be empty in C:\xampp\htdocs\skill\skill.php:24 Stack trace: #0 C:\xampp\htdocs\skill\skill.php(24): PDO->prepare('') #1 {main} thrown in C:\xampp\htdocs\skill\skill.php on line 24
質問日時: 2021/08/29 16:55 質問者: 鎌やろう
ベストアンサー
2
0
-
PHPの否定文
if文の条件でif !(true)みたいな否定文をPHPではどのように書けば良いですか? if (3 % 2)のような条件を否定にしたいです よろしくお願いします
質問日時: 2021/08/27 09:42 質問者: Junk_Foods
ベストアンサー
2
0
-
PHPで現在日から3日以内と7やると strto
PHPで現在日から3日以内と7やると strtotime(date('Y/m/d 00:00:00') . '-3day'); でできますか?
質問日時: 2021/08/23 12:03 質問者: あっきー126
ベストアンサー
1
0
-
エラーの原因と改善策を教えてほしいです。
独学で勉強してます。なんとなくエラーの意味はわかっているのですが、どう直したらよいのかわからず、ご教授していただけると助かります。 エラー内容 Warning: Undefined variable $rows in C:\xampp\htdocs\test_page\pdo_search.php on line 79 Warning: foreach() argument must be of type array|object, null given in C:\xampp\htdocs\test_page\pdo_search.php on line 79 79行目 → foreach($rows as $row){ try{ $dbh = new PDO($dsn, $user, $password); $statement = $dbh->prepare("SELECT * FROM wiper_s WHERE Name LIKE (:name_1) "); $errors = array(); if($statement){ $Name = $_POST['name_1']; $like_name = "%".$Name."%"; //プレースホルダへ実際の値を設定する $statement->bindValue(':name_1', $like_name, PDO::PARAM_STR); if($statement->execute()){ //レコード件数取得 $row_count = $statement->rowCount(); while($row = $statement->fetch()){ $rows[] = $row; ←ここが原因だと思うのですが、どう書き換えたら よいのでしょうか。 } }else{ $errors['error'] = "検索失敗しました。"; } //データベース接続切断 $dbh = null; } }catch (PDOException $e){ print('Error:'.$e->getMessage()); $errors['error'] = "データベース接続失敗しました。"; よろしくおねがいします。
質問日時: 2021/08/22 22:04 質問者: masaki_m
解決済
2
0
-
PHPの基礎知識でお伺いします
PHPで添字配列と呼ばれているものは他の言語で言うところの連想配列や辞書とほぼ同じ意味ですか?
質問日時: 2021/08/17 10:56 質問者: 響子ちゃんが好きです
ベストアンサー
1
0
-
phpでうまく画像がダウンロードできません・・。
以下のようにjpgの画像ファイルをダウンロードさせたいのですが、実際に何かはダウンロードされているのですがフォトなどで開くと「このファイルはサポートされてい形式のようです」とでます。いろんなネットに落ちている画像の絶対パスを入れてるのですが全部同じです。ファイルが壊れているような・・そんな感じです。 何が悪いのでしょうか・・・。(記載のファイルのパスは適当です)ブラウザはchromeです。 <?php // ファイルのパス $filepath = 'https://img.abcdefg.jpg'; // リネーム後のファイル名 $filename = 'ダウンロード.jpg'; // ファイルタイプを指定 header('Content-Type: application/force-download'); // ファイルサイズを取得し、ダウンロードの進捗を表示 header('Content-Length: '.filesize($filepath)); // ファイルのダウンロード、リネームを指示 header('Content-Disposition: attachment; filename="'.$filename.'"'); // ファイルを読み込みダウンロードを実行 readfile($filepath); ?>
質問日時: 2021/08/13 18:08 質問者: dorudora
解決済
2
0
-
解決済
2
0
-
phpで文字列の抜き取りなどをする場合、原則特殊文字は扱えないのでしょうか・・。
<?php $page = 'あいうえお<title>https://www.yahoo.co.jp/</title>かきくけこ'; $page = htmlentities(stristr($page, '<title>'), ENT_QUOTES, 'UTF-8'); echo"$page"; ?> すいません、phpを勉強中で文字を抜き出したりの挙動を確認してたのですが、自分のやりたいことはhtmlのソースからボタン一つでリンクやら画像やらを自動的に収集できるサイトです。しかしphpで文字を扱う場合、特殊文字が原則扱えない事に気が付きました。 これって不便すぎませんか・・? ※「<」とか 一応ここで htmlentitiesで囲めばstristr関数では扱えるという事を教えてもらってこの関数だけは特殊文字が使える事が分かったのですが、ネットにある解説サイトを見てもまったくこの事に触れてるサイトはありません。 最近は食べ物の事でも、プログラムの事でも政治でもなんでも広告サイトばっかりです。初心者サイトを名乗るんだったら最初にこれに触れろよ・・って感じです。結局全部のパターンを試して、あらゆるサイトを確認して・・何時間も無駄になりました。(できないって事を確認することが一番時間がかかります) htmlentitiesとstristrの同時使用なんてネットのどこを探してもありませんし、分かるわけないです。(そもそもなんで扱えないんだよ・・プログラムって意味不明な制約が多すぎ、ハッキリ言えば何ができるかより、何ができないかを羅列して書いておいて欲しい) 話はめっちゃ逸れますが、最近は食べ物の事でもプログラムの事でも病気の事でも、何調べてもコピペサイトの広告サイトばっかりです。検索がコピペサイトで溢れかえっています。もう昔のような個人の有用なサイトは発見できなくなりました。 もう調べるのに疲れましたので取り急ぎ下記の関数は特殊文字が扱えるのかどうかを教えてください。 もし使えるならhtmlentitiesをどのように記載すれば良いかも教えてもらえると助かります。 ちなみに$page2=htmlentities(explode(",", $str));みたいに()で囲んでみても<とかは使えませんでした。自分はhtmlソースを色々弄りたいので特殊文字を抜き取ったりできないとすごく困ります・・。 $colors = explode(",", $str); echo substr('ABCDE', 0, 3); echo stripos('PHP入門 index.html', 'h'); echo str_pad($str, 8);
質問日時: 2021/08/11 01:10 質問者: dorudora
解決済
2
0
-
文字列の抜き取りなのですが思った結果が出ません。
すいません、初めてphpを勉強しているのですが初歩的な所でつまずいてしまって、formからURLを飛ばして、$_GET["abc"]で受け取ります。その後、ソースコードを全部取得してそこから特定の文字列を抜き出したいのですが・・。 例えばソースコードに載っている要素、エレメント部分以外の文字列(日本語とか)だと問題無く抜き取れたり、削除したりできるのですが、</a> </div>とか<title>とかの文字列を指定するとstristrやmb_strposが一切反応してくれなくなります。 (何も返してくれなかったり、意味不明な4桁くらいの数字が出たりします) 例えば下記のコードはエラーがでて文字列は返してくれません。 <title>の部分をソースコード内にある日本語などに変えるとちゃんと動きます。 これは何が原因なのでしょうか・・。分かる方いましたらアドバイス頂けると助かります。 <?php $page = $_GET["abc"]; $page2 = file_get_contents("$page"); $page2 = str_replace(array(" ", " "), "", $page2);/*スペース削除*/ $page2 = str_replace(array("\r\n", "\r", "\n"), "", $page2);/*改行削除*/ $page2 = htmlentities($page2, ENT_QUOTES, 'UTF-8'); echo stristr($page2, '<title>'); ?>
質問日時: 2021/08/09 23:37 質問者: dorudora
ベストアンサー
2
0
-
foreachの後のechoがそのまま出力されていまいます。
独学の初心者で、初歩的な質問になってしまっていたらごめんなさい。 // DBへ接続 try{ $dbh = new PDO($dsn, $user, $password); // クエリの実行 $query = "SELECT * FROM wiper_s"; $stmt = $dbh->query($query); // 表示処理 while($result = $stmt->fetch(PDO::FETCH_ASSOC)){ $message[] = $result; } }catch(PDOException $e){ print("データベースの接続に失敗しました".$e->getMessage()); die(); } // 接続を閉じる $dbh = null; foreach($message as $value){ echo '{$value["Manufacturer"]}'; ←そのまま{$value["Manufacturer"]}と表示され されてしまいます。 } ?> エラーコードも表示されず、どこが間違えているのか見つけられません。 ご教授していただけると助かります。
質問日時: 2021/08/08 17:20 質問者: masaki_m
ベストアンサー
1
0
-
input type value について
html で送られたinput typa のvalue属性に設定した数値を受け取るにはどのようにすればいいですか? 例 <input type="checkbox" name="ストレッチ" value="1"> ストレッチ <input type="checkbox" name="ゴルフ" value="1"> ゴルフ <input type="checkbox" name="昼ごはん" value="1"> 昼ごはん <input type="checkbox" name="入浴" value="1"> 入浴 <input type="checkbox" name="昼寝" value="1"> 昼寝 <input type="checkbox" name="折り紙" value="1"> 折り紙 var_dump($_POST); array(7) { ["job"]=> string(1) "B" ["ストレッチ"]=> string(1) "1" ["ゴルフ"]=> string(1) "0" ["昼ごはん"]=> string(1) "0" ["入浴"]=> string(1) "0" ["昼寝"]=> string(1) "0" ["折り紙"]=> string(1) "0" }
質問日時: 2021/08/03 08:22 質問者: 9うい9p
ベストアンサー
1
0
-
sql文について質問です。エラーの原因と改善策を教えてほしいです。その2
検索フォームを作ろうとしている初心者です。 <?php foreach($rows as $row){ ←この行でエラーが発生しました。 ?> <tr> <td><?=htmlspecialchars($row['Manufacturer'],ENT_QUOTES,'UTF-8')?></td> <td><?=htmlspecialchars($row['name'],ENT_QUOTES,'UTF-8')?></td> <td><?=htmlspecialchars($row['Model year'],ENT_QUOTES,'UTF-8')?></td> <td><?=htmlspecialchars($row['Model'],ENT_QUOTES,'UTF-8')?></td> <td bgcolor = "ffff00"><?=htmlspecialchars($row['right'],ENT_QUOTES,'UTF-8')?></td> <td bgcolor = "ffff00"><?=htmlspecialchars($row['left'],ENT_QUOTES,'UTF-8')?></td> <td bgcolor = "ffff00"><?=htmlspecialchars($row['Rear'],ENT_QUOTES,'UTF-8')?></td> <td><?=htmlspecialchars($row['備考'],ENT_QUOTES,'UTF-8')?></td> </tr> <?php } ?> エラー内容がこちら Warning: Undefined variable $rows in C:\xampp\htdocs\teihoku01\pdo_search.php on line 85 Warning: foreach() argument must be of type array|object, null given in C:\xampp\htdocs\teihoku01\pdo_search.php on line 85 どんな原因なのでしょうか…
質問日時: 2021/07/30 23:04 質問者: masaki_m
ベストアンサー
7
0
-
sql文について質問です。エラーの原因と改善策を教えてほしいです。
検索フォームを作ろうとしている初心者です。 ネットで探しながら進めてきましたが、全然理解できずに進めてきました。 <?php if (count($errors) === 0): ?> ←こちらの行でエラー エラー内容がこちらです Warning: Undefined variable $errors in C:\xampp\htdocs\teihoku01\pdo_search.php on line 64 Fatal error: Uncaught TypeError: count(): Argument #1 ($var) must be of type Countable|array, null given in C:\xampp\htdocs\teihoku01\pdo_search.php:64 Stack trace: #0 {main} thrown in C:\xampp\htdocs\teihoku01\pdo_search.php on line 64 sql文が間違えているのかなと考えても全然わからず、こちらに助けを求めました。 こんな初心者で申し訳ないのですが、教えていただけると幸いです。よろしくお願いします。
質問日時: 2021/07/29 21:37 質問者: masaki_m
ベストアンサー
2
0
-
PHPはオワコンなのですか?
HTMLとCSSを勉強しています HTMLとCSSの基礎を一通りやり終えたのでそれらを復習する前にJava ScriptかPHPも目を通しておきたいと思ってます そこで自分のパソコンのPHPの環境を調べていたらPHPは非推奨だというメッセージが出ます 非推奨の意味が何を意味しているのかよくわかりませんが、PHPはオワコンで他の言語で代用しなさいということなのでしょうか? PHPより他の言語を覚えた方が良いですか?
質問日時: 2021/07/22 11:14 質問者: at-kids
解決済
7
0
-
クラス
すみません。 クラスを勉強しております。 下記のURLのコードは正しいでしょうか?(一応、意図した通りに動いてくれています。) ただ、個数が0の時はエラーを返すように functin setquan()でしているのですが、最後のvar_dump($errors);がnullになってしまいます。ローカルだからでしょうか?最後のvar_dump($errors);に渡す方法はありませんか? https://paiza.io/projects/VekPVCX0EFe4gNbeuNktgQ
質問日時: 2021/07/15 13:03 質問者: 9うい9p
ベストアンサー
1
0
-
データベースに登録しているパスワードを変更したい
会員登録した後、ホームページの中の登録情報変更で、フォームに変更したいパスワードを入力して変更するようにしたいと思い、次のようなコードでやってみたところ、パスワードが変更されたみたいですが、変更したパスワードではログインできません。変更前のパスワードも使えなくなりました。 小生初心者で見よう見真似に書いたものですから、解決に苦慮しております。 どこに問題がありますでしょうか。どなたかお知恵をお貸しください。 <?php require_once("../regist/db.php"); $dbh = db_connect(); $password_hash = password_hash($_post['password'], PASSWORD_DEFAULT); try { $dbh->beginTransaction(); $sql = "UPDATE member SET password=:password_hash WHERE code=$code"; $stmt = $dbh->prepare($sql); $stmt->bindParam(':password_hash', $password_hash, PDO::PARAM_STR); $stmt->execute(); $dbh->commit(); print "更新しました。次回ログインより有効!<br><a href='user.php'>登録情報一覧へ</a>"; } catch (PDOException $e) { $dbh->rollBack(); print "エラー:". $e->getMessage(); } ?>
質問日時: 2021/07/09 17:25 質問者: SC.ハーロック
解決済
1
0
-
PHPのタイムアウトについて
Sever sent eventsを利用して、Phpからクライアントに1秒ごとにflushするコードを作成しようとしています。 Sleepを使用すると正常に動作せず困っています。 $i = 0; while($i < 5){ echo “test”; ob_flush(); flush(); $i++; sleep(1); } このようなコードを組んだときに、sleep無しだと動くが、sleepがあると動かなくなると言った状態です。 どなたかお助け下さい_(┐「ε:)_
質問日時: 2021/07/02 22:22 質問者: k3333
ベストアンサー
2
0
-
LAMP構成について
LAMP構成は「LinuxというOS上にApacheというソフトウェアをインストールして、ApacheとPHPを連携させてPHPからMySQLのデータベースを扱う」という解釈で合っていますか?
質問日時: 2021/06/28 19:17 質問者: オバケイ
解決済
3
0
-
C言語 質問
printf("string:\"%s\"\n", a); において、「\"%s\"」の部分がどのような意味で、"string:"と出力することができているのかご教授ください。
質問日時: 2021/06/28 09:13 質問者: かか。。。
ベストアンサー
1
0
-
PHPは複数インストールされている場合がありますか?
PHP初心者です。 XAMPPとLocal by Flywheel で開発環境を使ってWordPressの勉強をしています。 PHPのバージョンを調べるために C:\直下で「php -v」とコマンドを打つと 7.4.7 と表示されます。 ただ謎があって、Local by Flywheel はPHPのバージョンを切り替えるボタンがあるのですが、 これはLocal by Flywheelが先ほどコマンドで出てきた「7.4.7」のバージョンのPHPとは別にさらにPHPファイルを持っているということでしょうか? 1つのパソコンの色んな箇所にPHPがあって立ち上げるソフトによって参照するPHPが異なるみたいなことですか? また、通常はPHPはどこにインストールされているものなのでしょうか? 混乱しています。
質問日時: 2021/06/27 16:51 質問者: namowamu
解決済
4
0
-
PHPの関数file_existsの構文でsyntax errorがでます。
<?php $filename1='dir+ファイル名'; if (file_exists($filename1)) { <a href="リンク先"><img src="dir+画像ファイル名"></a> } else { <img src="">; } ?> サーバーのフォルダに目的のファイルが存在すれば、リンク付きの画像を表示し、無ければ表示しないように上記のようにコードを書きましたが、4行目のaタグの行で「syntax error,unexpected '<'」とエラーが出てしまいます。 aタグを使用することが間違いなのでしょうか。 初心者で申し訳ございませんが、どなたかご指南ください。
質問日時: 2021/06/23 17:28 質問者: SC.ハーロック
ベストアンサー
1
0
-
履歴の出力
$fortunes = array('大大吉','大吉','中吉','小吉','吉','末吉','凶','大凶','大大凶'); $result = $fortunes[rand(0, count($fortunes)-1)]; if (@$_POST['act'] != 'reset') echo "あなたの運勢は、". $result . PHP_EOL; こんな感じのボタンを押すとおみくじが引けるプログラムを作ったのですがこの出力結果の履歴を出力するプログラムを作りたいです。(大吉,吉…のように) よくわからないのでコードを教えていただけると助かります
質問日時: 2021/06/14 14:35 質問者: 3kuto
解決済
1
0
-
phpのカウンタのリセット方法
おみくじのプログラムで引き直した数をカウントする、リセットボタンで回数のリセットをするプログラムを作ったのですが以下のプログラムではリセットが一時的でもう一度を押すとカウンタがリセットを押す前のカウントに戻ってしまします。 リセットを後続的にするにはどうすればいいでしょうか?説明がわかりずらくてすみません <?php $fortunes = array('大吉'........); $result = $fortunes[rand(0, count($fortunes)-1)]; echo "あなたの運勢は、". $result . PHP_EOL; session_start(); $ct = isset($_SESSION['ct'])? $_SESSION['ct']:0; $ct++; $_SESSION['ct']=$ct; var_dump($_POST); if ($_POST['act'] == 'reset') $ct = 0; ?> <form method="post"> <button name="button">もう一度引く</button> <button type="submit" name="act" value="reset">リセット</button> </form> <body> <html> <?= $ct ?>
質問日時: 2021/06/14 10:36 質問者: 3kuto
解決済
1
0
-
cron
cronジョブを試しています。 sqlでdayというカラムに30があるので3分ごとにdayからー1をしてカウントダウンしたいです。 sqlエラーで文字列を変換できない。 とのエラーがありました。 Catchable fatal error: Object of class PDOStatement could not be converted to string in on line 22 おそらくday-1が悪いと思うのですが、方法が分かりません。 方法を教えてください。 try { $stmt=new PDO("mysql:host=localhost;dbname=hoge;charset=utf8mb4", 'hoge','hoge', [PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION]); } catch (PDOException $e) { die('database error : ' . $e->getMessage()); } $sql = "update diary set day = day - 1 where id = '1'"; $row=$stmt->query($sql); echo $row;//22行目はここです
質問日時: 2021/06/14 09:53 質問者: 9うい9p
ベストアンサー
4
0
-
PHPを勉強中の専門学生です。 課題で、2の倍数をカウントアップするプログラムを書かなければならない
PHPを勉強中の専門学生です。 課題で、2の倍数をカウントアップするプログラムを書かなければならないのですが、考えても考えても分からず… どのように組んでいけばうまくいくのでしょうか?
質問日時: 2021/06/11 15:38 質問者: LaLaライオン
解決済
3
0
-
FFFTPでファイルを書き換えしようとしても保存したはずが出来ていません
こんにちは。 Wordpressでサイトを作って貰った後、素人ですが自分でアップデートしていました。 去年位にアップデートしたところサイトがぐちゃぐちゃなったので怖いと思って元に戻したのですが、マイナーアップデートは時々されていて、ダッシュボードのメッセージに21年で何かが終わる云々と書いてあったので、よっこらしょ、とアップデートする事にしました。 PHPも古かったのでそれも含めてアップデートしたところ、ランディングページは開くもののまともに表示されず(タブ部分のみ表示されて、下の肝心の部分が表示されなくなってしまう)、タブをクリックするとどのタブであれ下記の警告が出てしまいます。(他にも出るのですが、最初のまずはこれだけ解決したく) Warning: Use of undefined constant POST_PER_PAGE - assumed 'POST_PER_PAGE' (this will throw an Error in a future version of PHP) in ****/wp-content/themes/065/functions.php on line 3 FFFTPでファイルを修正すれば良いと読んだのでインストールして、該当の部分を開いて3行目のPOST_PER_PAGEを'POST_PER_PAGE'にするよう試したのですが、引用符を入れて保存をしているはずなのに、何度やっても引用符の保存がされず状態が変わりません。 保存というボタンを押すだけではダメなのでしょうか。保存せずに消そうとすると保存しますか、と出るのでそれでYを押しても結局同じく保存されていません。 詳しい方、助けて戴けますとありがたいです。 どうぞ宜しくお願い致します。
質問日時: 2021/06/08 18:26 質問者: chaty
ベストアンサー
1
0
-
カウンタのリセット
以下のプログラムにボタンをもう一つ追加して、それを押すとカウンタがリセットされるようにしたいです。 <?php session_start(); $ct = isset($_SESSION['ct'])? $_SESSION['ct']:0; $ct++; $_SESSION['ct']=$ct; ?> <form> <button>もう一度引く</button> </form> <body> <html> <?= $ct ?>
質問日時: 2021/06/07 15:03 質問者: 3kuto
解決済
1
0
-
for文、while文を使った、phpプログラムの作成方法を教えてください
問題:1等が出るまでくじ引きをつづけるプログラムを作成せよ.出目の確率は下記の通りとする. 1等: 0.75% 2等: 2.25% 3等: 18.00% 4等: 79.00% 上記のプログラムの作成方法がわかる方、教えていただきたいです。よろしくお願いします。
質問日時: 2021/06/06 15:40 質問者: とみま
解決済
3
0
-
for文の作成方法を教えてください
for文を使って、以下のphpプログラムを作成しています。 3 2 1 3 2 1 3 2 1 条件:for文の初期化式,継続条件,反復時処理は10回繰り返すように記述すること。 (if文、switch文を使用する) 上記のプログラムの作成の仕方がわかる方、教えていただけますでしょうか。
質問日時: 2021/06/06 15:35 質問者: とみま
解決済
1
0
-
phpの定義済み関数
すみません。エラーは出ないのですがプログラムが無視されて出力されて困っています。 フォームから入力された # で区切られた文字列 例えば、 #焼肉#すき焼き#しゃぶしゃぶ を、#で分け表示しています。 以下のコードでは成功しいていますが、長いので定義済み関数とfor文で同じことをしたいです。(厳密には出力結果が少し違いますが・・・) よろしくお願いします。 現在のコード $tag=explode("#",$row[2],6); $files=str_replace("タグ1",$tag[1],$files); $files=str_replace("タグ2",$tag[2],$files); $files=str_replace("タグ3",$tag[3],$files); $files=str_replace("タグ4",$tag[4],$files); $files=str_replace("タグ5",$tag[5],$files); $files=str_replace("タグ",'<ul>'.'<li>'.'<a href="../article.php?tag='.$tag[1].'">'.$tag[1].'</a>'.'</li>'. ' <li> '.'<a href="../article.php?tag='.$tag[2].'">'.$tag[2].'</a>'.'</li>'. ' <li> '.'<a href="../article.php?tag='.$tag[3].'">'.$tag[3].'</a>'.'</li>'. ' <li> '.'<a href="../article.php?tag='.$tag[4].'">'.$tag[4].'</a>'.'</li>'. ' <li> '.'<a href="../article.php?tag='.$tag[5].'">'.$tag[5].'</a>'.'</li>'.'</ul>',$files); 作りたいコード function tag() { $tag=explode("#",$row[2],6); for( $i=0; $i<count($tag); $i++ ){ $files=str_replace("タグ1",'<a href="'.$tag[$i].'">'.$tag[$i].'</a>',$files); }} $files=str_replace("タグ",'<ul>'.'<li>'.tag().'</li>'.'</ul>',$files);
質問日時: 2021/06/02 09:00 質問者: 9うい9p
ベストアンサー
1
0
-
php?について
php初心者です 学校の掲示板をphpでつくりました googleで〇〇中学校 掲示板 とか調べると出てくるようにしたいのですが どうしたら、いいですか? 足りないことがありましたら、補足します
質問日時: 2021/05/25 21:11 質問者: そーさん7777
解決済
1
1
-
テキストボックスとsubmitボタンの紐づけ方法について教えてください
例えば index.php: <?php $self=$_SERVER['SCRIPT_NAME'].'?'.htmlspecialchars(SID); print<<<EOL <form method="post" action="{$self}"> <input type="text" name="tx1" value="txval1"/> <input type="text" name="tx2" value="txval2"/> <input type="submit" name="sb1" value="sbval1"/> <input type="submit" name="sb2" value="sbval2"/> <br/><br/> <br/><br/> text1={$_POST['tx1']}<br/> text2={$_POST['tx2']}<br/> submit1={$_POST['sb1']}<br/> submit2={$_POST['sb2']}<br/> <br/><br/> <br/><br/> </form> EOL; ?> においてtx1入力ボックスにフォーカスをしエンターキーを叩くと sb1ボタンを押したときと同じ出力が得られます tx1入力ボックスにフォーカスをしエンターキーを叩いたときに sb1ボタンでなくsb2ボタンを押したときの出力にするにはどうしたらいいでしょうか? つまり今は tx1入力ボックスにsb1ボタンが紐づいていますが tx1入力ボックスにsb2ボタンが紐づくようにしたいのですが どうしらいいでしょうか?
質問日時: 2021/05/25 16:03 質問者: reiman
ベストアンサー
2
0
-
PHPで、複数のアドレスにメールする
$mailTo = $mail . ',' . $companymail; $mail = 'abc123@****.com'; $companymail = 'def456@+++.jp'; PHPで、上記のコードで同時に2つのアドレスにメールしたいのですが、$mailのアドレスにしか送れません。 変数を使って同時に、2つ以上のアドレスに送る場合は、どのようなコードにしたらよいでしょうか。
質問日時: 2021/05/24 17:24 質問者: SC.ハーロック
解決済
2
0
-
PHP実行のエラー
PHPを作成してデータベースと接続しようとしているのですが、文字化けが発生してしまいました。 エラーの原因は画像の通りです。 どうすればいいのでしょうか?
質問日時: 2021/05/24 15:41 質問者: R無知無能
ベストアンサー
1
0
-
phpについて バージョン8.0
すみません。 ページの前後を簡単に行き来するためにぺ-ジ名をpage40みたいにして <のリンクが押されれば 40-1=page39 >のリンクが押されれば 40+ 1=page41 のようにしたのですが、バージョンを8.0にしたら、以下のようなエラーが出ました。エラーの内容自体は、型が異なるので計算できない?ですよね? どう修正すればいいのかわからないので教えてください。 Fatal error: Uncaught TypeError: Unsupported operand types: string - int in コード <div class="pre-cntrl"> <?php $url = rtrim($_SERVER["REQUEST_URI"], '/'); $uri = substr($url,-2); if(ctype_digit($uri)) { $pre =$uri-1; echo '<a href="page' . $pre . '"><i class="fas fa-chevron-left"></i></a><br />'; } else { $uri = substr($url,-1); $pre=$uri-1; echo '<a href="page' . $pre . '"><i class="fas fa-chevron-left"></i></a><br />'; } ?> </div>
質問日時: 2021/05/19 17:23 質問者: 9うい9p
ベストアンサー
1
0
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
【PHP】に関するコラム/記事
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
-
大麻の使用罪がなかった理由や法改正での変更点、他国との違いを弁護士が解説
ドイツで2024年4月に大麻が合法化され、その2ヶ月後にサッカーEURO2024が行われた。その際、ドイツ警察は大会運営における治安維持の一つの方針として「アルコールを飲んでいるグループと、大麻を吸っているグループ...
-
ピンとくる人とこない人の違いは?直感を鍛える方法を心理コンサルタントに聞いた!
根拠はないがなんとなくそう感じる……。そんな「直感がした」という経験がある人は少なくないだろう。ただ直感は目には見えず、具体的な説明が難しいこともあるため、その正体は理解しにくい。「教えて!goo」にも「...
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpでcookieがうまく保存されない
-
SplFileObject を利用したときの5C...
-
PHPの勉強してます。 配列のところ...
-
ファイルアップロードに関してのセ...
-
PostgreSQLからCSV形式でエクスポー...
-
どうして送信されないのでしょうか?
-
MySQLの配置が変わったため、dbconn...
-
PHPのセッション有効期限について
-
お問い合わせできない
-
ここでの ②if($su_d<>"")の比較演算...
-
PHP一覧表示した項目にリンクをはり...
-
ファイルの書き込みについて教えて...
-
フォームで戻った際に入力済みの値...
-
PHPで今日の日付から3日後を表示さ...
-
Content-Typeが機能していない?
-
PHP MySql 画像を取得
-
1 OR 1=1 は どんな論理(約束事)な...
-
BASIC認証のフォームをデザインしたい
-
アップロードファイルを表示するた...
-
複数のパソコンの中の1つのパソコン...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
phpでcookieがうまく保存されない
-
BASIC認証のフォームをデザインしたい
-
PHP8を使うと、大量のWarningが発生...
-
フォームで戻った際に入力済みの値...
-
PHPで画像の渡しが上手く行きません。
-
PHPのエラーの解消法について教えて...
-
PHPのセッション有効期限について
-
PHPSpreadsheetを使って関数を繰り...
-
PHPを使って、別サイトの一部を取得...
-
csvファイルについて教えて下さい。
-
PHP MySql ページング
-
<span>を<div>に変更すると SQL...
-
1 OR 1=1 は どんな論理(約束事)な...
-
PHPSpreadsheetによる書き出し時の...
-
awsにApacheとPHPを入れて、何故か...
-
PHPでCSVを出力するさいに、ループ...
-
php エラー
-
配列の値の更新方法について
-
ワードプレスサイト PHP8.0.25でのW...
-
php 入力画面から確認表示画面へ情...
おすすめ情報