PHP
- PHP spreadsheet の書き込みについて
お世話になります。 PHP Spreadsheet でExcel シートを作るときは、全く新しいものを作る時だけなのでしょうか?それともすでにできているシートの任意のセルにデータを追加することもできるのでしょうか? 出来るとすればどのようにコードを書いていけばよいのでしょうか。 自分は一応Excelシートからのデータ読み込みと、全く新しいシートを作ることはできていますが、既存シートへの追加方法がわかりません。 詳しい方がいらっしゃいましてら、よろしく教えていただきたく、お願いいたします。
- ベストアンサー
- PHP
- papashiroSooke
- 回答数2
- これの意味を教えて下さい今すぐ必要なんです!
/var/www/html/php/mongodb.php:6 Stack trace: #0 /var/www/html/php/mongodb.php(6): Mongo->__construct() #1 /var/www/html/php/index.php(75): require_once('/var/www/html/p...') #2 {main} thrown in /var/www/html/php/mongodb.php on line 6 よろしくお願いします
- 締切済み
- PHP
- shimoshimo0204a
- 回答数1
- PHPへチェックボックスの値の渡し方
御世話になります。 PHPとMySQL(サーバーサイド)とJavascript(クライアントサイド)を使って、会社で製造している各製品の構成部品と数を表すBOM(Bill Of Material)のデータベースを作っています。 Javascriptで動的に生成したチェックボックスの、チェックされた状態をPHPに渡そうとしていますが、上手く行きません。 どなたか、詳しい方のお知恵を拝借できれば有難いと思っております。 今作成中のプログラムは結構長いものなので全部をここにコピーしてくるわけには行きませんが、要点は次の様なものです。 1:クライアントサイドで製品の識別用番号と改訂版番号を入力して、AJAXを使って該当する製品の構成部品とオプション、およびそれぞれの必要数量をサーバーに要求する 2:サイバーでは要求されたデータをデータベースから抽出して、JSON型式でクライアントに送る 3:クライアントは受け取ったデータから、まず複数あるオプションをチェックボックスで選択できるように、チェックボックス、各オプションの番号、その説明文を動的に生成する 4:更にクライアントは必要なオプションを示すチェックボックスにチェックマークを入れ(複数可能)、送信ボタンを押す 5:サーバーはPOSTで受け取った、チェックマークの付いたオプションと、その他の構成部品とそれぞれの数量をテーブル形式でスクリーンに表示する 大まかには以上のような流れになりますが、4:から5:へのチェックボックスの状態がどうしてもPHPに渡せません。 以下に、この問題に関係すると思われるソースコードをコピーします。 <script> function getData(){ var target = document.getElementById("options"); target.value=""; var num = document.getElementById("PN").value; // user input value var rev = document.getElementById("mySelect").value; // selected value document.getElementById("pRev").value=rev; var xmlhttp = new XMLHttpRequest(); // send partNumber + revision as one entity xmlhttp.open("GET", "JSON-TEST4.php?object=" + num + "&revision=" + rev , true); xmlhttp.send(); xmlhttp.onreadystatechange = function(){ //AJAX starts if(this.readyState == 4 && this.status == 200){ var object = JSON.parse(this.responseText); var optCount = object.optionCount; document.getElementById("partID").value= object.id; // hidden input element document.getElementById("optCount").value= optCount;// hidden input element document.getElementById("DS").innerHTML = object.description; // create checkboxes for selecting options for(var i=0; i<optCount; i++){ var checkbox = document.createElement("input"); // make checkbox checkbox.setAttribute("type", "checkbox"); checkbox.setAttribute("name", "check" + (i+1)); checkbox.setAttribute("value", "checked"); var inputPN = document.createElement("input"); // make input for option part number inputPN.setAttribute("type", "text"); inputPN.setAttribute("name", "pn" + (i+1)); inputPN.setAttribute("value", object.optPN[i]); var inputDS= document.createElement("input");// make input for option description inputDS.setAttribute("type", "text"); inputDS.setAttribute("name", "ds" + (i+1)); inputDS.setAttribute("value", object.optDS[i]); inputDS.setAttribute("size", "80"); var br = document.createElement("br"); // paste newly created HTML tags inside <td> with id="options" //target = document.getElementById("options"); target.appendChild(checkbox); target.appendChild(inputPN); target.appendChild(inputDS); target.appendChild(br); } }// if readyState }// AJAX function }// getData() </script> HTML の該当部分は <table class="queryTable"> <tr> <th class="pNum"> Input Part Number</th> <th class="pRev"> Select Revision </th> <th class="pDesc"> Description</th> <th class="pOpt"> Check Options</th> <th class="pAct"> Action </th> </tr> <tr> <td> <form id="myform1" method="POST" action="displayBOMlist.php" target="workspace" > <input type="text" name="instrumentPN" id="PN"><BR> <input type="button" value="show revisions" onclick="showRev()"> </td> <td> <div id="RV"></div> <button type="button" onclick="getData()">show detail</button> </td> <td id="DS"> </td> <td id="options"></td> <td > <input type="hidden" name="partID" id="partID" > <input type="hidden" name="pRev" id="pRev"> <input type="hidden" name="optCount" id="optCount"> <input type="submit" value="Display BOM"> </form> </td> </tr> </table> PHP側の該当部分は $options = array(); for($i= 0; $i < $optCount; $i++){ $checkNum="check".(string)($i+1); $checkPart="pn".(string)($i+1); if( isset($_POST[$checkNum]) ){ $options[]=$_POST[$checkPart]; echo "set part=".$_POST[$checkNum]."<BR>"; }
- ベストアンサー
- PHP
- papashiroSooke
- 回答数5
- phpのメール送信での質問になります
メールとお問い合わせ内容は届くのですが、名前とアドレスが届かないので間違っている箇所を教えていただけるとありがたいです。 以下コードになります。 html <body> <main> <section> <h2>お問合せ内容の確認</h2> <form action="mailto.php" method="post"> <div class="contant-area"> <div class="label-container"> <label class="item intem-name">名前</label> <label class="item item-email">メールアドレス</label> <label class="item item-message">問い合わせ内容</label> </div> <div class="text"> <p class="item-post" name="name"><?php echo $_POST["name"]; ?></p> <p class="item-post" name="email"><?php echo $_POST["email"]; ?></p> <textarea class="item-post item-textarea" name="message"><?php echo $_POST["message"]; ?></textarea> </div> </div> <div class="button-area"> <input type="submit" value="送信"> </div> </form> </section> </main> </body> php <?php // フォームデータの取得 $name = $_POST['name']; $email = $_POST['email']; $message = $_POST['message']; // 送信先のメールアドレス $to = '*****@gmail.com'; // 件名 $subject = 'お問い合わせがありました'; // メール本文 $body = "名前: $name\n"; $body .= "メールアドレス: $email\n"; $body .= "問い合わせ内容:\n$message"; // 送信元のメールアドレスと名前 $from = '*****1690.xsrv.jp'; $fromName = 'お問い合わせフォーム'; // ヘッダー $headers = "From: $fromName <$from>"; // メール送信 $mailResult = mail($to, $subject, $body, $headers); ?>
- ベストアンサー
- PHP
- Hiroki04155
- 回答数1
- WordPressの質問(q10124692)の続
https://wandbox.org/permlink/xgiSHSJPTNlBrtmO $mime_type から $ext を決めて、テンポラリファイルを $data に読み込めばPDFと動画にも適応できるようです。間違えていたらアドバイスお願い致します。 以前dell_okさんにバイナリーデータがどうしても必要だとお伝えしていたのですが、finfo_open(finfoクラス)はmime_typeを返すのに、拡張子では判断せずバイナリを読み込んでチェックするのでバイナリーのチェックは要らないようですね、申し訳ありません。 名前とメッセージはエラーチェックやtokenがあるためdell_okさんから教えて頂いたコードを使うように考えています。 アップロードファイルについてはおそらくこちらのコードを使うか参考に組み替える必要があると考えております。 //mime_typeを返すのに、拡張子では判断せずバイナリを読み込んでチェック //ファイルの種類を表示するために宣言 $finfo = new finfo(FILEINFO_MIME_TYPE); $mime_type = $finfo->file($path); if (FILE_EXT_PNG == $ext && 'image/png' == $mime_type) { } elseif (in_array($ext, [FILE_EXT_JPEG, '.jpg']) && 'image/jpeg' == $mime_type) { $ext = FILE_EXT_JPEG; } else { // バイナリー文字列確認 $contents = file_get_contents($path); if (FILE_EXT_PDF == $ext && 'application/pdf' == $mime_type) { } elseif (FILE_EXT_MP4 == $ext && 'video/mp4' == $mime_type) { } else { $ext = null; } } return $ext; if (isset($ext)) { $_SESSION['attach_name'][$key] = md5($data) . $ext; $_SESSION['attach_data'][$key] = $data; $_SESSION['attach_mime'][$key] = $mime_type; } else $err[] = '画像形式は png, jpg のみです。'; } } }
- php7ccのwindowsでの使い方について
xampp7.4.30環境下で 以下をしたいです。 1.composerインストール 2.php7cc のインストール 3.php7cc実行 問題点1 windows環境下でphp7ccのパスを通すやり方がうまくいきませんでした。 問題点2 php7ccをgithubからどれをダウンロードして実行していいかもわかりません。 https://github.com/sstalle/php7cc/releases よろしくお願いします。
- WordPressの質問(q10113307)の続
「保存するファイル名につかってはいけない」とのことなのですが、user_add_check.phpの<input type="hidden" name="image_name" value="<?= $user_image['name'] ?>">を使う事はアウトなようです。 自分なりに参考サイトを見て考えてみたのですが、$_SESSION['image']['data']が機能しているのか分からない状態です。 自信がないため2パターン考えてみました。 ※参考サイト https://qiita.com/ryouya3948/items/66294cb445663f2a9d95 user_add.php(要らないもの?) <h2>新規登録</h2> <form method="post" action="user_add_check.php" enctype="multipart/form-data"> <input type="text" name="name" class="user_name_input" placeholder="ユーザー名"> <input type="file" name="image" id="my_image" accept="image/*" multiple> <input class="btn btn-outline-info" type="button" onclick="history.back()" value="戻る"> <input class="btn btn-outline-dark" type="submit" value="登録"> </form> user_add_check.php(入力画面) <?php session_start(); //ファイルの内容を全て文字列に読み込む $_SESSION['userfile']['data'] = file_get_contents($_FILES['userfile']['tmp_name']); //アップロードされたファイルの種類を確認--送られてくる MIME タイプは信用できない--メッセージ全体を偽装できる $_SESSION['userfile']['type'] = exif_imagetype($_FILES['userfile']['tmp_name']); $_SESSION['userfile']['type'] = mime_content_type ($_FILES['userfile']['tmp_name'] ); //画像であるかどうかをexif_imagetype()を使って判別--画像のみ分ける必要があるのか不明 //$_SESSION['userfile']['type'] = exif_imagetype($_FILES['image']['tmp_name']); ?> <img src="image.php"> <form method="post" action="user_add_done.php"> <input type="hidden" name="name" value="<?= $user_name ?>"> <input type="hidden" name="image_name" value="<?= $user_image['name'] ?>"> <input type="button" class="btn btn-outline-info modal_close" onclick="history.back()" value="戻る"> <input type="submit" class="btn btn-outline-dark" value="OK"> </form> image.php(確認画面 バイナリーデータ確認) <?php $load_name = $ext session_start(); switch ($file_ext == $_SESSION['userfile']['type']) { case IMAGETYPE_JPEG: header('content-type: image/jpeg'); break; case IMAGETYPE_PNG: header('content-type: image/png'); break; case IMAGETYPE_GIF: header('content-type: image/gif'); break; case MIME_TYPE_PDF: header('content-type: application/pdf'); break; case MIME_TYPE_MP4: header('content-type: video/mp4'); break; } ?> <?php $load_name = $ext session_start(); switch ($file_ext == $_SESSION['userfile']['type']) { //jpegを表示 case IMAGETYPE_JPEG: header('content-type: image/jpeg'); echo $_SESSION['image']['data']; break; //pngを表示 case IMAGETYPE_PNG: header('content-type: image/png'); echo $_SESSION['image']['data']; break; //pdfを表示 case MIME_TYPE_PDF: header('content-type: application/pdf'); echo( substr( $_SESSION['image']['data'], 0, 5 ) ); break; //mp4を表示 case MIME_TYPE_MP4: header('content-type: video/mp4'); echo( substr( $_SESSION['image']['data'], 4, 4 ) ); break; } ?> ___________________________________________________________ image.php(確認画面 バイナリーデータ確認) <?php function get_file_ext($ext) { //MIMEタイプを取得 $finfo = finfo_open(FILEINFO_MIME_TYPE); $mime_type = finfo_file($finfo, $_SESSION['image']['data']);/*$GET['image']['data']*/ if (FILE_EXT_PNG == $ext && 'image/png' == $mime_type) { } elseif (in_array($ext, [FILE_EXT_JPEG, '.jpg']) && 'image/jpeg' == $mime_type) { $ext = FILE_EXT_JPEG; } else { // バイナリー文字列確認 $contents = file_get_contents($_SESSION['image']['data']); if (FILE_EXT_PDF == $ext && 'application/pdf' == $mime_type && '%PDF-' == substr($contents, 0, 5)) { } elseif (FILE_EXT_MP4 == $ext && 'video/mp4' == $mime_type && 'ftyp' == substr($contents, 4, 4)) { } else { $ext = null; } } return $ext; } ?> user_add_done.php(表示画面 保存拡張子) $_SESSION['image']これを使う //文字列をファイルに書き込む関数 file_put_contents('./image/',$_SESSION['image']);
- PHPのjson_encode()
御世話になります。 PHPからjson_encode() した配列をJavascriptに送って、javascript側ではJSON.parse()でデータを戻して使おうとしていますが、上手く行きません。 これは自作のカラオケシステムのプログラムで、歌手の名前を入力してボタンを押すと、MySQLデータベースに登録されたその歌手の曲がすべてセレクトリストに表示され、その中から一曲選択してその曲のカラオケが始まるという仕組みです。 以前には働いていたのですが、何かのきっかけでソースコードをいじっている間に働かなくなり、原因がわからないままいろやってみましたが(PHP側でjson-encode なしでやってみたり、javascript側でJSON.parse なしでやってみたり)、PHPの配列データをjavascript側にうまく渡せてないようです。ソースコードを添付しますので、どこがおかしいのかチェックして頂ける方がいらっしゃれば有難く思います、 どうかよろしくお願いいたします。 ちなみに、曲を選択するには他にもう一つの方法があり、曲の識別番号(Number)を入力する方法でこれはちゃんと働いています。 プログラムを走らせた、画面ショットも添付しておきます。 <!DOCTYPE HTML> <html> <head> <title> select_song.php</title> <?php $host = "localhost"; $user = "root"; $pass = "rsi2018"; $database = "karaoke"; $connection = mysqli_connect($host, $user, $pass, $database) or die("cannot connect to database"); //================ for all data ============= $numbers = array(); $titles = array(); $singers = array(); $query ="select number, title, singer from num2song where test<>'redundant' order by title"; // avoid redundant data $result= mysqli_query($connection, $query) or die("fail-1"); $i=0; while($row=mysqli_fetch_assoc($result)) { $numbers[$i]=$row['number']; $titles[$i] =$row['title']; $singers[$i]=$row['singer']; $i++; } $dataCount = $i; $JSnumber = json_encode($numbers); $JStitles = json_encode($titles); $JSsingers = json_encode($singers); ?> <script type="text/javascript"> var totalData = <?php echo $totalCount; ?>; var allNumbers = JSON.parse('<?php echo $JSnumbers; ?>'); var allTitles = JSON.parse('<?php echo $JStitles; ?>'); var allSingers = JSON.parse('<?php echo $JSsingers; ?>'); //============================ function showAllSongs(){ //============================= if(document.getElementById("songNumber").value){ document.getElementById("songNumber").value=""; } if(document.getElementById("mySelect")){ document.getElementById("selectSpace").innerHTML=""; } alert("inside showAllSongs"); alert(totalData); var kashu = document.getElementById("singer").value; alert(kashu); var myParent = document.getElementById("selectSpace"); var selectList = document.createElement("select"); selectList.id ="mySelect"; selectList.name ="mySelect"; myParent.appendChild(selectList); var opt = document.createElement("option"); opt.text = "==== 曲を選ぶ ===`"; opt.value = "dummy"; selectList.appendChild(opt); for(var i=0; i<totalData; i++){ if( allSingers[i].indexOf(kashu) >= 0){ var opt = document.createElement("option"); opt.text = allTitles[i]; opt.value = allNumbers[i]; selectList.appendChild(opt); }else{ continue; } }//for var select = document.getElementById("mySelect"); select.onchange=function(){ document.getElementById("selectNumber2").value = document.getElementById("mySelect").value; } }// function </script> </head> <body style="background-color:navy; color:white ;font-size:14pt"> <form method="POST" action="findsong.php" target="main"> Input song number <br> <input type="text" size="8" name="songnum" id="songNumber" style="font-size:12pt"> <input type="submit" value="Play music" style="font-size:12pt"> </form> <BR> <hr> <form method="POST" action="findsong.php" target="main"> Input singer name <BR> <input type="text" size="26" id="singer" name="singer" style="font-size:16pt"><br> <input type="hidden" name="songnum2" id="selectNumber2"> <input type="button" value="Show songs" onclick="showAllSongs()" style="height:40px;font-size:10pt"> <input type="submit" value="Play Music" style="height:40px;font-size:10pt"> </form> </body> </html>
- ベストアンサー
- PHP
- papashiroSooke
- 回答数6
- PHPのラッパー関数について
御世話になります。 PHPのクラスを作るときに、以下のような、いわゆるラッパー関数というものをよく目にしますが、このようなものをわざわざ定義する意味がよく分かりません。 例えば、ある文字列の両脇からスペースを削除するのに public function Value($string){ return trim($string): } という関数を定義するのと、 trim($string) というPHPの組み込み関数を直接使うのには、どのような違いがあるのでしょうか? またほかの例としては public function allLowerCase($string){ return strtolower(trim($string)); } と strtolower(trim($string)) とはどうでしょうか。 このようなラッパー関数を定義するメリットといったものを、どなたかご説明頂けると有難いのですが。どうかよろしくお願いいたします。
- ベストアンサー
- PHP
- papashiroSooke
- 回答数4
- なぜtry{}catch(){}の中?
DBへの更新を行う際に 私は try{ トランザクションスタート 処理 コミット }catch(Exception e){ ロールバック } の書き方をしていますが トランザクションスタート try{ 処理 コミット }catch(Exception e){ ロールバック } の書き方をしている人がいたので try{}catch(){}の中に トランザクションスタートを入れて下さいと伝えたところ なぜ?try{}catch(){}の中に入れるのか聞かれたのですが 答えられませんでした。 ネットにて色々なソースコードをみても try{}catch(){}の中に書かれているのでそういうモノとして 覚えているのですが、なぜ中なのでしょうか?
- PHP で Excel を2次元配列で取出したい
PHP で Excel ファイルのデータを取り出して、単純な2次元配列にしたいのですが、なかなかうまく行かず、ここ2~3日、はまっています。サポートをお願い頂けたら幸いです。 <これまでやった事> ・ネット情報を参考に、phpspreadsheet が使える環境にし必要処理を実施後、以下のように rangeToArray 関数を使い、 print_r で中身を見ると、エクセルの A1 から N7 まで、連想配列として取り出されます。 $data = $sheet->rangeToArray("A1:N9"); print_r($data); 連想配列の型式で、 Array ( [0] => Array ( [0] => (A1 のデータ)[1] => (A2 のデータ)..... [12] => (A13のデータ)) [1] => Array ( [0] => (A2のデータ) [1] =>(B2のデータ)....... が表示されます。 しかし私には以下のような単純な2次元配の方が理解しやすいので、 $data[0][0] ならば A1 のデータ、$data[12][0] ならば A13 のデータ、 $data[2][6] ならば C7 のデータを意味し、 例えば、C1 に「コスト」 というタイトル名が表示されている場合、 $cost = $data[2][0]; で C1 の内容を $cost という変数に入れたいのですが、どうすれば良いのでしょうか? なお、現在は、$data 変数に添え字 [0][5] を入れると文法エラーでます。 ちなみに、私は連想配列の理解に追いついていけないほど、PHP の初心者です。 以上、コメントを頂けたら幸いです。よろしくお願いいたします。
- ベストアンサー
- PHP
- kmsakutomo
- 回答数2
- ワードプレスのプラグインを編集したい
ワードプレスのプラグインをカスタマイズしようとしています。 直接プラグインを編集すると更新のときにもとにもどるので、それを避けたいと思っています。 子テーマの中に入れたら良いかと思ったのですが、反映されませんでした。 プラグインをカスタマイズし、かつアップデートの影響をうけないようにするにはどうすればよいでしょうか? よろしくお願いします。
- WordPressの質問(q10103578)の続
下記のコードファイルにIDとスタンプを追加したいのですが、変数がセットされているか確認すべきかどうか知識不足もあり判断ができないためアドバイス頂いてから決めようと考えています。 宜しくお願い致します。 echo "ID:{$wpdb->insert_id}"; echo '<img class="selimg" src="'.$stamps[$stamp].'">'; ※現在のコード https://wandbox.org/permlink/rnlDqXMzNIOqimxW
- PHPの htmlentities()関数について
御世話になります。 PHPの htmlentities()関数について W3school のサイトにあったサンプルコードを走らせてみましたが、やっていることがさっぱりわかりません。 htmlentities()関数にどんな値を入れてみても、ブラウザーでは何の変化も見られません。 例えば”<”記号は < に変換されるという事ですが、それは何処で見ることが出来るのでしょうか? また、そもそも何のためにこの関数が必要なのでしょうか? 詳しく教えて頂けると助かります。 参考に、私が行って調べようとしたW3schoolサイトの説明部分を張り付けておきます。 Convert some characters to HTML entities: <?php $str = '<a href="https://www.w3schools.com">Go to w3schools.com</a>'; echo htmlentities($str); ?> The HTML output of the code above will be (View Source): <a href="https://www.w3schools.com">Go to w3schools.com</a> The browser output of the code above will be: <a href="https://www.w3schools.com">Go to w3schools.com</a>
- ベストアンサー
- PHP
- papashiroSooke
- 回答数3
- SQL文について
お世話になります。 POST通信で受け取った内容をデータベースに書き込もうとすると 書き込みに失敗してしまいます。 namespace portfolio; require_once dirname(__FILE__) . '/Bootstrap.class.php'; use portfolio\lib\Database; $db = new Database( Bootstrap::DB_HOST, Bootstrap::DB_USER, Bootstrap::DB_PASS, Bootstrap::DB_NAME); if($_POST !== false){ $dataArr = $_POST; $problem = $dataArr['problem']; $name1 = $dataArr['name1']; $name2 = $dataArr['name2']; $name3 = $dataArr['name3']; $name4 = $dataArr['name4']; } $sql = "INSERT INTO hokuto_problem (problem,name1,name2,name3,name4) VALUES (".$problem.",".$name1.",".$name2.",".$name3.",".$name4.")"; $res = $db->execute($sql); var_dump($res); if($res === true){ echo "処理が成功しました"; }else{ echo "書き込みに失敗しました"; } 上記処理をしようとしたら書き込みに失敗してしまいます Bootstrap.phpでは namespace portfolio; require_once dirname(__FILE__) . './../vendor/autoload.php'; class Bootstrap{ const DB_HOST = 'localhost'; const DB_NAME = 'hokuto'; const DB_USER = 'root'; const DB_PASS = 'root'; const APP_DIR = '/Applications/MAMP/htdocs/DT/'; // const TEMPLATE_DIR = self::APP_DIR.'templates/member/'; const CACHE_DIR = false ; const APP_URL = 'http://localhost:8888/DT/'; const ENTRY_URL = self::APP_URL . 'portfolio/'; public static function loadClass($class){ $path = str_replace('\\', '/', self::APP_DIR . $class . '.class.php'); require_once $path; } } spl_autoload_register( [ 'portfolio\Bootstrap', 'loadClass' ] ); そして、Database.class.phpにおいては amespace portfolio\lib; class Database { public $db_con = null; public $db_host = ''; public $db_user = ''; public $db_pass = ''; public $db_name = ''; public function __construct($db_host, $db_user, $db_pass, $db_name) { $this->db_con = $this->connectDB($db_host, $db_user, $db_pass, $db_name); $this->db_host = $db_host; $this->db_user = $db_user; $this->db_pass = $db_pass; $this->db_name = $db_name; } private function connectDB($db_host, $db_user, $db_pass, $db_name) { $tmp_con = mysqli_connect($db_host, $db_user, $db_pass, $db_name); if ($tmp_con !== false) { return $tmp_con; } else { printf("Connect failed: %s\n", mysqli_connect_error()); exit(); } } public function execute($sql) { return mysqli_query($this->db_con, $sql); } のコードを書いています 初心者に質問で、非常に見辛い面は承知の上で 大変心苦しいですが、何卒、ご回答いただけると幸いです
- WordPressの質問(q10093310)の続
スタンプ画像を送信する機能をデータベースに格納したいのですが、格納した数字と画像URLを結び付ける方法が分かりません。 アドバイスお願い致します。 ※最新のコード https://wandbox.org/permlink/A4VLYzAR2h4uYYRh
- phpの変数のバージョンの違い
レンタルサーバーを変更し、ファイルをコピーしたところphpのバージョンの違いからか上手く表示されません。 <?php hensu_a=1.0; printf(a); ?> <body> <? printf(a); ?> </body> と言った感じなのですが以前は二か所のprintfのどちらも表示されていたのですが、違うサーバーにもっていくと最初のprintfは表示されますが、2つ目のbody以降の実際のHPで表示するprintfが空白(null?)になっています。 phpのバージョンにより変数の有効範囲が変わったりしたのでしょうか?
- name is already in use"
エラー名です "Cannot declare class Application\Block\ExternalForm\Form\Controller\MailMagExternalFormBlockController, because the name is already in use" ソース1 controller/mail_mag.php <?php namespace Application\Block\ExternalForm\Form\Controller; //namespace Application\Block\HelloWorld; use Concrete\Core\Block\BlockController; //class Controller extends BlockController // //use Concrete\Core\Block\BlockController; //use Concrete\Core\Controller\AbstractController; //use Core; //use Page; defined('C5_EXECUTE') or die(_("Access Denied.")); class MailMagExternalFormBlockController extends BlockController { public function action_mail_mag_submit() { // validation/form ヘルパーを呼び出し $val = Loader::helper('validation/form'); // postデータをバリデーションに登録 $val->setData($this->post()); // 必須項目ルールの追加 $val->addRequired('magazine', '1つ以上のメルマガを選択してください。'); // メールアドレスの検証 $val->addRequiredEmail('email', '有効なメールアドレスを入力してください。'); // テスト実行 if (!$val->test()) { // テストに通らなかった場合はビューにエラーを渡す $errorArray = $val->getError()->getList(); $this->set('errorArray', $errorArray); } else { // テストに通った場合の処理 $mh = Loader::helper('mail'); // FROMアドレスの設定 $mh->from(EMAIL_DEFAULT_FROM_ADDRESS, SITE); // Toアドレスの設定 $mh->to($this->post('email')); // 管理者ユーザー情報を取得 $adminUserInfo = UserInfo::getByID(USER_SUPER_ID); if (is_object($adminUserInfo)) { // 管理者メールアドレスをBCCに設定 $mh->bcc($adminUserInfo->getUserEmail()); } // メール変数を設定 $mh->addParameter('magazine', $this->post('magazine')); // メールテンプレートを設定 $mh->load('mail_mag_complete'); // メール送信 $mh->sendMail(); $this->set('response', 'お申し込みありがとうございました。'); } return true; } } ソース2 form/mail_mag.php <?php $form = Loader::helper('form'); defined('C5_EXECUTE') or die("Access Denied."); // エラーメッセージの表示 if (isset($errorArray) && is_array($errorArray) && count($errorArray) > 0) { ?> <div style="border:1px solid red"> <?php foreach ($errorArray as $e){ ?><p style="color:red"><?php echo $e?></p><?php } ?> </div> <?php } // お礼メッセージの表示 if (isset($response)) { echo $response; } ?> <form method="post" action="<?php echo $this->action('mail_mag_submit')?>"> <dl> <dt>購読したいメルマガを選択してください</dt> <dd><?php echo $form->checkbox('magazine[]', 'ピックアップ商品情報(週刊)')?> ピックアップ商品情報(週刊)</dd> <dd><?php echo $form->checkbox('magazine[]', '新着商品情報(日刊)')?> 新着商品情報(日刊)</dd> <dt>メールアドレス</dt> <dd><?php echo $form->text('email')?></dd> </dl> <?php echo $form->submit('submit','送信'); ?> </form> よろしくお願いします。
- 締切済み
- PHP
- fujisawa33
- 回答数1