duron の回答履歴
- 複数のRSSのタイトル等をPDOでMySQLに登録
複数のRSSを読み込み、RSS記事のタイトル・RSS記事のURLをMySQLに登録する方法について教えて頂ければと思います。 具体的にプログラムも作ってみましたが、もう一歩のところでうまくいきません。 うまくいっていないのは、「ループの中でPDOを使ったデータ登録」部分です。 ご回答宜しくお願い致します。 環境 PHP:5.1.6 MySQL:5.0.77 (目的) 複数のRSSを読み込み、RSS記事のタイトル・RSS記事のURLをMySQLに登録する。 (現状) 複数のRSSの記事を表示することには成功しています。 RSS1個目(記事数20)、RSS2個目(記事数15)の場合、35個の記事リストが表示される状態まではうまくいっています。しかし、PDOを使ってDBに登録の処理を入れると、RSS1個目の記事数20個が画面に表示され、MySQLにもRSS1個目の記事数20個分が登録される状態 になってしまいます。 ※RSS取得の形式はRSS2.0とします。(実際にはAtom、rdfにも対応させますが今回はDBの登録部分の質問なので) 【テーブル構成】 [RSSのタイトル・URL登録] テーブル名:rss_list (3列構成) フィールド名:id(auto_increment),title,url [RSSの記事タイトル・RSSの記事URL・RSSの発行日時] テーブル名:rss_data (4列構成) フィールド名:id(auto_increment),rss_title,rss_url,rss_date --------------表示まで成功したソース(始)---------------------------------- try { $dbh=newPDO($DSN,$DBUSER,$DBPASS); $query='SELECT*FROM rss_list' $stmt=$dbh->query($query); //rss_listテーブルよりtitle,urlを取得 while($result=$stmt->fetch(PDO::FETCH_ASSOC)) { $url=($result['url']); $title=($result['title']); echo$title.'<br>'; //RSS情報を取得 $xml=simplexml_load_file($url); foreach($xml->channel->itemas$entry) { $entrydate=date("Y.m.d.H:i",strtotime($entry->pubDate)) $entry_title=strval($entry->title); $entry_url=strval($entry->link); $entry_cate=strval($entry->category); echo'<li><span>'.$entrydate.'</span>'; echo'<ahref="'.$entry->link.'">  '.$entry->title.'</a>; }//foreach終了 }//while終了 } catch(PDOException$e) { print"Error!:".$e->getMessage()."<br>"; die(); }//catch_end --------------表示まで成功したソース(終)---------------------------------- 上記プログラムのRSS情報を取得する部分 foreachの中にDBへの登録の処理を加えます。 --------------DBへの登録追加(始)---------------------------------- try { $dbh=newPDO($DSN,$DBUSER,$DBPASS); $query='SELECT*FROMrss_list' $stmt=$dbh->query($query); //rss_listテーブルよりtitle,urlを取得 while($result=$stmt->fetch(PDO::FETCH_ASSOC)) { $url=($result['url']); $title=($result['title']); echo$title.'<br>'; //RSS情報を取得 $xml=simplexml_load_file($url); foreach($xml->channel->itemas$entry) { $rss_date=date("Y.m.d.H:i",strtotime($entry->pubDate)) $rss_title=strval($entry->title); $rss_url=strval($entry->link); echo'<li><span>'.$entrydate.'</span>'; echo'<ahref="'.$entry->link.'">  '.$entry->title.'</a>; //追加部分(開始) try { $dbh2=newPDO($DSN,$DBUSER,$DBPASS); $query2='INSERT INTO rss_data SET(rss_title,rss_url,rss_date)VALUES(:rss_title,:rss_url,:rss_date)'; $stmt=$dbh2->prepare($query2); $stmt->bindParam(':rss_date',$rss_date); $stmt->bindParam(':rss_title',$rss_title); $stmt->bindParam(':rss_url',$rss_url); } catch(PDOException$e) { print"Error!:".$e->getMessage()."<br>"; die(); } //追加部分(終了) }//foreach終了 }//while終了 } catch(PDOException$e) { print"Error!:".$e->getMessage()."<br>"; die(); }//catch_end --------------DBへの登録追加(終)---------------------------------- DBへの追加処理を加えると、1個目のRSS記事20個は表示・DBへの登録がされますが、そこで処理が止まってしまっています。 原因を下記のように考えてみました。 1.PDO(セレクト文 while)→ foreach→ PDOのような入れ子になっておりデータベースの切断などに工夫が必要?(いろいろやってみましたが上手くいかないので上記ソースでは$dbh=null;は記載してません) 2.RSSの記事取得のforeachに問題がある。 1個目のRSSは20個の記事があり、20個分はDBに登録できている。21個目を殻で登録しようとしてDBでエラーが出て止まっている可能性があるかもしれない。 (その他疑問点) 上記のようなプログラムの場合、データベース切断はどこに記載すれば良いのか? 1回だけの接続の場合は下記のような形だと思いますが、ループの中に入れ子になったような場合どうすれば良いのでしょうか。 try { } catch(PDOException$e) { print"Error!:".$e->getMessage()."<br>"; die(); }//catch_end $dbh=null;
- データ入力条件
RSSを元にデータベースを作成予定です。 $db=new PDO("mysql:host=localhost;dbname=database",$dbuser,$dbpass); $rss=simplexml_load_file("http://rss.rssad.jp/rss/itmlifestyle/2.0/camera.xml"); for($i=0;$i<count($rss->item);$i++) { $title[$i]=$rss->item[$i]->title;//タイトル抽出 $url[$i]=$rss->item[$i]->link;//リンク先抽出 //▼▼▼▼▼検索させるクエリ発行▼▼▼▼▼ $search=$db->prepare("SELECT * FROM rss where title = ?"); $res[$i]=$search->execute(array($title[$i])); //検索結果が偽の場合 if(!$res[$i]) { $INSERT=$db->prepare("INSERT INTO rss(url,title) VALUES(?,?)"); $INSERT->execute(array($url[$i],$title[$i])); } } RSSよりリンクとタイトルを読み込み、DBに入力する際、既に登録されている値(タイトル)がある場合は重複させないよう、登録せず、無い場合は登録をさせようとしています。 こちらが上手く作動しません。 何処がおかしいのか大体探ってみると$res[$i]の部分がいつもtrueの真偽値になっており、判別が出来ず、登録も滅茶苦茶になってしまいます。 登録されている値と重複する場合は登録せず、新しい値のみを登録させることは出来ますよね? 持ってくるRSSの情報が多いと失敗するのか、これまた1個づつなら可能なんでしょうか? ややこやしいですが、どちらかご教授お願い致します。
- ベストアンサー
- PHP
- atlantic32
- 回答数4
- データ入力条件
RSSを元にデータベースを作成予定です。 $db=new PDO("mysql:host=localhost;dbname=database",$dbuser,$dbpass); $rss=simplexml_load_file("http://rss.rssad.jp/rss/itmlifestyle/2.0/camera.xml"); for($i=0;$i<count($rss->item);$i++) { $title[$i]=$rss->item[$i]->title;//タイトル抽出 $url[$i]=$rss->item[$i]->link;//リンク先抽出 //▼▼▼▼▼検索させるクエリ発行▼▼▼▼▼ $search=$db->prepare("SELECT * FROM rss where title = ?"); $res[$i]=$search->execute(array($title[$i])); //検索結果が偽の場合 if(!$res[$i]) { $INSERT=$db->prepare("INSERT INTO rss(url,title) VALUES(?,?)"); $INSERT->execute(array($url[$i],$title[$i])); } } RSSよりリンクとタイトルを読み込み、DBに入力する際、既に登録されている値(タイトル)がある場合は重複させないよう、登録せず、無い場合は登録をさせようとしています。 こちらが上手く作動しません。 何処がおかしいのか大体探ってみると$res[$i]の部分がいつもtrueの真偽値になっており、判別が出来ず、登録も滅茶苦茶になってしまいます。 登録されている値と重複する場合は登録せず、新しい値のみを登録させることは出来ますよね? 持ってくるRSSの情報が多いと失敗するのか、これまた1個づつなら可能なんでしょうか? ややこやしいですが、どちらかご教授お願い致します。
- ベストアンサー
- PHP
- atlantic32
- 回答数4
- データ入力条件
RSSを元にデータベースを作成予定です。 $db=new PDO("mysql:host=localhost;dbname=database",$dbuser,$dbpass); $rss=simplexml_load_file("http://rss.rssad.jp/rss/itmlifestyle/2.0/camera.xml"); for($i=0;$i<count($rss->item);$i++) { $title[$i]=$rss->item[$i]->title;//タイトル抽出 $url[$i]=$rss->item[$i]->link;//リンク先抽出 //▼▼▼▼▼検索させるクエリ発行▼▼▼▼▼ $search=$db->prepare("SELECT * FROM rss where title = ?"); $res[$i]=$search->execute(array($title[$i])); //検索結果が偽の場合 if(!$res[$i]) { $INSERT=$db->prepare("INSERT INTO rss(url,title) VALUES(?,?)"); $INSERT->execute(array($url[$i],$title[$i])); } } RSSよりリンクとタイトルを読み込み、DBに入力する際、既に登録されている値(タイトル)がある場合は重複させないよう、登録せず、無い場合は登録をさせようとしています。 こちらが上手く作動しません。 何処がおかしいのか大体探ってみると$res[$i]の部分がいつもtrueの真偽値になっており、判別が出来ず、登録も滅茶苦茶になってしまいます。 登録されている値と重複する場合は登録せず、新しい値のみを登録させることは出来ますよね? 持ってくるRSSの情報が多いと失敗するのか、これまた1個づつなら可能なんでしょうか? ややこやしいですが、どちらかご教授お願い致します。
- ベストアンサー
- PHP
- atlantic32
- 回答数4
- PHPのmail関数で送信者を設定できません
// 表題 $subject = $_POST['news_title']; // 本文 $message = ' <html> <head> <title>'.$_POST['news_title'].'</title> </head> <body> '.$_POST['textarea_id'].' </body> </html> '; // HTML メールを送信するには Content-type ヘッダが必須 $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n"; // 追加のヘッダ $headers .= 'To: '.$user_name.'<'.$email.'>'. "\r\n"; //$headers .= $_POST['news_title'] . "\r\n"; $headers .= 'From: 姓名 <myname@mymail.com>' . "\r\n"; // 送信する if(mail($to, $subject, $message, $headers)){$mes .= $email.'にメールを送信しました。 ';}else{$mes .= $email.'にメールを送信する際にエラーが発生しました。 ';} (後略) のようなコードになっていますが。$headersでFrom:を設定したのに、受信するメールには、送信者として、なになに@box450.bluehost.comが表示されます。どうやって正しく送信者を設定できるのでしょうか 因みにapacheのhttpd.confやPHPのphp.iniを変更できません。 わかる方がいらっしゃいましたら、ご回答をよろしくお願いします。
- データベース内容が表示されない
<br>検索結果<br> <?php if($num_rows== 0){ $message="該当するデータはありませんでした"; } else $message=$num_rows ."件ヒットしました"; echo $message; ?> <br> <?php while($row = mysql_fetch_array($result));?> <br> <?php echo"{$row['tiiki']}"; ?> <?php print"<td>{$row['syoku']}</td>"; ?> <?php print"<td>{$row['koyou']}</td>"; ?> <?php print"<td>{$row['kai']}</td>"; ?> <br> <a href="html.html">再検索</a> とすると、三件ヒットしました、などは表示されますが、肝心のtiiki,syoku等の情報が表示されず、空白のままです。記述ミス等ありますでしょうか??
- ベストアンサー
- PHP
- noname#142312
- 回答数1
- PHPで作成するジェネレーターでのご質問
以前も相談させていただいたのですが、 ツイッター診断メーカーに似たものを作成しています。 http://shindanmaker.com/ そこである程度は完成したのですが、1点だけどうしても作成方法が分からず、 その部分をご相談させてもらいたいです。 以下にソースコピペします。 //textAraryには50個ほどの文字列が入っています。 $txtNum = count($textArray); //文字列を10進数に $num = sprintf("%u",crc32($click)); 10進数を配列の数で割り、余りを求める $i= $num % $txtNum; $finish = $textArray[$i]; 抜粋なのですが、上記のソースで実装するとちゃんと意図した動作するのですが、 診断用の異なるニックネームを何回か入力すると、 かなりの確率でfinishに同じ文字列が抽出されてしまいます。 出来る限り、バラけさせたいのですが、 何か良いロジックはありますでしょうか。 当方頭が回らず、、お知恵を拝借できればと幸いです。。 また、参考になるサイトでも結構ですので、 ご教授の程、よろしくお願いいたします。
- PHPによるアンケートの項目追加
質問投稿させていただきます。 急遽仕事でPHPのアンケートの項目を追加することになったのですが PHPは全くの素人で困っています。 既存のアンケートに項目を追加したいのですが <h2>アンケートフォーム</h2> <form action="question2.php" method="post"> <dl class="clearfix"> <dt>性別は?</dt> <dd> <?php $male = '男性'; $female = '女性'; $number = array('1', '2'); echo ' <label><input type="radio" name="gender" value="' . $number[0] . '" />' . $male . '</label>' . "\n"; echo ' <label><input type="radio" name="gender" value="' . $number[1] . '" />' . $female . '</label>' . "\n"; ?> </dd> <dt>年齢は?</dt> <dd> <label> <select name="age"> <option value="0" selected="selected">選択してください</option> <?php for ($num = 1; $num <= 4; $num++) { echo ' <option value="' . $num . '">' . $num . '0代</option>' . "\n"; } ?> <option value="5">50代以上</option> </select> </label> </dd> <dt>趣味は?</dt> <dd class="hobby-area"> <?php $hobby = array(1 => '音楽鑑賞', 2 => '映画鑑賞', 3 => 'ドライブ', 4 => '旅行', 5 => 'その他'); foreach ($hobby as $key => $value) { echo ' <label><input type="checkbox" name="hobby[' . $key . ']" value="' . $key . '" />' . $value . '</label>' . "\n"; } ?> </dd> </dl> <p> <input type="submit" value="投票する" /> </p> </form> この文に <dt>趣味は?</dt> <dd class="hobby-area"> <?php $service = array(1 => 'あああ', 2 => 'あああ', 3 => 'あああ', 4 => 'あああ', 5 => 'あああ'); foreach ($service as $key => $value) { echo ' <label><input type="checkbox" name="service[' . $key . ']" value="' . $key . '" />' . $value . '</label>' . "\n"; } ?> </dd> </dl> このように項目を増やしたいのですがなぜか追加した項目の確認ページで Warning: Invalid argument supplied for foreach() in ~ と表示され echo '<dt>サービスは?</dt>'; echo '<dd>'; foreach ($service as $value) { switch ($value) { case 1: echo 'あああ<br />'; break; case 2: echo 'あああ<br />'; break; case 3: echo 'あああ<br />'; break; case 4: echo 'あああ<br />'; break; case 5: echo 'あああ<br />'; break; } } echo '</dd>'; この部分にエラーがあると表示されてしまいます。 これは$serviceに値がうまくいっていないということでしょうか? 素人の質問なので足りない処などあると思いますが よろしければ御回答ください。 よろしくお願い致します。
- ベストアンサー
- PHP
- ideideon-1
- 回答数4
- PHPによるアンケートの項目追加
質問投稿させていただきます。 急遽仕事でPHPのアンケートの項目を追加することになったのですが PHPは全くの素人で困っています。 既存のアンケートに項目を追加したいのですが <h2>アンケートフォーム</h2> <form action="question2.php" method="post"> <dl class="clearfix"> <dt>性別は?</dt> <dd> <?php $male = '男性'; $female = '女性'; $number = array('1', '2'); echo ' <label><input type="radio" name="gender" value="' . $number[0] . '" />' . $male . '</label>' . "\n"; echo ' <label><input type="radio" name="gender" value="' . $number[1] . '" />' . $female . '</label>' . "\n"; ?> </dd> <dt>年齢は?</dt> <dd> <label> <select name="age"> <option value="0" selected="selected">選択してください</option> <?php for ($num = 1; $num <= 4; $num++) { echo ' <option value="' . $num . '">' . $num . '0代</option>' . "\n"; } ?> <option value="5">50代以上</option> </select> </label> </dd> <dt>趣味は?</dt> <dd class="hobby-area"> <?php $hobby = array(1 => '音楽鑑賞', 2 => '映画鑑賞', 3 => 'ドライブ', 4 => '旅行', 5 => 'その他'); foreach ($hobby as $key => $value) { echo ' <label><input type="checkbox" name="hobby[' . $key . ']" value="' . $key . '" />' . $value . '</label>' . "\n"; } ?> </dd> </dl> <p> <input type="submit" value="投票する" /> </p> </form> この文に <dt>趣味は?</dt> <dd class="hobby-area"> <?php $service = array(1 => 'あああ', 2 => 'あああ', 3 => 'あああ', 4 => 'あああ', 5 => 'あああ'); foreach ($service as $key => $value) { echo ' <label><input type="checkbox" name="service[' . $key . ']" value="' . $key . '" />' . $value . '</label>' . "\n"; } ?> </dd> </dl> このように項目を増やしたいのですがなぜか追加した項目の確認ページで Warning: Invalid argument supplied for foreach() in ~ と表示され echo '<dt>サービスは?</dt>'; echo '<dd>'; foreach ($service as $value) { switch ($value) { case 1: echo 'あああ<br />'; break; case 2: echo 'あああ<br />'; break; case 3: echo 'あああ<br />'; break; case 4: echo 'あああ<br />'; break; case 5: echo 'あああ<br />'; break; } } echo '</dd>'; この部分にエラーがあると表示されてしまいます。 これは$serviceに値がうまくいっていないということでしょうか? 素人の質問なので足りない処などあると思いますが よろしければ御回答ください。 よろしくお願い致します。
- ベストアンサー
- PHP
- ideideon-1
- 回答数4
- セレクトメニューの値をメール送信できません
PHPの勉強がてらにお問い合わせフォームを作ってみたのですが、 セレクトメニューを追加したところ、エラーが出てしまいうまく出来ません。 調べても原因が分からないので、間違っている箇所があれば ご指摘お願いします。 test.html <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>メールフォーム</title> </head> <body> <form action="test.php" method="post"> <select name="test"> <option value="テストA">テストA</option> <option value="テストB">テストB</option> <option value="テストC">テストC</option> </select> <dl> <dt>お名前</dt> <dd><input name="name" type="text" id="name" size="50" maxlength="225" /></dd> <dt>メールアドレス</dt> <dd><input name="email" type="text" id="email" size="50" maxlength="225" /></dd> <dt>お問い合わせ</dt> <dd> <textarea name="message" id="message" cols="50" rows="10"></textarea> </dd> </dl> <input type="submit" value="送信する" /> </form> </body> </html> test.php <?php mb_language("japanese"); mb_internal_encoding("UTF-8"); $to = 'xxx@xxx'; if (isset($_POST['name'])) { $name = $_POST['name']; $body = $_POST['message']; $email = $_POST['email']; $test = $_POST['test']; $succese = mb_send_mail($to,$name,$body,$email,$test); } ?> <?php if($succese){ print('送信しました。'); } else{ print ('送信に失敗しました。'); } ?>
- セレクトメニューの値をメール送信できません
PHPの勉強がてらにお問い合わせフォームを作ってみたのですが、 セレクトメニューを追加したところ、エラーが出てしまいうまく出来ません。 調べても原因が分からないので、間違っている箇所があれば ご指摘お願いします。 test.html <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>メールフォーム</title> </head> <body> <form action="test.php" method="post"> <select name="test"> <option value="テストA">テストA</option> <option value="テストB">テストB</option> <option value="テストC">テストC</option> </select> <dl> <dt>お名前</dt> <dd><input name="name" type="text" id="name" size="50" maxlength="225" /></dd> <dt>メールアドレス</dt> <dd><input name="email" type="text" id="email" size="50" maxlength="225" /></dd> <dt>お問い合わせ</dt> <dd> <textarea name="message" id="message" cols="50" rows="10"></textarea> </dd> </dl> <input type="submit" value="送信する" /> </form> </body> </html> test.php <?php mb_language("japanese"); mb_internal_encoding("UTF-8"); $to = 'xxx@xxx'; if (isset($_POST['name'])) { $name = $_POST['name']; $body = $_POST['message']; $email = $_POST['email']; $test = $_POST['test']; $succese = mb_send_mail($to,$name,$body,$email,$test); } ?> <?php if($succese){ print('送信しました。'); } else{ print ('送信に失敗しました。'); } ?>
- Javascriptで特殊文字を置換する方法
表題の件で分からず教えてください。 PerlでHTMLとJavascript(HTML埋め込み)を作成しています。 Javascript(On Click)で、文字列を置換させたいのですが、うまくできません。 (最終的にやりたいことはTextAreaに埋め込んだタグ付き文章を「プレビューする」ようなイメージです) ■置換前の文字列 $body$ ■置換後の文字列 任意の文字列(タグを含む) ネットで調べたところ次の方法でできるようだったので試しましたが、できませんでした。 var rgexp = new RegExp("\$body\$", "g"); str = frm.preview.value.replace(rgexp, "■■■"); 「$」とエスケープ文字をはずすとうまくいくので、多分「$」で失敗しているのだと思いますが 解決が分かりません。 ※エスケープをはずすとPerlの出力時に怒られてしまいます お分かりになる方いらっしゃいましたらお願いします。
- ベストアンサー
- JavaScript
- Azzz___
- 回答数2
- Amazon APIの利用ガイドラインについて
お世話になってます。 AmazonのAPIを使用して商品(書籍)検索のWebを作成してみようと考えています。 特にアフィリエイトなどは考えていないのですが、テスト的に作成したく、下記のガイドラインを読んでみました。 1時間に2,000回リクエスト送信できるというのも、さらに追加リクエストできる条件というのも分かるのですが、 収益の無いテストサイトで試した場合に、万が一1時間2,000リクエストを超えてしまったら、 逆に費用が発生したりするのでしょうか? APIを使用する為のIDを取得するのに、クレジットカード番号の入力を求められたので、 もしかしたら制限をオーバーしたらお金を取られるのかもと思いました。 ウェブ上で検索したのですが、はっきりとした情報が得られず、分かる方いらっしゃいましたら 教えて頂けると助かります。 =========================== Product Advertising APIへのアクセスのために使用される各アカウントは、1時間につき2,000リクエストまでの当初利用限度が認められます。その後は、各アカウントは、30日間に発生する出荷された商品の1時間あたりの収益100円ごとに、1時間につき500リクエスト(1時間につき最大25,000リクエストまで)が受けられます。 =========================== 宜しくお願い致します。
- ベストアンサー
- その他(プログラミング・開発)
- gookyuu
- 回答数1
- phpのセッションについて質問です。
今、for文を使ってsession変数に値を入れて行く処理を作っております。そのためにセッション配列を使おうと考えておりますが、使い方が分からないので教えてください。一応、自分なりに書いてみたのですが動きませんでした。処理的には、一つ目のfor文で値をsessionの配列に一つずつ入れていき、二つ目のfor文でその格納したのを表示するようにしたいです。 <?php session_start(); for($a=1;$a<10;$a++){ $_SESSION['no'][$a]=$a; } for($b=1;$b<10;$b++){ print("こんにちわ".$SESSION['no'][$b]); } ?> ご回答のほどをよろしくお願いします。
- ベストアンサー
- PHP
- kokorochi77
- 回答数3
- ZendFrameworkでParseError
レンタルサーバへZendFrameworkのライブラリを設置したところ、以下のエラーが出ます。 Parse error: parse error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /home/****/*****/ZendFramework/library/Zend/Controller/Front.php on line 44 index.phpでFront.phpをrequire_onceしているので、index.phpもZendFrameworkライブラリも設定は間違っていないのではないかと思われます。 ライブラリのデータ破損などがあることも考え、若干バージョンの違うものをアップロードしてみましたが同じでした。 自分の作成したファイルでエラーが出ているのであれば問題点の探しようもあるのですが、フレームワークのライブラリなので、どう対処していいかが分かりません。 分かる方がいらしたらぜひ教えてください。
- ベストアンサー
- PHP
- bacchus047
- 回答数2
- phpのセッションについて質問です。
今、for文を使ってsession変数に値を入れて行く処理を作っております。そのためにセッション配列を使おうと考えておりますが、使い方が分からないので教えてください。一応、自分なりに書いてみたのですが動きませんでした。処理的には、一つ目のfor文で値をsessionの配列に一つずつ入れていき、二つ目のfor文でその格納したのを表示するようにしたいです。 <?php session_start(); for($a=1;$a<10;$a++){ $_SESSION['no'][$a]=$a; } for($b=1;$b<10;$b++){ print("こんにちわ".$SESSION['no'][$b]); } ?> ご回答のほどをよろしくお願いします。
- ベストアンサー
- PHP
- kokorochi77
- 回答数3
- PHPメール送信画面(メールフォーム)
こんにちは!PHPの勉強している学生です。 皆さん、お忙しいところ恐縮ですが、2つのファイル(下記のform.htmlとsend.php)でメール送信画面(メールフォーム)を作っています。大元はググって、無料ソースをコピーして、無料レンタルサーバーの@pageにFFFTP送信して確認致しました。 (1) 結果、送信ボタンを押した後、「メールが送信されました。」と表示はされるのですが、実際にはメールが送られてきません。ちなみに、test@mopera.netの部分に、NTTドコモで契約している自分のメールアドレスを入れました。お恥ずかしながら、A,無料サーバー側の問題なのか?、B,ドコモの設定の問題なのか?、C,メールフォームの問題なのか?分かりません。 ここに関しては、原因やソースコードをご教授頂ければ幸いです。 (2) またPHPのメールフォームでは、そもそもどの様な仕組みでメールが送られるのかが分かりません。 つまり、サーバーでメールを送っているにしても、受信のメールアドレスは何になるのでしょうか? メールフォームで入力した、メールアドレスから送られるのでしょうか? 素人なので検討がつきませんが、より良いソースコード等がありましたらお知らせ下さいませ。 どうぞ宜しくお願い致します。 ■form.html■ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>sample</title> </head> <body> <form action="send.php" method="post"> 件名(タイトル):<br /> <input type="text" name="subject" size="30" value="" /><br /> 送信者名:<br /> <input type="text" name="name" size="30" value="" /><br /> メールアドレス:<br /> <input type="text" name="mail" size="30" value="" /><br /> 本文:<br /> <textarea name="message" cols="30" rows="5"></textarea><br /> <br /> <input type="submit" value="送信する" /> </form> </body> </html> ■send.php■ <?php $message = "名前:" . $_POST["name"] . "\n本文:" . $_POST["message"]; if (!mb_send_mail("test@mopera.net", $_POST["subject"], $message, "From: " . $_POST["mail"])) { exit("error"); } ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>sample</title> </head> <body> <p>メールが送信されました。</p> <p><a href="top.html">戻る</a></p> </body> </html>
- ベストアンサー
- PHP
- Yoshitaka2011
- 回答数1
- ZendFrameworkでParseError
レンタルサーバへZendFrameworkのライブラリを設置したところ、以下のエラーが出ます。 Parse error: parse error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /home/****/*****/ZendFramework/library/Zend/Controller/Front.php on line 44 index.phpでFront.phpをrequire_onceしているので、index.phpもZendFrameworkライブラリも設定は間違っていないのではないかと思われます。 ライブラリのデータ破損などがあることも考え、若干バージョンの違うものをアップロードしてみましたが同じでした。 自分の作成したファイルでエラーが出ているのであれば問題点の探しようもあるのですが、フレームワークのライブラリなので、どう対処していいかが分かりません。 分かる方がいらしたらぜひ教えてください。
- ベストアンサー
- PHP
- bacchus047
- 回答数2
- C言語で電卓を作成する。
C言語を用いて三項まで計算できる電卓を作りたいのですが、どうも上手くいきません。 四則演算(+、-、×、÷)の優先順位を用いたプログラミング方法が分かりません。 以下に自分で作成したソースを添付します。 このソースに修正や追加して3項までの四則演算できるプログラミングを教えていただけますか? 宜しくお願いします。 #include <stdio.h> int main(void) { int answer; /*答え*/ int x,y,z; /*x=第一項,y=第二項,第三項*/ char op1,op2; /*演算子1、演算子2*/ while(1){ printf("式を入力してください\n"); printf("式:"); scanf("%d %c %d %c %d" ,&x,&op1,&y,&op2,&z); if((op1=='+'|'-'|'*'|'/') && (op2=='+'|'-'|'*'|'/')){ switch(op2){ case '+': answer=y+z; break; case '-': answer=y-z; break; case '*': answer=y*z; break; case '/': if(z==0){ printf("ERROR\n"); return 0; } answer=y/z; break; default: printf("ERROR\n"); return 0; } switch(op1){ case '+': answer=x+answer; break; case '-': answer=x-answer; break; case '*': answer=x*answer; break; case '/': if(y==0){ printf("ERROR\n"); return 0; } answer=x/answer; break; default: printf("ERROR\n"); return 0; } printf("答え:%d\n",answer); } else { switch(op1){ case '+': answer=x+y; break; case '-': answer=x-y; break; case '*': answer=x*y; break; case '/': if(y==0){ printf("ERROR\n"); return 0; } answer=x/y; break; default: printf("ERROR\n"); return 0; } printf("答え:%d\n",answer); } } } 左辺に×、÷が来ても優先的に計算されません。
- ベストアンサー
- C・C++・C#
- dezaemon1120
- 回答数5
- ディレクトリ内一覧表示
現在PHPにてディレクトリ内の中のディレクトリ一覧を作成しています。 わからないことがあり、ご投稿させていただきました。 imageフォルダの中に 20110101フォルダと20100101フォルダを作成しています。 imageフォルダ内のディレクトリを一覧表示させたいのですが、下記ソースですと、20110101しか表示されません。 おわかりの方がいらっしゃいましたらご教示お願いします。 $path = 'imageフォルダまでの絶対パス'; $dir = scandir($path, 1);//フォルダ内降順指定 if($dir != "." && $dir != "..") { $dirArray = array($dir); foreach($dirArray as $dir => $val) { for($i = 0; $i <= $dir; $i++) { $dirName = count($dirArray); echo $val[$dirName]; } } } closedir($dir); 宜しくお願いします。