• 締切済み

Parse errorの対処法について

はじめて質問をさせて頂きます。 個人でWEBのデザインをさせて頂いているものですが、個人のプログラマーの方に開発をお願いしていたのですが、体の不調を訴えてここ数日連絡がとれなくて困ってます。 お客様のコンタクトフォームに以下のようなエラーが出てしまう現象が起きてその対処をどうしたら良いか、どなたかご指示頂けると助かります。宜しくお願いします。 Parse error: syntax error, unexpected '@' in /export/sd209/www/jp/r/e/gmoserver/0/0/********/******.co.jp/contact/index.php on line 9 -------------------------------------以下、index.php------------------------------------------- <?php require_once './b2smarty.php'; require_once '../lib/qdmail.php'; $smaty = new b2smarty(); $from_addr = "xxxx@xxxx.co.jp"; $from_name = "xxxxxxxxxx"; $mail_subject = "お問い合わせ"; $error_message = ""; $cmd = isset($_POST['cmd'])?$_POST['cmd']:''; $data['name'] = isset($_POST['name']) ?trim($_POST['name' ]):''; $data['rname'] = isset($_POST['rname']) ?trim($_POST['rname' ]):''; $data['post01'] = isset($_POST['post01']) ?trim($_POST['post01' ]):''; $data['post02'] = isset($_POST['post02']) ?trim($_POST['post02' ]):''; $data['pref'] = isset($_POST['pref']) ?trim($_POST['pref' ]):''; $data['add'] = isset($_POST['add']) ?trim($_POST['add' ]):''; $data['tel'] = isset($_POST['tel']) ?trim($_POST['tel' ]):''; $data['fax'] = isset($_POST['fax']) ?trim($_POST['fax' ]):''; $data['mail'] = isset($_POST['mail']) ?trim($_POST['mail' ]):''; $data['age'] = isset($_POST['age']) ?trim($_POST['age' ]):''; $data['ctype'] = isset($_POST['ctype']) ?trim($_POST['ctype' ]):''; $data['body1'] = isset($_POST['body1']) ?trim($_POST['body1' ]):''; $data['body2'] = isset($_POST['body2']) ?trim($_POST['body2' ]):''; $data['body3'] = isset($_POST['body3']) ?trim($_POST['body3' ]):''; $smaty->assign("data",$data); switch ($cmd){ case 'send': $mail_body = $smaty->fetch('./mail.html'); $mail = new Qdmail(); $mail -> from( $from_addr , $from_name ); $mail -> to( $data['mail'] ); $mail -> cc( $from_addr ); $mail -> subject( $mail_subject); $mail -> text( $mail_body ); $ret = $mail ->send(); $mail_subject02 = $mail_subject . "【" .$data['body1']. "】"; $mail02 = new Qdmail(); $mail02 -> from( $data['mail'] ); $mail02 -> to( $from_addr); $mail02 -> subject( $mail_subject02); $mail02 -> text( $mail_body ); $ret = $mail02 ->send(); $template = './thanks.html'; break; case 'check': $template = './check.html'; break; default: $template = './input.html'; break; } $contents = $smaty->fetch($template); $smaty->assign("contents",$contents); $smaty->display('./base.html');

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

みんなの回答

noname#244856
noname#244856
回答No.2

問い合わせフォームボタンから飛んできたのが原因で「文法エラー」が発生することは、よほど特殊なことをしていない限りあり得ませんね。念のため、こちらに質問されたファイル内容をコピペして逆にもとあった場所に上書きしてみてください。その際、UTF-8エンコーディングを正しく扱えるもので編集するようにしてください。現在Windowsのメモ帳をお使いであれば、Notepad++などのエディタを新しく導入されることを強く推奨します。 Notepad++の導入 http://qiita.com/mpyw/items/4508dc677b11e487effc#2-10

koyacom420
質問者

お礼

度々のご指示ありがとうございます。 メールアドレスの変更をする際、私はmacを使用しているので、テキストエディタで修正してそのファイルをアップしたところから、どうやらエラーが出るようになったようです。 ご指摘頂き、早速DreamweaverでFTPにアクセスして直接修正してみたところエラーが出なくなりました。お忙しいところありがとうございます。大変助かりました。重ねてお礼申し上げます。

noname#244856
noname#244856
回答No.1

コピペしましたが、文法エラーは発生しませんでした。。 http://ideone.com/3dU5sK

koyacom420
質問者

補足

