イメージをイメージフォルダに転送することにより、登録が「あなたは正常に登録されました」に出てきます。しかし、それはそれを渡し続け、else文に行きます: "画像をアップロードしてください。"私のPHPは「画像をアップロードしてください」と言っているのはなぜですか?
私はロジックと構文を見てきましたが、正しく見えます。しかし、正しく登録することはできません。
HTML & PHP:
<?php
include('connect.php');
$error = "";
if(isset($_POST['submit'])) {
// VARIABLES STORAGE
$firstName = $_POST['fname'];
$lastName = $_POST['lname'];
$email = $_POST['email'];
$password = $_POST['password'];
$passwordConfirm = $_POST['passwordConfirm'];
$image = $_FILES['image']['name'];
$tmp_image = $_FILES['image']['tmp_name'];
$tmp_image = $_FILES['image']['size'];
// LOGIC
if(strlen($firstName) < 3) {
$error = "First name is too short.";
}
else if(strlen($lastName) < 1) {
$error = "Last name is too short.";
}
else if(!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$error = "Please enter valid email address.";
}
else if(strlen($password) < 8) {
$error = "Password must be greater than 8 characters.";
}
else if($password !== $passwordConfirm) {
$error = "Password does not match.";
}
else if($image == "") {
$error = "Please upload an image.";
}
else {
$insertQuery = "INSERT INTO users(firstName, lastName, email, password, image) VALUES('$firstName','$lastName','$email','$password','$image')";
if(mysqli_query($conn,$insertQuery)) {
if(move_uploaded_file($tmp_image,"images/$image")) {
$error = "You are successfully registered!";
}
else {
$error = "Image is not uploaded.";
}
}
}
}
?>
<!DOCTYPE html>
<head>
<title>Registration Page</title>
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
<div id="error"><?php echo $error; ?></div>
<div id="wrapper">
<div id="formDiv">
<form method="POST" action="index.php" enctype="multipart/form-data">
<label>First name:</label><br />
<input type="text" name="fname" /><br /><br />
<label>Last name:</label><br />
<input type="text" name="lname" /><br /><br />
<label>Email:</label><br />
<input type="text" name="email" /><br /><br />
<label>Password:</label><br />
<input type="password" name="password" /><br /><br />
<label>Re-enter Password:</label><br />
<input type="password" name="passwordConfirm" /><br /><br />
<label>Image:</label><br /><br />
<input type="file" name="image" /><br /><br />
<input type="submit" name="submit" />
</form>
</div>
</div>
</body>
</html>
'( '$ firstName'、 '$ lastName'、 '$ password'、 '$ password'、 '$ image')'いいえいいえあなたは私を泣かせようとしていませんhttp://php.net /manual/en/security.database.sql-injection.php – Isaac
あなたのサーバ上のファイルアップロード/ポストリクエストに適用される制限を確認することができます。 phpinfo()を使うとほとんどの場合それを得ることができます。さらに、 'var_dump($ _ FILES);'は、配列に含まれているものの手掛かりを得るためのものです。 – BananaAcid
@Isaacなぜこれが間違っているのか分かりませんか?私は、ユーザーの入力値をデータベーステーブルに配置していますか? – user3385997