PHP
- 問い合わせフォームからPHPを使って、、、、、
問い合わせフォームからPHPを使って指定のアドレスにメールを送ろうとしているのですが、届きません、、、、、、 原因が分かりません。助けていただけないでしょうか。 <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>お問い合わせページ</title> <link rel="stylesheet" href="styles.css"> </head> <body> <h1>お問い合わせページ</h1> <form action="send_email.php" method="post"> <label for="name">お名前:</label> <input type="text" id="name" name="name" required><br><br> <label for="email">メールアドレス:</label> <input type="email" id="email" name="email" required><br><br> <label for="message">お問い合わせ内容:</label><br> <textarea id="message" name="message" rows="4" cols="50" required></textarea><br><br> <input type="submit" value="送信"> </form> </body> </html> \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 以下がPHPのプログラムです。 <?php if ($_SERVER["REQUEST_METHOD"] == "POST") { $name = $_POST["name"]; $email = $_POST["email"]; $message = $_POST["message"]; // 送信先のメールアドレス $to = "***@gmail.com"; // 件名 $subject = "お問い合わせがありました"; // 本文 $body = "お名前: $name\n"; $body .= "メールアドレス: $email\n\n"; $body .= "お問い合わせ内容:\n$message"; // メールを送信 mail($to, $subject, $body); // 送信後のリダイレクト header("Location: thank_you.html"); exit; } ?>
- 締切済み
- PHP
- hummingandgo
- 回答数3
- PHPのifでエラーがある場合とない場合で分岐
phpでエラーがある場合とない場合で表示内容を変えたいです。 フォームを使ってデータベースに登録をするものです。 現状下記のコードでエラーが発生していればエラーメーッセージはきちんと表示されるのですが、エラーがない場合はphp外に記載してある戻るボタンが表示されるだけでメッセージが表示されません。 表示されないだけでデータベースへの登録は正常にできております。 下記のコードも色々と調べすぎてどこを参考にしたものか忘れてしまいました。 エラーがない場合にもちゃんと表示されるようにするにはどのように書くのが正解なのでしょうか? 調べ方が悪いのか調べても解決できるページは見つかりませんでした・・・。 よろしくお願いいたします。 【test.php】 <?php //省略 try { //省略 } catch (PDOException $e) { $errorMessage = $e->getMessage(); ?> <div class="error"><?php echo $errorMessage; ?></div> <?php if (strpos($errorMessage, "$errorMessage") !== false) { ?> <p>エラーのため登録できませんでした。</p> <?php } else { ?> <p>登録が完了しました。</p> <?php } } ?> <a href="URL">戻る</a>
- WordPressの質問(q10226736)の続
➀ ---- divTitlePartialParts.classList.add("title-partial"); // classの追加 divTitlePartialParts.classList.add("parts"); // classの追加 ---- ➁ ---- divTitlePartialParts.classList.add("title-partial", "parts"); // classの追加 ---- ➂ ---- divTitlePartialParts.className = "title-partial parts"; // classの追加 ---- divTitlePartialParts.setAttribute("class", "title-partial parts"); // classの追加 ---- 下記のHTML クラスで CSS を書きたいのですが、 ➀➁のクラスを2つ分ける方法と➂のまとめて書く方法どちらを選択すべきでしょうか? 頻繁に書き換える場合 classList を使ったほうが良いとのことでどちらが良いか悩んでおります。 ・title-partial { }
- PHP の スペースシップ演算子について
お世話になります。 PHP の スペースシップ演算子について、使い方をネットで調べていましたら、次のようなコードを見つけました。 この中で、配列の並べ替えのための usort( ) のコールバック関数としている my_sort( ) の中で、<=> 演算子が使われています。この演算子は左側と右側のオペランドを比べて -1, 0, 1 のいずれかを返すということなのですが、この戻り値がどのように配列の要素を並べ替えるのに使われているのか、そのメカニズムが理解できません。 どなたか詳しく説明していただけると有難く思います。どうかよろしくお願いいたします。 function my_sort($a, $b) { return $a <=> $b; } $ary = array(4, 2, 8, 6, 1, 3); usort($ary, 'my_sort'); echo "<pre>"; print_r($ary); echo "</pre>"; この結果は 以下の様です。 Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 6 [5] => 8 )
- ベストアンサー
- PHP
- papashiroSooke
- 回答数2
- カテゴリーを変えてはいけない?
サイトを作っていて、最初に設定したカテゴリーを変更するのは駄目だと聞きました。 (Aという記事をカテゴリー1にしてたけど、途中でカテゴリー2に変える) たしかに、パーマリンクが変わってしまうため駄目だと思うのですが、 これは、htmlサイトの場合であって、WordPressとかでも同じですか? WordPressであれば、途中でカテゴリーを変えても問題ないのでしょうか?
- pukiwiki php8のインストールについて
pukiwiki-1.5.4_utf8.zipをダウンロードをしてphp8.1のレンタルサーバーにインストールしましたがエラーになりました。 エラーメッセージは以下です。 Parse error: syntax error, unexpected token "new" in /home/サーバー名.jp/public_html/lib/func.php on line 546 https://pukiwiki.sourceforge.io/?PukiWiki/Download/1.5.4 サーバ上のファイルおよびディレクトリのパーミッションを確認します。 専用サーバーの場合の例を以下に例を示します。 共有サーバーで他のユーザーからの読み書きを禁止したい場合は 777->771, 755->750, 644->640, 666->660 等、適切なパーミッションを設定してください。 ディレクトリ パーミッション attach 777 添付ファイル格納ディレクトリ backup 777 バックアップファイル格納ディレクトリ cache 777 キャッシュファイル格納ディレクトリ counter 777 カウンタファイル格納ディレクトリ diff 777 差分ファイル格納ディレクトリ image 755 画像ファイル image/face 755 (画像ファイル)フェイスマーク lib 755 ライブラリ plugin 755 プラグイン skin 755 スキン、CSS、JavaScirptファイル wiki 777 データの格納ディレクトリ ファイル パーミッション .htaccess 644 .htpasswd 644 */.htaccess 644 ファイル パーミッション *.php 644 */*.php 644 attach/* 666 (はじめは存在せず) backup/*.gz 666 (インストール時は存在せず) backup/*.txt 666 (多くの環境では存在せず) cache/* 666 (一部のプラグインはバイナリファイルを保存します) counter/* 666 (はじめは存在せず) diff/*.txt 666 (はじめは存在せず) wiki/*.txt 666 image/* 644 image/face/* 644 lib/* 644 plugin/* 644 skin/* 644 よろしくお願いします。
- 正規表現の質問
お世話になります。 PHPでの正規表現に関する質問です。 使っている教本の中に、次のようなコードがあります。 $files = new FilesystemIterator('.'); $files = new RegexIterator($files, '/\.(?:txt|csv)$/i'); foreach ($files as $file) { echo $file->getRealPath() . '<br>'; } これは、スクリプトと同じフォルダーにあるファイルの中で、.txt と .csv の拡張子のついたものだけを選択して表示するために、正規表現を使っているのですが、この中の ?: という部分の意味が分かりません。いろいろと正規表現に関する記事をネットで調べてみましたが、: コロンをメタ文字として扱っているものは見たことがありません。この ?: の役割を教えてください。お願いします。 ちなみに、これを取り去ってもちゃんと期待通りの結果が出ます。
- ベストアンサー
- PHP
- papashiroSooke
- 回答数1
- WordPressの質問(q10217484)の続
アップロードされたカメラ画像を非表示にするコードを追加したのですが、表示するためのURLを追加するコードが抜けており追加いたしました。 上記とは別にアップロードされたファイルをエンコードするコードも抜けているのではないかと思っております。 旧コードでは対象ファイルではない場合にアラートで警告ダイアログを表示するコードとは別にエンコードするコードがあるため最新コードにも追加すべきではないかと考えております… 下記のコードは追加すべきでしょうか?(single-input.php の15行目から38行目まで) $attach = []; if (!empty($_SESSION['attach'])) { foreach ($_SESSION['attach']['data'] as $i => $data) { if (!empty($data)) { $base64 = base64_encode($data); } $type = $_SESSION['attach']['type'][$i]; switch ($type) { case 'image/jpeg': case 'image/png': $attach[] = '<img style="height: 100px;" src="data:'.$type.';base64,'.$base64.'">'; break; case 'video/mp4': $attach[] = '<video style="height: 100px;" controls src="data:'.$type.';base64,'.$base64.'">'; break; case 'application/pdf': $attach[] = '<iframe style="height: 100px;" src="data:'.$type.';base64,'.$base64.'"></iframe>'; break; default: $attach[] = ''; break; } } } ※最新コード https://wandbox.org/permlink/my2wffcXlhMQZFvW ※旧コード https://wandbox.org/permlink/cfzsJgBFcYrcIDI1
- php8の配列上限
こんにちは 【環境】 Almalinux 9.3 PHP 8.2.15 apache 2.4.57 ウェブページでphpを使ってデータ入力画面を作っています。 250件程度のデータですが、データを登録して次のページに行くと125件分しかデータが送られていません。 特に変わったことはせず、php.iniもほぼデフォルトのままです。 上限を探ってみたのですが、実質メモリー量に依存で数値としては無いという情報を得ました。 結構シンプルに作っているので、原因がわかりません。 すみませんが、対応方法をご存じの方は教えてください。 ----簡易サンプル-------- <?php echo "<form method='POST' action='tourokku.htm'>\n"; echo " <input type="button" value="保存" onclick="location.href='touroku.htm'"><br />\n"; echo " <table border=1>\n"; echo " <tr><td>名前</td><td>電話番号</td><td>設問1</td><td>設問1</td><td>設問2</td><td>設問3</td><td>設問4</td><td>設問5</td><td>設問6</td><td>設問7</td></tr>\n"; for ($a=0;$a<250;$a++) { echo " <tr>\n"; echo " <td><input type='text' name='namae'></td>\n"; echo " <td><input type='text' name='tel'></td>\n"; for ($b=0;$b<7;$b++) { echo " <td><input type='number' min=0 name='s" . $b . "[" . $a . "]'></td>\n"; } echo " </tr>\n"; } echo "</form>\n"; ?> ----------- 抜粋版なのでこのまま実行するとおかしいかもしれませんが、雰囲気が伝わればと。。 上の値を入れて次のページに移動してphpinfoで値を確認すると、 $_POST['s0'] array( [0] => 1 [1] => 2 : : [124]=125 ) と、124番以降の値は前ページより引き継いでくれません。 メモリーの上限かと思い、php.iniの memory_limit = 128M -> 1024M post_max_size = 8M -> 200M 等、関係ある値を上げてみましたが効果はありませんでした。 できれば300件ぐらいまでは上げたいと思います。 よろしくお願いいたします。
- PHP の mail( ) 関数について
お世話になります。 PHPのmail( )関数の使い方を練習しようと思い、以下に添付した簡単なスクリプトを試してみましたが、エラーが出ました。 スクリプト: <?php $address = 'my_address@yahoo.ca'; $subject = 'test mail'; $message = "Hello, I'm sending you an e-mail message.\r\n If you can read this. please let me know.\r\n"; $headers[] = "From: from@company.jp"; $headers[] = "Cc:sales@company.com"; $headers[] = "Content-type: text/html; charset=UTF-8"; $headers = implode("\r\n", $headers); $result = mail($address, $subject, $message, $headers, '-fmy_address@yahoo.ca'); if($result){ echo "message was sent<BR>"; } エラーメッセージ: Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\xampp\htdocs\PHP-practice\email.php on line 9 ちなみに、エラーメッセージにある hp.ini の 関連個所は次のようになっています。 [mail function] ; For Win32 only. ; https://php.net/smtp SMTP=localhost ; https://php.net/smtp-port smtp_port=25 詳しい方がいらっしゃいましたら、自分のスクリプトの問題点と解決方法について、何かヒントでも頂けると有り難いです。 よろしくお願いいたします。
- ベストアンサー
- PHP
- papashiroSooke
- 回答数3
- WordPressの質問(q10207678)の続
空白改行の文字が連続してはいけないという条件で正規表現を調べたところ、空白には色々な表現があるようでそれらを 1 つ 1 つ調べ上げるのは面倒なので、Unicode 文字プロパティを使ったほうがよいと参考サイトに書かれておりました。 マルチバイト対応の文字列に対する正規表現マッチングで作成するのが良いみたいですが、コードを調べても意味が分からずどうすれば良いか迷っております… 正規表現を使っている場合 ReDoS という攻撃があるようで、セキュリティ上の対策も必要なようです。 アドバイスお願い致します。 ※参考サイト https://qiita.com/fallout/items/a13cebb07015d421fde3
- PHPの画像表示パス
お世話になります。 PHPでブラウザに画像を表示するときのパスについて質問させていただきます。 以下のようなコードで、画像のフルパスを使って画像を表示させようとしていますが、画像が表示されません。(添付スクリーンショットの左側)。 このコードの 第1行をコメントアウトして、第2行の相対パスでやると、画像がちゃんと表示されます。(右側) これはどうしてなのでしょうか?詳しい方がいらっしゃいましたら、よろしくご教授ください。 ちなみに、このファイル自体のパスは C:\xampp\htdocs\PHP7-solutions\new-test.php です。 <?php $selectedImage = "C://xampp/htdocs/php7-solutions/images/kinkakuji.jpg"; //$selectedImage = "images/kinkakuji.jpg"; if (file_exists($selectedImage) && is_readable($selectedImage)) { // && is_readable($selectedImage) $imageSize = getimagesize($selectedImage); echo "<pre>"; print_r($imageSize); echo "</pre>"; echo "<img src='".$selectedImage."' alt='kinkakuji temple' ".$imageSize[3].">"; }else { echo "no such file<BR>"; }
- ベストアンサー
- PHP
- papashiroSooke
- 回答数7
- Visual Studio Code のメッセージ
お世話になります。 VSCを使ってPHPのプログラムを書いています。 バージョンが古いので新しいのをインストールするように勧められて、最新版をダウンロードしてから現在作業中のPHPファイルをオープンしたら、添付写真のscreenshot 1 の様なメッセージが出てきました。 PHPのインストーレーションが見当たらないというような意味だと思いますが、右下の "Open settings" ボタンをクリックして、screenshot 2 が出てきたので、"edit in settins.json" をクリックして screenshot 3 まで来ました。 この画面の ” ” の中に何かの path を入力するのだろうという事は分かりますが、何を入れればよいのかわかりません。 自分が使っているのは xampp-windows-x64-8.2.4-0-VS16-installer.exe でインストールしたPHP(8.2.4)ですが、この中のどれをpath として入れればよいのでしょうか? 詳しい方、どうかよろしくご教授ください。 ちなみに、自分のPCはWindows10で、新しいVSCをインストールする前は、特に何の問題もなく使えていました。
- ベストアンサー
- PHP
- papashiroSooke
- 回答数1
- qhm7.3.7のパーミッションについて
qhm7.3.7をレンタルサーバーにアップロードしましたが、 パーミッションの設定がわかりません。 参考にしたサイトは以下です。 https://haik.oi21.net/index.php?vup_420_730 パーミッションを設定します。シェルが使えるようなら以下の様な感じです。 chmod 707 wiki diff backup cache cacheqblog counter chmod 606 wiki/* chmod 606 cache/* chmod 606 qhm.ini.php chmod 606 qhm_users.ini.txt chmod 606 qhm_access.ini.txt chmod 707 swfu/d/ chmod 707 swfu/data/ chmod 606 swfu/data/* chmod 707 cacheqhm chmod 606 counter/* chmod 606 diff/* chmod 606 attach/* chmod 707 attach chmod 606 backup/* よろしくお願いします。パーミッションの設定が合わなくて困っています。
- PHPコードの間違いを指摘してください
以下2つのPHPコードの間違いを指摘してください <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>PHP基礎</title> </head> <body> <?php $nickname=$_POST['nickname']; $email=$_POST['email']; $goiken=$_POST['goiken']; if($nickname=='') { print 'ニックネームが入力されていません。<br />'; } else { print 'ようこそ'; print $nickname; print '様'; print '<br />'; } if($email=='') { print 'メールアドレスが入力されていません。<br />'; } else { print 'メールアドレス:'; print $email; print '<br />'; } if($goiken=='') { print 'ご意見が入力されていません。<br />'; } else { print 'ご意見『'; print $goiken; print'』<br />'; } if($nickname==''||$email=''||$goiken='') { print '<form>'; print '<input type="button" onclick="history.back()" value="戻る">'; print '</form>'; } else { print '<form method="post" action="thanks.php">'; print '<input name="nickname" type="hidden" value="'.$nickname.'">'; print '<input name="email" type="hidden" value="'.$email.'">'; print '<input name="goiken" type="hidden" value="'.$goiken.'">'; print '<input type="button" onclick="history.back()" value="戻る">'; print '<input type="submit" value="OK">'; print '</form>'; } ?> </body> </html> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>PHP基礎</title> </head> <body> <?php $nickname=$_POST['nickname']; $email=$_POST['email']; $goiken=$_POST['goiken']; print $nickname; print '様<br />'; print 'ご意見ありがとうございました。'; print '頂いたご意見『'; print $goiken; print '』<br />'; print $email; print 'にメールを送りましたのでご確認ください。'; ?> </body> </html>
- 締切済み
- PHP
- NKM_Chitose
- 回答数2
- laravel、ログの共通化について
laravelで開発をしてみています。 大まかな流れとしては、request→controller→serviceクラスのような構成にしています。 serviceクラスの各メソッドが呼び出された際に、そのメソッドの開始・終了のログを出したいです。 出し方としては、メソッド毎にLog::inifo()等の記載をすれば良いと思っていますがその記載が無くても自動で出力できるような仕組みはないでしょうか。 middlewear,serviceproviderあたりでできそうな気がしているのですが、、、 ご教示いただけますと幸いです。
- WordPressの質問(q10187929)の続
blob を使いファイルアップロード機能を考えてみたのですが、画像と動画をどのように識別させるのかが分かりませんでした。 データ URI 形式で表示する方法と、Blob URL で表示する方法の2種類があるようです。 Data URI で動画を表示する方法は対応ブラウザの関係で避けた方が良いと思っております。 アドバイスお願い致します。 ※blob.php にコードを追加いたしました。 ※最新コード https://wandbox.org/permlink/PSXWslcYugaPqtjK ※参考サイト https://mixltd.jp/blog/how_to_make_thumbnail_from_input_video/ https://lab.syncer.jp/Web/JavaScript/Snippet/17/ https://qiita.com/azu369yu/items/8998e1e1536a5acfb7b3
- EC-CUBE4 子カテゴリーについて
EC-CUBE4.2でECサイトを構築中です。 任意の子カテゴリー一覧を表示していますが、その子カテゴリーに商品がない場合、子カテゴリー名を非表示にする方法をアドバイスいただけないでしょうか? 何卒、宜しくお願いいたします。 {% set Category = repository('Eccube\\Entity\\Category').find(11) %} {% set cate_childs = Category.getDescendants %} {% if cate_childs %} {% set h = Category.hierarchy + 1 %} <ul> {% for cate in cate_childs %} {% if h == cate.hierarchy %} <li><a href="{{ url('product_list') }}?category_id={{ cate.id }}">{{ cate.name }}</a></li> {% endif %} {% endfor %} </ul> {% endif %}
- 締切済み
- PHP
- Natsumi201
- 回答数1
- WordPressの質問(q10177232)の続
WordpressでFetch API を使いアップロードされたファイルをJavascriptで保存する方法を調べたところ、エラーになるようで使う事は難しいのではないかと感じました。 WordPressでファイルアップロードをAjaxで行う方法という記事は多数見つけることが出来た為、どちらを選択すべきか迷っております。 名前、メッセージは Fetch API を使い送信が出来るようなので、ファイルアップロードで Fetch API が使えるのかが判断基準になりそうです。 データベースに保存する方法とサーバーディレクトリに保存する方法それぞれ調べてみたのですが、データベースに保存する方法を見つけられませんでした… Wordpressのサポートを生かす場合アップロードファイルはサーバーディレクトリに保存するの方が適切なようです。 ※参考サイト (fetch による Ajax) https://celtislab.net/archives/20180727/ajax-fetch/ ※WordPressでファイルアップロードをAjaxでやる方法 https://blog.spicadots.com/2020/05/wordpress-file-upload-with-ajax/ ※[WordPress]Ajaxで画像を送受信 https://accelboon.com/tn/wordpressajax%E3%81%A7%E7%94%BB%E5%83%8F%E3%82%92%E9%80%81%E5%8F%97%E4%BF%A1/ ※[WordPress]Ajaxでデータを取得する方法 https://zenn.dev/unknow/articles/bf143d8443d70e