• 締切済み

PHP初心者です。どうしてもエラーが出てしまいます。プログラマさんお願いします!!

初めまして。閲覧ありがとうございます。 PHPを勉強中の素人です。 「Twitter」のBOTを何とか作りたいと思い、PHPを勉強しつつPHPのソースを公開している方を参考にさせて頂きながら何とか組んでみたのですが、どうしてもエラーが出てしまい動かせません。 構文エラーということは分かるのですが、何処がおかしいのか、分かる方は教えて頂けないでしょうか?初心者丸出しの質問で申し訳ありません。 長いのですがソースを書きます。 <?php require_once 'HTTP/Client.php'; //自分のタイムラインを所得 $username = "ユーザー名"; $password = "パス"; $page = "statuses/friends_timeline.xml"; $basic = array('Authorization'=>'Basic '.base64_encode($username.':'.$password)); $client = new HTTP_Client(null, $basic); $client->get("http://twitter.com/".$page ); $response = $client->currentResponse(); $body = mb_convert_encoding($response['body'], "EUC-JP","auto"); $xml = new SimpleXMLElement($body); //ランダム発言を定義 $msg_pattern = array( "[someone]発言0", "[someone]発言1", "[someone]発言2", "[someone]発言3", "[someone]発言4", ); if($xml) { //var_dump ($xml); //該当する最新5件の発言を取得 for($i=0;$i<5;$i++){ $post_member = (string)$xml->entry[$i]->title; $post_date = $xml->entry[$i]->updated; //発言時刻を取得し、タイムスタンプに // 32400はGMTと日本時間とのズレ(9時間) $date_array = array(); $rcd = mbereg("^([0-9]{4}).([0-9]{2}).([0-9]{2})T([0-9]{2}).([0-9]{2}).([0-9]{2})Z$",$post_date,$date_array); $post_time = 32400 + mktime($date_array[4],$date_array[5],$date_array[6],$date_array[2],$date_array[3],$date_array[1]); //発言の経過時間 $pasttime = $now_time - $post_time; //発動は15分以内の発言に対して if($pasttime > 0 && $pasttime < 900 && !array_search($post_member,$followed)){ $tofollow = "@".$post_member." "; //発言をランダムで選択、相手の名前を置換 $msg = preg_replace("[\[someone\",$tofollow,$msg_pattern[mt_rand(0,count($msg_pattern)-1)]); //twitterへの書き込み $params = "status=". rawurlencode($msg); $result = file_get_contents($url.$params , false, stream_context_create(array( "http" => array( "method" => "POST", "header" => "Authorization: Basic ". base64_encode($username. ":". $password) ) ))); // array_push($followed,$post_member); } } }else{ return; } ?>

  • PHP
  • 回答数2
  • ありがとう数1

みんなの回答

  • aky_root
  • ベストアンサー率0% (0/0)
回答No.2

PHPをブラウザで実行したら、何行目にエラーがある、と表示されるのではないでしょうか? またエラーの際に表示される文章によって何故エラーが出るのかもわかるかと思います。 行数がわかればその周辺を確認して見ることで原因を見つけやすくなるのでは・・・?

  • php504
  • ベストアンサー率42% (926/2160)
回答No.1

//発言をランダムで選択、相手の名前を置換 $msg = preg_replace("[\[someone\",$tofollow,$msg_pattern[mt_rand(0,count($msg_pattern)-1)]); ここが " で閉じてないです

sueora
質問者

補足

