phpでファイルアップロードしたものを、functionでバリデーション化させたものを作成しています。
htmlで表示させたときに下のhtmlのコードでecho $ret1としたときに、文字を前の文字の続きに出力させたいのですが、画面上部に出力されてしまいます。どうしたらいいでしょうか。
return の後にはfalseを戻り値として設定することは前提でお願いします・・・!
画面にはこのように表示されます。
アップロード成功!jpg,pdf,png の形式ではありません。jpg,pdf,png形式のファイルのみアップロードできます。ファイルが参照されていません。
checkというfunctionを実行します
引数にcertificationを指定した場合の処理結果は
引数にcert_sealを指定した場合の処理結果は
引数にcitizenを指定した場合の処理結果は
「処理結果は」の後に文字を出力させたいです。
PHP
1コード 2<?php 3 4//定義したクラスからオブジェクト(型)を生成する。$uploadはインスタンス 5$upload = new upload(); 6 7// 引数定義(配列で) 8$filename = array('certification','cert_seal','citizen'); 9 10// function呼び出し 11$ret1 = $upload->check($filename[0]); 12$ret2 = $upload->check($filename[1]); 13$ret3 = $upload->check($filename[2]); 14 15//uploadの設計図 16class upload{ 17 //エラーメッセージの箱 18 public $err_message = array( 19 "ファイルが参照されていません。", 20 "jpg,pdf,png の形式ではありません。jpg,pdf,png形式のファイルのみアップロードできます。", 21 "ファイルサイズが大きすぎますので2MB以下にしてください。", 22 " アップロード成功!" 23 ); 24 25 // function定義 26 //バリデーションメソッドを定義 27 function check($filename){ 28 // グローバル変数に引数の値を設定する 29 $this->err_message; 30 31 if(is_uploaded_file($_FILES[$filename]["tmp_name"])){ 32 if(preg_match("(.+\.(jpg|pdf|png))",$_FILES[$filename]["name"])){//jpgかpdf,pngしかアップできない 33 $filesize = filesize($_FILES[$filename]['tmp_name']); 34 if($filesize <= 2097152){ 35 //ファイルをfilesフォルダに保存move_uploaded_file($filename,$updir); 36 echo $this->err_message[3]; 37 } else { 38 echo $this->err_message[2]; 39 return false; 40 } 41 } else { 42 echo $this->err_message[1]; 43 return false; 44 } 45 } else { 46 echo $this->err_message[0]; 47 return false; 48 } 49 } 50} 51 52?>
HTML
1コード 2<body> 3 <p>checkというfunctionを実行します</p> 4 <p>引数に<?php echo $filename[0]; ?>を指定した場合の処理結果は<?php echo $ret1;?></p> 5 <p>引数に<?php echo $filename[1]; ?>を指定した場合の処理結果は<?php echo $ret2;?></p> 6 <p>引数に<?php echo $filename[2]; ?>を指定した場合の処理結果は<?php echo $ret3;?></p> 7 8</body>
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。