私のユーザーには現在のエラーの人数にはいくつかの問題があります。 2つのGoto命令を使って問題を "解決"しました。コードの見てみてください:後藤は(少なくとも、一人一人がいることを言う)コードに起こった可能性があり、最悪のシンクタンクである理由GOTOは良い方法ですか? (このPHPの特別なケースでは?)
<?php require_once("registration/include/membersite_config.php"); ?>
<!DOCTYPE html>
<html lang="en">
<head><?php include_once("parts/head.php"); ?></head>
<body><div id="footerfix">
<?php include_once("parts/header.php"); ?>
<div class="container">
<div class="hero-unit">
<?php
if(isset($_GET['i'])){ unlink("users/thumbs/".$_SESSION["user_code"].".jpg"); header('Location: profile.php?i=mycv');}
if(isset($_FILES['avatar']['tmp_name'])){
$file_ext = end(explode('.',$_FILES['avatar']['name']));
if(in_array($file_ext,array('jpg','jpeg','png','gif'))==false){echo("<h2>Error!</h2><p>Your profile photo have to be a picture file.</p>"); goto nomore;}
$src_size=getimagesize($_FILES['avatar']['tmp_name']);
if($src_size['mime']=='image/jpeg') {$src_img=imagecreatefromjpeg($_FILES['avatar']['tmp_name']);
} elseif($src_size['mime']=='image/png') {$src_img=imagecreatefrompng($_FILES['avatar']['tmp_name']);
} elseif($src_size['mime']=='image/gif') {$src_img=imagecreatefromgif($_FILES['avatar']['tmp_name']);
} else {echo("<h2>Error!</h2><p>Incorrect file format.</p>"); goto nomore;}
$thumb_w = 150;
if($src_size[0]<=$thumb_w){$thumb=$src_img;
}else{
$new_size[0] = $thumb_w;
$new_size[1] = ($src_size[1]/$src_size[0])*$thumb_w;
$thumb=imagecreatetruecolor($new_size[0],$new_size[1]);
imagecopyresampled($thumb,$src_img,0,0,0,0,$new_size[0],$new_size[1],$src_size[0],$src_size[1]);
}
imagejpeg($thumb,"users/thumbs/".$_SESSION["user_code"].".jpg");
//header('Location: profile.php?i=mycv');
echo('<h2>Ready!</h2><p>Your profile picture is updated. <a href="profile.php">Go back</a>.</p>');
nomore: echo "</div></div>"; include_once("parts/footer.php"); echo "</div></body></html>";
}
?>
は、私は理解していなかった、私はこのことについて、あなたの意見を聞きたいだろう、もしそれが本当に最悪のものだと思うのですが、どうすれば私のコードを使い続けることができますか?ありがとう!
私は答えが「いいえ」と言います。 –
Steve McConnellのCode Completeからhttp://www.stevemcconnell.com/ccgoto.htmを参照してください。そして時間があるときには本の全体を読んでください。 –
申し訳ありませんが失礼ですが、gotoの使用はあなたの問題の中では最小です。最も目立つ問題は、コードが最初に完全に読めないことです。 –