ありがとうございます。 $msg = preg_replace("[\[someone\",$tofollow,$msg_pattern[mt_rand(0,count($msg_pattern)-1)]); を、 $msg = preg_replace("[\[someone]\,$tofollow,$msg_pattern[mt_rand(0,count($msg_pattern)-1)]"); と直してみたのですが、やはり構文ミスが出てしまいます・・ "だけでなく[の数も違う気がしたのでいじってみたのですが違ったのでしょうか? もし宜しければ、教えていただけると幸いです! 申し訳ありません・・!

関連するQ&A

  • PHPでパースエラーが出て困ってます 初心者です

    PHP初心者でろくに調べもしずにすいません>< 今、PHPでTwitterに投稿するPHPスクリプトを作っているのですが・・・ $url = "http://twitter.com/statuses/update.xml?"; $username = $_POST["name"]; $password = $_POST["pass"]; $message = $_POST["message"] $params = "status=". rawurlencode($message); $result = file_get_contents($url.$params , false, stream_context_create(array( "http" => array( "method" => "POST", "header" => "Authorization: Basic ". base64_encode($username. ":". $password) ) ))); 5行目の所でエラーが出てしまい、投稿する事が出来ません どうしたら正常な動作をしてくれるのでしょうか? よろしくお願いします。

  • PHP初心者です。何処がエラーなのかさっぱり解りません。

    超初心者です。 PHPの勉強を始めたばかりで、いきなりつまずいています。 下記の表示になりエラーになっているのですが、何処がエラーなのか意味が解りません。 Parse error: syntax error, unexpected $end in C:\xampp\htdocs\phplesson\03\login.php on line 31 どなたか教えてください。 よろしくお願いします。 ----------------- <?php session_start(); $error_message = ""; //ログインボタンが押されたかを判定 if (isset($_POST["login"])) { if ($_POST["member_name"] == "php" && $_POST["password"] == "password") { //ログインが成功した証拠をセッションに保持 $_SESSION["login_name"] = $_POST["member_name"]; //管理者専用画面へWebブラウザをリダイレクトさせる $login_url = "http://{$_SERVER["HTTP_HOST"]}/phplesson/03/anq_result.php"; header("Location: {$login_url}"); exit; } $error_message ="メンバー名かパスワードを間違えています。"; } ?> <html> <body> <?php if ($error_message) { print '<font color="red">' .$error_message. '</font>'; } ?> <form action="/phplesson/03/login.php" method="post"> メンバー名:<input type="text" name="member_name" value="" /><br /> パスワード:<input type="password" name="password" value="" /><br /> <input type="submit" name="login" value="ログイン" /> </form> </body> </html>

    • ベストアンサー
    • PHP
  • ロリポップでPHPを動かしたい。

    ロリポップでPHPを動かしたいのですが、ローカルでは動作するのに、 サーバー上では動作しません。 セーフモードはOFFにしてみたり、してみたのですが。 ↓im.kayac.comを使い、iphoneに通知を送る処理です。 <?php $username = 'XXXX'; $password = 'XXXX'; $data = array( "message" => "ほげほえ", "password" => $password, ); $data['sig'] = sha1($data['message'] . $data['password']); unset($data['password']); $data = http_build_query($data, "", "&"); //header $header = array( "Content-Type: application/x-www-form-urlencoded", "Content-Length: ".strlen($data) ); $context = array( "http" => array( "method" => "POST", "header" => implode("rn", $header), "content" => $data ) ); $url = "http://im.kayac.com/api/post/{$username}"; echo file_get_contents($url, false, stream_context_create($context)); ?>

    • 締切済み
    • PHP
  • phpからxmlへの文字化け

    PHPについての質問です。PHPのバージョンは5です。 FLASH8で作ったスクリプトからPHPに変数を送り、その変数をPHPからXMLに送っています。 しかしPHPからXMLに送ると日本語がちゃんと表示されません。何かPHPの方でしないとまずいのですか? <FLASH> System.useCodepage = true; SendData = new LoadVars(); //送りたいデータを箱に詰める this.btn_mc.onRelease = function() { _root.SendData.pro1 = nam; _root.SendData.pro2 = sbj; _root.SendData.pro3 = mail; _root.SendData.pro4 = product; //データ(中身)を詰めた箱をgetFlash.phpに送信 _root.SendData.sendAndLoad("http://localhost/php/xml_php/xml12.php", _root.SendData); }; <PHP> <?php /*変数を入れる*/ $name = $_POST["pro1"]; $sbj = $_POST["pro2"]; $add = $_POST["pro3"]; $msg = $_POST["pro4"]; /*時間を取得する*/ $stamp = time(); $date = date('Y,m/d(D)', $stamp); /*xmlに追加*/ $xml_path = "test1.xml"; $xml = file_get_contents( $xml_path ); $replace_key = "<article>"; $add_xml = $replace_key."\n<entry name='$name' dat='$date' tit='$sbj' contents='$msg'/>\n"; $result = str_replace($replace_key,$add_xml,$xml); file_put_contents( $xml_path , $result ); ?> <xml> <?xml version="1.0" encoding="utf-8"?> <article> <entry name="ha" dat="2008,03/10(Mon)" tit="test" contents="hogehoge"/> </article> となっています。

    • 締切済み
    • PHP
  • PHPでのID、パスワード認証

    学校の宿題でログインページからデータベースに入っているIDとパスワードでログインし、2枚目ページにたどり着くというコードを書いています。 ログオンページにはphpコードは一切なく、ログイン後のページにすべてphpを入れるというやり方です。 データベースに接続はしているのですが、ログインの認証ができず、正しいIDとパスワードをいれてもエラーメッセージ「IDとパスワードが正しくありません」が返ってきます。 コードは $u =$_POST['userid']; $p =$_POST['password']; $result = mysql_query("SELECT * FROM valid_logon"); while($row=mysql_fetch_array($result)) { $username = $row['userid']; $passcode = $row['password']; } if($username == $userid && $pass==$password) { header("Location: mybill.php"); } else if($passcode != $p ||$username != $u ) { echo("Please Enter Correct Username and Password ..."); exit; } としているのですが、何故すべてエラーになってしまうのか、もし宜しかったら教えてください!! どうぞ宜しくお願いします。

    • ベストアンサー
    • PHP
  • phpのif文について

    phpでログイン処理のif文を書いています。 nameとpasswordのフィールドが記入されているのかをチェックするif文を書いたのですが、機能してくれません。何かが間違っているのでしょうか。 何も入力しないor間違った情報を入力する ということをしてもログインが出来てしまいます。 どなたかテェックお願い致します。 <?php require('dbconnect.php'); session_start(); if ($_COOKIE['name'] != '') { $_POST['name'] = $_COOKIE['name']; $_POST['password'] = $_COOKIE['password']; $_POST['save'] = 'on'; } if (!empty($_POST)) { // ログインの処理 if ($_POST['name'] != '' && $_POST['password'] != '') { $sql = sprintf('SELECT * FROM members WHERE name="%s" AND password="%s"', mysql_real_escape_string($_POST['name']), sha1(mysql_real_escape_string($_POST['password'])) ); $record = mysql_query($sql) or die(mysql_error()); if ($table = mysql_fetch_assoc($record)) { // ログイン成功 $_SESSION['id'] = $table['id']; $_SESSION['time'] = time(); // ログイン情報を記録する if ($_POST['save'] == 'on') { setcookie('name', $_POST['name'], time()+60*60*24*14); setcookie('password', $_POST['password'], time()+60*60*24*14); } header('Location: index.php'); exit(); } else { $error['login'] = 'failed'; } } else { $error['login'] = 'blank'; } } ?>

    • ベストアンサー
    • PHP
  • PHP エラー

    PHP勉強中の初心者です。会員登録画面を作り動作確認しているのですが ログインするときに下記のエラーが出ます。 Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'nakahiro7'@'localhost' (using password: NO) in /home/nakahiro7/nakahiro7.webcrow.jp/public_html/public_html/login.php on line 15 Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in /home/nakahiro7/nakahiro7.webcrow.jp/public_html/public_html/login.php on line 15 Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'nakahiro7'@'localhost' (using password: NO) in /home/nakahiro7/nakahiro7.webcrow.jp/public_html/public_html/login.php on line 16 Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in /home/nakahiro7/nakahiro7.webcrow.jp/public_html/public_html/login.php on line 16 Warning: mysql_query() [function.mysql-query]: Access denied for user 'nakahiro7'@'localhost' (using password: NO) in /home/nakahiro7/nakahiro7.webcrow.jp/public_html/public_html/login.php on line 18 Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/nakahiro7/nakahiro7.webcrow.jp/public_html/public_html/login.php on line 18 Access denied for user 'nakahiro7'@'localhost' (using password: NO) login.phpのソースは下記です <?php require('dbconnect.php'); session_start(); if ($_COOKIE['email'] != ''){ $_POST['email'] = $_COOKIE['email']; $_POST['password'] = $_COOKIE['password']; $_POST['save'] = 'on'; } if(!empty($_POST)) //ログインの処理 if ($_POST['email'] != '' && $_POST['password'] != ''){ $sql = sprintf('SELECT * FROM member WHERE email="%s" AND password="&s"', mysql_real_escape_string($_POST['email']), mysql_real_escape_string(sha1($_POST ['password']))); $record = mysql_query($sql) or die(mysql_error()); if ($table = mysql_fetch_assoc($record)) { //ログイン成功 $_SESSION['id'] = $table['id']; $_SESSION['time'] = time(); //ログイン情報を記録する if ($_POST['save'] == 'on') { setcookie('email',$_POST['email'],time()+60*60*24*14); setcookie('password',$_POST['password'], time()+60*60*24*14); } header('Location: index.php'); exit();}else{ $error['login'] = 'failed'; }}else{ $error['login'] = 'blank'; } ?> <div id="lead"> <p>アドレスとパスワードを入力しログインしてください</p> <p>メンバーズ登録がまだの方はこちら</p> <p>&raquo;<a href="join/">メンバーズ登録をする</a></p> </div> <form action="" method="post"> <d1> <dt>アドレス</dt> <dd> <input type="text" name="email" size="35" maxlength="255" value="<?php echo htmlspecialchars($_POST['email']); ?>" /> <?php if($error['login'] == 'blank'): ?> <p class="error">*アドレスとパスワードを記入ください</p> <?php endif; ?> <?php if ($eoor['login'] == 'failed'): ?> <p class="error">*ログインに失敗しました。正しく入力してください。</p> <?php endif; ?> </dd> <dt>pasword</dt> <dd> <input type="password" name="password" size="35" maxlength="255" value="<?php echo htmlspecialchars($_POST['password']); ?>" /> </dd> <dt></dt> <dd><input id="save" type="checkbox" name="save" value="on"> <label for="save">次回から自動的にログイン</label> </dd> </d1> <div> <input type="submit" value="Log in"/></div> </form> ググりまくりましたが解決できませんでした。 エラーの解決方法 その他ご指摘ありましたらお願いいたします。

    • ベストアンサー
    • PHP
  • PHPで画像のアップについて

    初歩的な問題で申し訳ありません。各店舗のホームページの掲示板にセールの書き込みをしたいのですが、テキスト部分はアップできるのですが、画像がどうしうてもできません。アドバイスをお願いします。 <?php require'HTTP/Client.php'; // コンストラクタに渡すパラメータの設定 $option = array( "timeout" => "10", // タイムアウト "allowRedirects" => true, // リダイレクトを許容するか?true/false "maxRedirects" => 3, // リダイレクトする場合の最大回数 ); // HTTPクライアントの作成 $client = new HTTP_Client($option); $posturl = "http://hogehoge.com/bbs.php"; //$imgUrl = $_POST['data']; // 送信パラメータの設定 $params = array( "title" => $_POST['title'], "file" => $_FILES['data'], "mes" => $_POST['mes'], "mode" => "write", ); // POSTリクエストの送信 $code = $client->post($posturl, $params); // レスポンスのチェック if ($code != "200") { echo "リクエスト失敗"; } // POSTリクエストに対して返って来たHTMLを出力 $response = $client->currentResponse(); echo $response["body"]; ?>

    • 締切済み
    • PHP
  • PHPの会員登録システムのエラーについて

    現在よくわるPHPの教科書という本を参考に、会員登録システムをつくっています。 しかし、本に書いてある内容をそのまま書いて実行してみてもエラーがでてきます。 そこでいろいろとネットで調べてみて以下のようなコードになりました。 <?php //$error = array('name'=>'', 'email'=>'', 'password'=>''); session_start(); if (!empty($_POST)) { if ($_POST['name'] === '') { $error['name'] = 'blank'; } if ($_POST['email'] === '') { $error['email'] = 'blank'; } if (strlen($_POST['password']) < 4) { $error['password'] = 'length'; } if ($_POST['password'] === '') { $error['password'] = 'blank'; } if (empty($error)) { $_SESSION['join'] = $_POST; header('Location: http:./check.php'); exit(); } } ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>会員登録</title> </head> <body> <form action="" method="POST"> ユーザーID<input type="text" name="name" value="<?php print isset($_POST['name']) ? htmlspecialchars($_POST['name'], ENT_QUOTES, 'UTF-8'):"";?>" /> <?php if ($error['name'] === 'blank') { ?> <p class="error">*ユーザーIDを入力してください</p> <?php } ?> メールアドレス<input type="text" name="email" value="<?php print isset($_POST['email']) ? htmlspecialchars($_POST['name'], ENT_QUOTES, 'UTF-8'):"";?>" /> <br> <?php if ($error['email'] === 'blank') { ?> <p class="error">*メールアドレスを入力してください</p> <?php } ?> パスワード<input type="password" name="password"> <br> <?php if ($error['password'] === 'blank') { ?> <p class="error">*パスワードを入力してください</p> <?php } ?> <?php if ($error['password'] === 'length') { ?> <p class="error">*パスワードは4文字以上で入力してください</p> <?php } ?> <input type="submit" value="登録"> </form> </body> </html> しかしこれでもエラーがでます。以下のエラー Warning: Unknown: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/****/www/join/index.php on line 39 Parse error: syntax error, unexpected ':' in /home/kazu94/www/join/index.php on line 39 誰かこのエラーの謎を解いてください お願いします(泣)

    • 締切済み
    • PHP
  • 管理者がパスワードのユーザー名で管理ページへログインできるようにしたい

    管理者がパスワードのユーザー名で管理ページへログインできるようにしたいのですが、どこの部分に ユーザーIDやパスワードを設定すれば良いのかわかりません;_;(長いので所々はしょってます) どなたか教えてください。 $username=isset($_POST['username'])?$_POST['username']:""; $password=isset($_POST['password'])?$_POST['password']:""; $database_name=isset($_POST['database_name'])?$_POST['database_name']:""; $database_host=isset($_POST['database_host'])?$_POST['database_host']:"localhost"; $database_username=isset($_POST['database_username'])?$_POST['database_username']:""; $database_password=isset($_POST['database_password'])?$_POST['database_password']:""; $product_code=isset($_POST['product_code'])?$_POST['product_code']:"";      $server_path=str_replace("\\","\\\\",$server_path); } /*else if (file_get_contents("http://www.bpowerhouse.com/bph_adminpanel/pr_validate.php?code=".$product_code)!=1) { echo "<span style='color:red;'>Your product code is wrong!</span><br/>"; }*/ else { if(is_writable("includes/")){ $f=@fopen("includes/passwd.inc.php","w+"); $database_inf='<?php $DbHost = "'.$database_host.'"; // The host where the MySQL server resides $DbDatabase = "'.$database_name.'"; // The database you are going to use $DbUser = "'.$database_username.'"; // Username $DbPassword = "'.$database_password.'"; // Password $server_path= "'.$server_path.'"; ?>'; i

    • ベストアンサー
    • PHP