あなた$_POST
は空です
mainpage.php
- ファイルのアップロードと入力フィールドが 2 つの異なるフォームに属し、2 つの送信ボタンがありました。情報が同時に送信されることはありません。送信ボタンが 1 つだけのフォームを 1 つのフォームにまとめました。
<html>
<head><title></title></head>
<body>
<a href="logout.php">Logout</a>
<a href="mainpage.php">Main Page</a>
<form action="upload_file.php" method="post" enctype="multipart/form-data">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
Bio: <input type="text" name="bio"><br>
Hobbies: <input type="text" name="hobbies"><br>
Past School: <input type="text" name="past"><br>
Work History: <input type="text" name="work"><br>
<!--input type="submit"-->
<!--/form-->
<!--form action="upload_file.php" method="post" enctype="multipart/form-data"-->
<label for="file">Choose Profile Picture:</label>
<input type="file" name="file" id="file">
<br/>
<input type="submit" name="pic" value="Submit">
</form>
</body>
</html>
upload_file.php - ファイル情報と入力情報は 2 つの異なる配列に属します。
<?php
// the reason we should check for each $_POST variable and not just
// if (!empty($_POST)) { ... }
// is because you will still get errors if one of those keys do not
// exist inside of $_POST... if you do $file = $_FILE['file'] there
// will be an error. however, $_POST is always going to exist, so
// we don't need to check it. the keys may or may not exist, though
$name = isset($_POST['name']) ? $_POST['name'] : '';
$email = isset($_POST['email']) ? $_POST['email'] : '';
$bio = isset($_POST['bio']) ? $_POST['bio'] : '';
$hobbies = isset($_POST['hobbies']) ? $_POST['hobbies'] : '';
$past = isset($_POST['past']) ? $_POST['past'] : '';
$work = isset($_POST['work']) ? $_POST['work'] : '';
echo "bio: $bio<br/>";
echo "email: $email<br/>";
echo "name: $name<br/>";
echo "hobbies: $hobbies<br/>";
echo "past: $bio<br/>";
echo "work: $work<br/>";
print "<pre>";
if (isset($_POST))
{
print "this is the \$_POST information:\n";
print_r($_POST);
}
else { print "no post information sent."; }
print "\n\n";
if (isset($_FILES))
{
print "this is the \$_FILE information:\n";
print_r($_FILES);
}
else { print "no file information sent."; }
print "</pre>";
?>
したがって...免責事項$_POST
です。値を操作するときはSQLインジェクションに注意してください。
出力は次のようになります...(の構造を見ることができます$_POST
$_FILE
)
bio: three
email: two
name: one
hobbies: four
past: three
work:
this is the $_POST information:
Array
(
[name] => one
[email] => two
[bio] => three
[hobbies] => four
[past] =>
[work] =>
[pic] => Submit
)
this is the $_FILE information:
Array
(
[file] => Array
(
[name] => Capture.PNG
[type] => image/png
[tmp_name] => C:\wamp\tmp\php1D7E.tmp
[error] => 0
[size] => 12968
)
)
(また、この質問に出くわした将来のユーザーのために更新し続けることに注意してください)