ご確認頂きありがとございます。 問合せフォームボタンをクリックして、http://xxxx.co.jp/contact/index.phpへ推移するとどうしても以下のエラーが出てしまうのは どうしてなんでしょうか? Parse error: syntax error, unexpected '@' in /export/sd209/www/jp/r/e/gmoserver/0/0/xxxxxx/xxxxx.co.jp/contact/index.php on line 9

関連するQ&A

  • メールフォームから送信すると文字化けします^^;

    海外のHPのテンプレサイトにてダウンロードしたテンプレート内のメールフォームで送信すると文字化けしてしまいます^^; 下記がsendmail.php内の中身なのですが、何が足りないでしょうか?^^; ご教授よろしくお願いします。 http://www.premiumfreebies.eu/previews/ProFolio/ <? //This php file receives the post vars of the contact page and sends it to a email address //Settings $email = 'メールアドレス'; $subject = '[NAME] HP form mail '; $name = $_POST['name']; $from = $_POST['email']; $message = $_POST['message']; mb_language("ja"); mb_internal_encoding("UTF-8"); //Set the headers and send the mail $subject = str_replace('[NAME]', $name, $subject); $headers = 'From: '.$name.' <'.$from.'>'; mail($email, $subject, $message, $headers); ?>

    • ベストアンサー
    • PHP
  • PHP初心者です。エラーが出て困っております。

    ※下記がスクリプトです。((エラーは最下部にございます。) <?php require('../dbconnect.php'); session_start(); if (!empty($_POST)) { // エラー確認 if (isset($_POST['name']) == '') { $error['name'] = 'blank'; } if (isset($_POST['mail1']) == '') { $error['mail1'] = 'blank'; ..........省略 } } // 重複アカウントチェック if (isset($_POST['mail1'])) { if (empty($error)) ; $sql = sprintf('SELECT COUNT(*) AS cnt FROM ○○ WHERE mail1="%s"', mysql_real_escape_string($_POST['mail1']) ); $record = mysql_query($sql) or die(mysql_error()); $table = mysql_fetch_assoc($record); if ($table['cnt'] > 0) { $error['mail1'] = 'duplicate'; } } if (empty($error)) { // 画像をアップロードする $upfile = date('YmdHis') . $_FILES['upfile']['name']; move_uploaded_file($_FILES['upfile']['tmp_name'], '../member_picture/' . $upfile); $_SESSION['join'] = $_POST; $_SESSION['join']['upfile'] = $upfile; header('Location: check.php'); } } // 書き直し if (isset($_REQUEST['action']) == ('rewrite')) { $_POST = $_SESSION['join']; $error['rewite'] = true; } ?> <html.....省略 <body> <h1>会員登録</h1> <div id="content"> <p>記入ください。</p> <form action="" method="post" enctype="multipart/form-data"> <dl> <dt>ニックネーム<span class="required">必須</span></dt> <dd> <input type="text" name="name" size="35" maxlength="255" value="<?php if (isset($_POST['name'])) {echo htmlspecialchars($_POST['name'],ENT_QUOTES, 'UTF-8'); } ?>" /> <?php if (!isset($error['name'])) {$error['name']="blank";} if ($error['name'] == 'blank'): ?> <p class="error">* ニックネーム</p> <?php endif; ?> </dd>................続く ※エラーは、 Notice Undefined index: name in....... です。 どうすれば上記エラーが消えますでしょうか? また、その際はどこをどのように直せばよろしいでしょうか。 お手数をおかけ致しますが、お力をお貸しいただければ嬉しく思います。 お願い致します。

    • ベストアンサー
    • PHP
  • こんにちは。PHPでメールフォームを送信したいのですが、

    こんにちは。PHPでメールフォームを送信したいのですが、 メールが文字化けしてしまいます。 PHP初心者です。 時間をかけてゆっくりやりたいのですが、 仕事でやっているため、そうも言ってられず。。。 ======================================================= $msg= 'Name: '.$_POST['name'].'<br /> Email: '.$_POST['email'].'<br /> IP: '.$_SERVER['REMOTE_ADDR'].'<br /><br /> Message:<br /><br /> '.nl2br($_POST['message']).' '; $mail = new PHPMailer(); $mail->IsMail(); $mail->AddReplyTo($_POST['email'], $_POST['name']); $mail->AddAddress($emailAddress); $mail->SetFrom($_POST['email'], $_POST['name']); $mail->Subject = "A new ".mb_strtolower($_POST['subject'])." from ".$_POST['name']." | contact form feedback"; $mail->MsgHTML($msg); $mail->Send(); ========================================================================= 一部ですが、こちらを修正すればよいのでしょうか? 宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • メール文書の文字化けに困っています。

    下記のPHPを使ったメールフォームを作成しました。 送信は問題無く行うことができるのですが、送信先に受信されたメール文書について日本語が文字化けしてしまいます。 下記のソースをご覧頂き、原因がおわかりの方がおりましたらご教授頂けますと誠に幸いです。 宜しくお願いいたします。 <?php //create short variable names $name=utf8_decode($HTTP_POST_VARS['name']); $email=utf8_decode($HTTP_POST_VARS['email']); $subject=utf8_decode($HTTP_POST_VARS['subject']); $message=utf8_decode($HTTP_POST_VARS['message']); $name=trim($name); $email=trim($email); $subject=StripSlashes($subject); $message=StripSlashes($message); //modify the next line with your own email address $toaddress='test@test.domain'; mail($toaddress,$subject,$message,"From: $name <$email>"); //clear the variables $name=''; $email=''; $subject=''; $message=''; echo "response=passed"; ?>

    • 締切済み
    • PHP
  • PHP+HTMLの確認画面から入力画面に戻る際のデータ保持について質問

    PHP+HTMLの確認画面から入力画面に戻る際のデータ保持について質問致します。 1.入力→2.確認→3.実行の3ページを作成しましたが、 2.確認で入力した値が間違っていた場合、1.入力に戻って訂正する仕様です 私は2.確認の戻るボタンにjavaのhistory.back();を使ったのですが ブラウザやOSにより、戻った際にデータが保持されていない場合があるとの事だったので 他の方法がないかご教授下さい。サンプルコードを書いて頂くと助かります。 以下、作成したコード 1.入力画面(mail.html) <html> <body> <form action="chk.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="確認する">&nbsp&nbsp<input type="reset" value="クリア"> </form> </body> </html> 2.確認画面(chk.php) <?php $name = $_POST["name"]; $message = $_POST["message"]; $subject = $_POST["subject"]; $mail = $_POST["mail"]; ?> <html> <body> <form action="send.php" method="post"> 件名:<?php echo $subject; ?><br> 送信者名:<?php echo $name; ?><br> メールアドレス:<?php echo $mail; ?><br> 本文:<?php echo $message; ?><br> <input type="submit" value="これでOK"> &nbsp&nbsp //下記の戻るボタンで戻るとデータ保持をするようにしたい。history.back以外で。 <input type="button" value="戻る" onclick="history.back();"> <input type="hidden" name="name" value="<?php echo $name; ?>"> <input type="hidden" name="message" value="<?php echo $message; ?>"> <input type="hidden" name="subject" value="<?php echo $subject; ?>"> <input type="hidden" name="mail" value="<?php echo $mail; ?>"> </form> </body> </html> 3.送信画面(send.php) <?php mb_language("Japanese"); mb_internal_encoding("UTF-8"); $message = "名前:" . $_POST["name"] . "\n本文:" . $_POST["message"]; if (!mb_send_mail("hoge@example.com", $_POST["subject"], $message, "From: " . $_POST["mail"])) { exit("メールの送信に失敗しました。"); } ?> <html> <body> <p>メールが送信されました。</p> </body> </html> 初心者ですので、わかりやすい表記をお願い致します。

    • 締切済み
    • PHP
  • PHP Mysql エラー

    データの新規登録を行っているのですが 番号が重複しないでまたデータがすべて入力されたらデータの追加を行いたいのですが エラーが出て対処できずに困っています 下記のエラーがでます Parse error: syntax error, unexpected end of file in C:\WWW\test\htdoes\insert.php on line 20 20行目は一番下の行です <html> <body> <?php $pdo = new PDO("mysql:dbname=db_test;host=localhost", "root", "admin"); if($st->rowCount()>0){ if ($_POST['ID'] != '' && $_POST['NAME'] != '' && $_POST['ADDR'] != ''){ $st = $pdo->prepare("insert ignore into tbl_test values(?,?,?)"); $st->execute(array($_POST['ID'], $_POST['NAME'],$_POST['ADDR'])); header('Location: http://localhost/top.php'); }else{ print データ未入力の場所があります; } }else{ print "既に登録している番号です"; ?> </body> </html>

    • ベストアンサー
    • MySQL
  • 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[&#039;name&#039;]; $email = $_POST[&#039;email&#039;]; $message = $_POST[&#039;message&#039;]; // 送信先のメールアドレス $to = &#039;*****@gmail.com&#039;; // 件名 $subject = &#039;お問い合わせがありました&#039;; // メール本文 $body = "名前: $name\n"; $body .= "メールアドレス: $email\n"; $body .= "問い合わせ内容:\n$message"; // 送信元のメールアドレスと名前 $from = &#039;*****1690.xsrv.jp&#039;; $fromName = &#039;お問い合わせフォーム&#039;; // ヘッダー $headers = "From: $fromName <$from>"; // メール送信 $mailResult = mail($to, $subject, $body, $headers); ?>

    • ベストアンサー
    • PHP
  • メール送信で文字化け

    メール送信で件名が文字化けしてしまいます。 カテゴリ内には同様の質問もあるようですが、 解決できないので、投稿しました。 以下のようなコードです。 $to= "aa@aa.aa"; $from= "bb@bb.bb"; $subject= "メール送信テスト"; $headers= "From:$from"; $subject = i18n_mime_header_encode(i18n_convert($subject, "JIS")); $name= $_POST["name"]; $sub= $_POST["sub"]; $body= $_POST["body"]; $message="$name \n $sub \n $body \n"; if(mail($to, $subject, $message,$headers)){ echo "送信完了"; }else{ echo "送信エラー"; } ちなみに、 $subject= base64_encode($subject); とかもやってみたけど駄目でした。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • phpでの受信

    ある質問ページでphpでの受信について、以下のような回答がありました。「サイトの代表アドレス」と「受け取る側のアドレス」は同じにしました。しかしエラーがでました。どこが間違いでしょうか ーーーーーーーーー 「フォーム」にname,subject,commentの欄があるとする。phpでの受信するには次のようなphpになります。 <?php $rp='-f サイトの代表アドレス'; $subject=mime(mb_convert_encoding($_POST['subject'],'JIS','UTF-8')); $body=mb_convert_encoding($_POST['name']."\n".$_POST['comment'],'JIS','UTF -8'); $head="Content-Type: text/plain; charset=ISO-2022-JP\nContent-Transfer- Encoding: 7bit"; mail('受け取る側のアドレス',$subject,$body,"From: サイトの代表アドレス\n".$head,$rp); ?> </body> </html>

    • ベストアンサー
    • PHP
  • メールフォームについての質問です。

    PHP初心者です。 メールフォームを作成しているのですが、入力画面と確認画面はできているのですが、送信完了の画面で苦戦しています。入力内容を送信先へ反映させたいのですが、うまくいきません。 ちなみにXAMPP、qdmailを使っています。 詳しい方、どのあたりに問題があるのか教えてください。 以下、ソースです。 <?php echo '<?xml version="1.0" encoding="UTF-8"?>'; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//ja" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Language" content="ja"> <title>送信完了しました。</title> </head> <body> <h1>送信完了しました。</h1> <?php include_once('qdmail.php'); // mb_Language("japanese"); mb_internal_encoding("utf-8"); print_r($_POST); if(!empty($_POST['mail'])){ $to=$_POST['mail']; $subject=$_POST['sub']; $name=$_POST['name']; $ruby=$_POST['ruby']; $zip=$_POST['zip']; $address=$_POST['address']; $telephone=$_POST['telephone']; $mail=$_POST['mail']; $question=$_POST['question']; } // $zip=mb_convert_kana($_POST['zip'],'a','utf-8'); if(!preg_match("/\A\d{3}\-\d{4}\z/",$zip)){ $zip="正しい郵便番号を入力してください"; } // $param = array( 'host'=>'??????', 'port'=> 587 , 'from'=>'return_path_address@example.com', 'protocol'=>'SMTP_AUTH', 'user'=>'????@????????', 'pass' => '????????', ); $to = array( '???@?????????' , '宛先日本語名' ); $from = array( 'from@example.com' , '送り元日本語名' ); $subject = 'メールのテスト(テキスト)'; $body = $name."\n".$ruby."\n".$zip."\n".$mail."\n".$address."\n".$telephone."\n".$mail."\n".$question; $option = array('type'=>'text','smtp'=>$param); $flag = qd_send_mail($option , $to , $subject , $body , $from); //$success=mb_send_mail($to,$sub,"名前:".$name."フリガナ:".$ruby."郵便番号:".$zip." 住所:".$address." TEL:".$telephone." ご質問等:".$question."from:".$from); if($flag){ echo('送信しました'); } else{ echo('送信失敗!!'); } ?> </body> </html>

    • 締切済み
    • PHP