前回も同じこと質問したこもしれませんが、なんかやりたいこととちょっとすれ違った気がします。
コードにも書いたですが、resizeページでエラーチェックをして、そのエラーのクエリをheaderでup.phpまで飛ばして、up.phpでそのエラー文をだしたいです。
エラー文を全部出すことではなく、それぞれif文で条件に合わせてエラー分を出したいです。
条件が複数合わない場合は複数のエラー文を出して、一つだけでしたら、一つだけのエラー文を出したいです。
今困っているのはheaderの中はどう書けば、条件に合ったクエリを飛ばして、up.phpのエラー文を出せることです。
同じことでいろいろスマートな方法があると思いますが、今自分がやっている方法で解決したいです。
よろしくお願いいたします。
up.php
php
1<?php 2 3 4if (isset($_GET['error'])&&$_GET['error']==1) { 5 echo '<span style="color: #ee0000">5M以下のファイルを選択して下さい!</span>'; 6 7} 8 9 10 11 12if(isset($_GET['error'])&&$_GET['error']==2){ 13echo '<span style="color: #ee0000">JPEGファイルを選択してください!</span>'; 14} 15 16 17if (isset($_GET['error'])&&$_GET['error']==3) { 18 echo '<span style="color: #ee0000">横幅を小さくしてください!</span>'; 19}else{ 20 echo ""; 21} 22if (isset($_GET['error'])&&$_GET['error']==4) { 23 echo '<span style="color: #ee0000">縦幅を小さくしてください!</span>'; 24}else{ 25 echo ""; 26} 27 28?> 29<!DOCTYPE html> 30<html> 31<head> 32 33 <meta charset="utf-8"> 34 <title>php</title> 35</head> 36<body> 37<form action="resize.php" method="get" name="form" "> 38 39 40<input type="hidden" name="MAX_FILE_SIZE" value="20971520"> 41<p> 42<input type="file" name="upfile" size="30" id="upload"> 43</p> 44 45<p> 46<input type="submit" value="送信する"> 47</p> 48</form> 49</body> 50 51 </html> 52 53
resize.php
php
1<?php 2ini_set('display_errors', '1'); 3error_reporting(E_ALL); 4 5 6 7$file = $_FILES['upfile']; 8$tmp_name = $file['tmp_name']; // 一時ファイルのパス 9$filesize = $_FILES['upfile']['size']; 10 11 12if ($filesize > 5242880) { 13 echo '<span style="color: #ee0000">5M以下のファイルを選択して下さい!</span>'; 14 $error="1"; 15} 16 17 header('location:http://localhost/up/up.php?error='.$error); 18 19 20$finfo = new finfo(FILEINFO_MIME_TYPE); 21if (!preg_match('/\.jpg$|\.jpeg$/i', $file['name']) 22 || $finfo->file($tmp_name) !== 'image/jpeg') { 23 echo '<span style="color: #ee0000">JPEGファイルを選択してください!</span>'; 24 $error="2"; 25} 26 27$result = true; 28$get = getimagesize($tmp_name); 29 30if ($get["0"]>1000) { 31 $result = false; 32 echo '<span style="color: #ee0000">横幅を小さくしてください!</span>'; 33 $error="3"; 34} 35if ($get["1"]>1000) { 36 $result = false; 37 echo '<span style="color: #ee0000">縦幅を小さくしてください!</span>'; 38 $error="4"; 39} 40 41if ($result) { 42 echo '送信完了'; 43 44} 45 46?> 47

回答2件
あなたの回答
tips
プレビュー