質問編集履歴

2 修正

Kuriaki

Kuriaki score 65

2017/01/20 17:55  投稿

しゅうクエリをヘッダーで返したあと条件分岐で条件に合ったエラー文を出したいです。
クエリをヘッダーで返したあと条件分岐で条件に合ったエラー文を出したいです。
題名見て何がやりたい河からないかもしれませんが、コード見ると多分わかると思います。
やりたいことは今resize.phpでクエリを変数に入れてあります。
それらをup.phpで$_GETでとって、up.phpでエラー文を表示したいです。
最終的には条件分岐で条件にあったエラー文を出したいです。
今のままですと、$errorのエラー文しか出てこないです。
テストで$error~$error4を全部echoしましたが、$error以外は空になっています。
urlがhttp://localhost/up/up.php?error=1234こうなっていて、
内容は
1234
Notice: Undefined index: error_2 in C:\xampp\htdocs\up\up.php on line 18
Notice: Undefined index: error_3 in C:\xampp\htdocs\up\up.php on line 19
Notice: Undefined index: error_4 in C:\xampp\htdocs\up\up.php on line 20
このようになっています。
説明不足や下手なところがあるかもしれませんが、よろしくお願いいたします。
```php
<?php
/*if (isset($_GET['error'])) {
echo '<span style="color: #ee0000">5M以下のファイルを選択して下さい!</span>';
}
if(isset($_GET['error2'])){
echo '<span style="color: #ee0000">JPEGファイルを選択してください!</span>';
}
if (isset($_GET['error3'])) {
echo '<span style="color: #ee0000">横幅を小さくしてください!</span>';
}
if (isset($_GET['error4'])) {
echo '<span style="color: #ee0000">縦幅を小さくしてください!</span>';
}*/
echo $_GET['error'];
echo $_GET['error_2'];
echo $_GET['error_3'];
echo $_GET['error_4'];
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php</title>
</head>
<body>
<form action="resize.php" method="get" name="form" ">
<input type="hidden" name="MAX_FILE_SIZE" value="20971520">
<p>
<input type="text" name="upfile" size="30" id="upload">
</p>
<p>
<input type="submit" value="送信する">
</p>
</form>
</body>
</html>
```
```php
<?php
ini_set('display_errors', '1');
error_reporting(E_ALL);
if (!isset($_FILES['upfile'])) {
echo '<span style="color: #ee0000">恐らくアップロードページのHTMLに記述ミス有り!</span>';
}
$file = $_FILES['upfile'];
$tmp_name = $file['tmp_name']; // 一時ファイルのパス
$filesize = $_FILES['upfile']['size'];
if ($filesize > 5242880) {
echo '<span style="color: #ee0000">5M以下のファイルを選択して下さい!</span>';
}
$error = "1";
$error_2 = "2";
$error_3 = "3";
$error_4 = "4";
header('location:http://localhost/up/up.php?error='.$error.$error_2.$error_3.$error_4);
$finfo = new finfo(FILEINFO_MIME_TYPE);
if (!preg_match('/\.jpg$|\.jpeg$/i', $file['name'])
|| $finfo->file($tmp_name) !== 'image/jpeg') {
echo '<span style="color: #ee0000">JPEGファイルを選択してください!</span>';
}
$result = true;
$get = getimagesize($tmp_name);
if ($get["0"]>1000) {
$result = false;
echo '<span style="color: #ee0000">横幅を小さくしてください!</span>';
}
if ($get["1"]>1000) {
$result = false;
echo '<span style="color: #ee0000">縦幅を小さくしてください!</span';
}
if ($result) {
echo '送信完了';
}
?>
```
  • PHP

    38972 questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

1 修正

Kuriaki

Kuriaki score 65

2017/01/20 17:26  投稿

クエリをヘッダーで返したあと複数の条件でエラー文を出したいです。
しゅうクエリをヘッダーで返したあと条件分岐で条件に合ったエラー文を出したいです。
題名見て何がやりたい河からないかもしれませんが、コード見ると多分わかると思います。
やりたいことは今resize.phpでクエリを変数に入れてあります。
それらをup.phpで$_GETでとって、up.phpでエラー文を表示したいです。
最終的には条件分岐で条件にあったエラー文を出したいです。
今のままですと、$errorのエラー文しか出てこないです。
テストで$error~$error4を全部echoしましたが、$error以外は空になっています。
urlがhttp://localhost/up/up.php?error=1234こうなっていて、
内容は
1234
Notice: Undefined index: error_2 in C:\xampp\htdocs\up\up.php on line 18
Notice: Undefined index: error_3 in C:\xampp\htdocs\up\up.php on line 19
Notice: Undefined index: error_4 in C:\xampp\htdocs\up\up.php on line 20
このようになっています。
説明不足や下手なところがあるかもしれませんが、よろしくお願いいたします。
```php
<?php
/*if (isset($_GET['error'])) {
echo '<span style="color: #ee0000">5M以下のファイルを選択して下さい!</span>';
}
if(isset($_GET['error2'])){
echo '<span style="color: #ee0000">JPEGファイルを選択してください!</span>';
}
if (isset($_GET['error3'])) {
echo '<span style="color: #ee0000">横幅を小さくしてください!</span>';
}
if (isset($_GET['error4'])) {
echo '<span style="color: #ee0000">縦幅を小さくしてください!</span>';
}*/
echo $_GET['error'];
echo $_GET['error_2'];
echo $_GET['error_3'];
echo $_GET['error_4'];
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php</title>
</head>
<body>
<form action="resize.php" method="get" name="form" ">
<input type="hidden" name="MAX_FILE_SIZE" value="20971520">
<p>
<input type="text" name="upfile" size="30" id="upload">
</p>
<p>
<input type="submit" value="送信する">
</p>
</form>
</body>
</html>
```
```php
<?php
ini_set('display_errors', '1');
error_reporting(E_ALL);
if (!isset($_FILES['upfile'])) {
echo '<span style="color: #ee0000">恐らくアップロードページのHTMLに記述ミス有り!</span>';
}
$file = $_FILES['upfile'];
$tmp_name = $file['tmp_name']; // 一時ファイルのパス
$filesize = $_FILES['upfile']['size'];
if ($filesize > 5242880) {
echo '<span style="color: #ee0000">5M以下のファイルを選択して下さい!</span>';
}
$error = "1";
$error_2 = "2";
$error_3 = "3";
$error_4 = "4";
header('location:http://localhost/up/up.php?error='.$error.$error_2.$error_3.$error_4);
$finfo = new finfo(FILEINFO_MIME_TYPE);
if (!preg_match('/\.jpg$|\.jpeg$/i', $file['name'])
|| $finfo->file($tmp_name) !== 'image/jpeg') {
echo '<span style="color: #ee0000">JPEGファイルを選択してください!</span>';
}
$result = true;
$get = getimagesize($tmp_name);
if ($get["0"]>1000) {
$result = false;
echo '<span style="color: #ee0000">横幅を小さくしてください!</span>';
}
if ($get["1"]>1000) {
$result = false;
echo '<span style="color: #ee0000">縦幅を小さくしてください!</span';
}
if ($result) {
echo '送信完了';
}
?>
```
  • PHP

    38972 questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る