• 締切済み

エラーページをPHPで作成したい

サーバーから返されるエラーメッセージを、SSIで作成した場合 閲覧できないURLなど表示する事が出来ますが http://<!--#echo var="SERVER_NAME" --><!--#echo var="REQUEST_URI"--> これをPHPで表示させる事は可能ですか? もし出来るようでしたら、ご教授お願いいたします。

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

みんなの回答

noname#21216
noname#21216
回答No.1

関連するQ&A

  • EZwebからphpのページを見ることが出来ません

    表記の通り、EZwebからphpのページを見ることが出来ません。以下の簡単な文なのですが、PCやDoCoMoの携帯からは見られるのに、EZWebから見ようとすると、「リクエストされたページ表示できません」というエラーメッセージが表示されます。 <?php echo "hello"; ?> 似たような質問(http://oshiete1.goo.ne.jp/qa1812116.html)を見つけたので、そのページに従い、.htaccessというファイルを設けて、 php_value mbstring.http_output SJIS の一行を書いたのですが、すると今度はレンタルサーバーより、「500 error Internal Server Error。CGIもしくはSSIが正しく動作していません。」というメッセージが発せられます。今度はDoCoMoからも見られません。 方々調べたのですがどのように対処するのが良いか、お手上げ状態なのでどなたかお助けいただけないでしょうか。どうぞよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • php + javascriptで値の保持

    現在、ラジオボタンによるデータの受け渡しを調べているのですが submitボタンを使わずに、データ遷移がしたいと思い 色々やっているのですが上手く行きません。 これは実現可能なのでしょうか? <input type="radio" name="hoge" value="1" onclick="location.href='<?php echo $_SERVER['REQUEST_URI']; ?>'; test(this.value);" <?php echo $check1; ?>> <input type="radio" name="hoge" value="2" onclick="location.href='<?php echo $_SERVER['REQUEST_URI']; ?>'; test(this.value);" <?php echo $check2; ?>> <input type="radio" name="hoge" value="3" onclick="location.href='<?php echo $_SERVER['REQUEST_URI']; ?>'; test(this.value);" <?php echo $check3; ?>> 上記のソースの様な感じでとりあえずやってみましたが、 「ボタンを押したら即移動」は可能なものの、value値の保持が javascript上でどうやったらいいか分かりません。 ※$check1~3は遷移後のchcked判定の変数です ※test関数においてのvalueを格納する処理が分かりません やはり無難にsubmitボタン+セッション関数等で構築した方が良いのでしょうか?

    • ベストアンサー
    • PHP
  • phpのバージョンの違いのエラー

    すみません。 ページの前後を簡単に行き来するためにぺ-ジ名をpage40みたいにして <のリンクが押されれば 40-1=page39 >のリンクが押されれば 40+ 1=page41 のようにしたのですが、バージョンを8.0にしたら、以下のようなエラーが出ました。エラーの内容自体は、型が異なるので計算できない?ですよね? どう修正すればいいのかわからないので教えてください。 Fatal error: Uncaught TypeError: Unsupported operand types: string - int in コード <div class="pre-cntrl"> <?php $url = rtrim($_SERVER["REQUEST_URI"], '/'); $uri = substr($url,-2); if(ctype_digit($uri)) { $pre =$uri-1; echo '<a href="page' . $pre . '"><i class="fas fa-chevron-left"></i></a><br />'; } else { $uri = substr($url,-1); $pre=$uri-1; echo '<a href="page' . $pre . '"><i class="fas fa-chevron-left"></i></a><br />'; } ?> </div>

    • ベストアンサー
    • PHP
  • phpのエラーについて

    phpでメールフォームを作っています。 メールフォーム(1)、(2)、(3)と3つ作っています。 (2)で確認して記入内容に間違いがなれけば送信して(3)を表示。 間違っていたら(1)に戻るというものです。 確認するページ(2)の記述でParse error: syntax error, unexpected T_STRING in……とエラーが出ます。 その問題の行は、セッションを開始したすぐ下の行の die('不正アクセスの疑いがあります。'); という部分です。 この行と、それより以前・以後を何度も確認しましたがエラーの原因となるものが発見できません…… PHP初心者なのでもうお手上げです>< どなたかご教授よろしくお願いします!!! レンタルサーバーはヘテムルでphpは5.2.8です。 <?php function checkInput($var){ if(is_array($var)){ return array_map('checkInput', $var); } else { if(get_magic_quotes_gpc()){ $var = stripslashes($var); } if(preg_match('/\0/', $var)){ die('不正な入力です。'); } if(!mb_check_encoding($var, 'UTF-8')){ die('不正な入力です。'); } return $var; } } session_start(); $_POST = checkInput($_POST); if(isset($_POST['ticket']) && isset($_SESSION['ticket'])){ $ticket = $_POST['ticket']; if(!in_array($ticket, $_SESSION['ticket'])){ die('不正アクセスの疑いがあります。'); //この行がエラーとなります。 } }else{ die('不正アクセスの疑いがあります。'); } $name = isset($_POST['name']) ? $_POST['name'] : NULL ; $email = isset($_POST['email']) ? $_POST['email'] : NULL ; $name = isset($_POST['comment']) ? $_POST['comment'] : NULL ; $error = array(); if(trim($name) == ''){ $error[] = 'お名前は必須項目です。'; } else if(mb_strlen($name) > 100){ $error[] = 'お名前は100文字以内でお願いします。'; } if(trim($email) == ''){ $error[] = 'メールアドレスは必須項目です。'; } else { $pattern = '/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/iD'; if(!preg_match($pattern, $email)){ $error[] = 'メールアドレスの形式が正しくありません'; } } if(trim($comment) == ''){ $error[] = 'コメントは必須項目です。'; } else if(mb_strlen($comment) > 500){ $error[] = 'コメントは500文字以内でお願いします。'; } $_SESSION['name'] = $name; $_SESSION['email'] = $email; $_SESSION['comment'] = $comment; $_SESSION['error'] = $error; if(count($error) > 0) { $dirname = dirname($_SERVER['SCRIPT_NAME']); $dirname = dirname == DIRECTORY_SEPARATOR ? '' : $dirname; $uri = 'http://' .$_SERVER['SERVER_NAME'] . $dirname . '/○○.php'; header('HTTP/1.1 303 See Other'); header('Location: ' . $uri); } else { ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>確認フォーム</title> </head> <body> <div id="form"> <p>以下の内容でよろしければ送信ボタンを押してください。</p> <dl> <dt>お名前:</dt> <dd><?php echo h($name);?></dd> </dl> <dl> <dt>メールアドレス:</dt> <dd><?php echo h($email);?></dd> </dl> <dl> <dt>コメント:</dt> <dd><?php echo nl2br(h($comment));?></dd> </dl> <form action="thank.php" method="post"> <input type="hidden" name="ticket" value="<?php echo h($ticket);?>" /> <input type="submit" name="submit" value="送信する" /> </form> </div> </body> </html> <?php } function h($string) { return htmlspecialchars($string, ENT_QUOTES); } ?>

    • ベストアンサー
    • PHP
  • mod_rewrite的なことをphpで実現させたいが空白ページが表示されてしまう

    www.example.com/ほげほげ にアクセスされたら、 example.com/ほげほげ へ urlをかきかえ、 さらに、 $_SERVER["REQUEST_URI"] がスラッシュで終わる(2個以上のスラッシュも考慮)ときは、これらのスラッシュをとりのぞいたurlへかきかえ、 そして、このurlへ301ステータスコードでリダイレクトさせる(ただし、get methodの場合に限る) というコードをphpで書いたのですが、 なぜか、urlは書き換わらず、空白のページが表示されてしまいます。 どこがいけないのでしょうか? お助けくださいませ。         if ($_SERVER["REQUEST_METHOD"] == "GET"){             #HTTP_HOST (exclude www.)             preg_match_all("/^(www\.)(.*)$/", $_SERVER["HTTP_HOST"],$matches_HTTP_HOST);             if ($matches_HTTP_HOST[1] != ''){                 $bWillBeRedirected = true;                 $strAfterRedirect_HTTP_HOST = $matches_HTTP_HOST[2];             }             else{                 $strAfterRedirect_HTTP_HOST = $_SERVER["HTTP_HOST"]             }             #REQUEST_URI (,which includes query string)             preg_match_all("/^(\/)(.*)(\/+)$/", $_SERVER["REQUEST_URI"],$matches_REQUEST_URI);             if ($matches_REQUEST_URI[3] != ''){                 $bWillBeRedirected = true;                 $strAfterRedirect_Request_URI = $matches_REQUEST_URI[1] . $matches_REQUEST_URI[2];             }             else{                 $strAfterRedirect_Request_URI = $_SERVER["REQUEST_URI"];             }             #redirect with 301 status code if needed             if($bWillBeRedirected){                 #Protocol                 if ($_SERVER["HTTPS"] == "on"){                     $strProtocol = "https";                 }                 else{                     $strProtocol = "http";                 }                 $url = $strProtocol . "://" . $strAfterRedirect_HTTP_HOST . $strAfterRedirect_Request_URI;                                                   header("HTTP/1.1 301 Moved Permanently");                 hearder(”Location: “.$url);                 header(”Connection: close”);             }         }

    • ベストアンサー
    • PHP
  • 簡単な正規表現ではまってます。お助けを・・・

    簡単な正規表現ではまってます。お助けを・・・ PHP5.1.6です。 アクセスされたURLの最後にハンカクスラッシュがあった場合、これを削り取って、 新しいURLへ、301のステータスコードでリダイレクトさせたいと思ってます。 で、以下のようなスクリプトを書いたのですが。。。 $this->sPattern = "/(.*)\/$/"; $_SERVER['REQUEST_URI'] = preg_replace($this->sPattern, $1, $_SERVER['REQUEST_URI']); $this->bReturn301StatusCode = true; Parse error: syntax error, unexpected T_LNUMBER, expecting T_VARIABLE or '$' in /var/www/_include/class/uri.class on line 54 といわれてしまいます。 なお、54行目は、 $_SERVER['REQUEST_URI'] = preg_replace($this->sPattern, $1, $_SERVER['REQUEST_URI']); の行です。 エラーメッセージで検索したのですが、分からず。。。 どこが間違っているのでしょうか? 教えていただければ幸いです。 以上、よろしくお願い申し上げます。

    • ベストアンサー
    • PHP
  • phpのエラー表示について

    初心者です。入力フォームのphpで function check を使って入力のエラーの表示を行うコードを書いているのですが、日付日時と時間をそれぞれ選択する欄があるのですが、時間の選択(10:00~19:00)の選択しかphpのエラー表示されないのですが、 日付日時の選択表示のエラーも表示させたいのですが、どうしたらよいでしょうか? 付属画像にphpのエラーが表示された画像があります。ここでは、第一希望で、 日付日時 が選択されていないのにエラーが表示されていません。 ただ、 時間の選択(10:00~19:00)はされています。 どうコードを書いたらよいでしょうか? 困っています。 以下は書いたコードのURLです。 (tell.htmi)(入力フォームのhtmlとphpのコード) https://drive.google.com/file/d/1NC2i5bfrtH6YlU8HrmmwPTy5iaenF4Qn/view?usp=sharing (concon.php)(phpのコード) https://drive.google.com/file/d/1SHjdtakNSRcYL0nHja6iD6e40Ko4Bkty/view?usp=sharing 以下は、 tell.htmi からエラーのコードの1部を抜てきしたのもです。 function check_contactform() { var name = $('input[name="name"]').val(); var furigana = $('input[name="furigana"]').val(); var address = $('input[name="address"]').val(); var tel = $('input[name="tel"]').val(); var pay = $('select[name="pay"]').val(); var time4 = $('select[name="time4"]').val(); var time5 = $('select[name="time5"]').val(); var time6 = $('select[name="time6"]').val(); エラーメッセージのコードは以下( tell.htmiより) if(time4 == "") { errmsg = errmsg + "第1希望:※を選択してください\n"; } if(time5 == "") { errmsg = errmsg + "第2希望:※を選択してください\n"; } if(time6 == "") { errmsg = errmsg + "第3希望:※を選択してください\n"; } このコードの var time4 = $('select[name="time4"]').val();から下のコードが、 日付日時と 時間の選択のエラーを表示させるコードです。 どうコードを書いたら良いでしょうか? 困っています。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • PHP Noticeエラーの後

    PHPにてNoticeエラーも開発時だしています。 しかしNoticeエラー出てもプログラムは止まりませんので、Notice後の行で header("Location: ".$_SERVER["REQUEST_URI"]); exit; とかしてるとNotice出てるのにブラウザや状況によって、Noticeエラーはブラウザ上に表示されずに、次の画面に遷移してしまう事があります。なのでapacheのエラーログをtail等でずっと表示してれば気づくのですが、そうもいかずブラウザ上に表示されてるものを頼りにしてるので、どこで間違ってるのか気づきにくいのです。 ということでNoticeやWarningでもプログラムを止める事は可能でしょうか?

    • ベストアンサー
    • PHP
  • $_REQUEST とphpファイルでphp?item=500&xt=100とか言うああいうページと関連があるのでしょうか

    http://oshiete1.goo.ne.jp/kotaeru.php3?q=1437399 で$_REQUEST の理解を深めたく質問中ですが $_REQUEST の[ ]の中の変数は結局、 ?item=500&xt=100の部分を作るためのものなんでしょうか とくにDBとの関連で必要でしょうか たとえば stage.phpのコードで <?php …$name=$_REQUEST['name']… if($name='a'){echo'<html>a</html>'} if($name='b'){echo'<html>b</html>'} stage.php?name=a stage.php?name=b というページができるという理解でしょうか? (すいません、質問に個所でしてしまって)

    • ベストアンサー
    • PHP
  • phpの記述につきまして

    phpの記述につきまして データベースから <? echo $file_name; ?> で $file_name に ****.php の値が呼び出されるのですが include の記述で <?php include("<? echo $file_name; ?>"); ?> と言う風に 利用表示するとエラーになってしまします。  include("ここにDBからのPHPファイル名を呼び出したい!") とするには どのように記述すれば宜しいでしょうか? ご教授いただければ幸いに存じます。

    • ベストアンサー
    • PHP

専門家に質問してみよう