ファイルの入力にバグがあります。確かに、画像はサーバーのフォルダーに移動されます - isset($_FILES['avatar']), は問題ありません - しかし、user_avatar のフィールドにはあなたの名前が入力されていません。データベース上では「default_130x130.png」という名前になっています。「$user_avatar」変数を、upload_image.php から new_user.php に送信するにはどうすればよいですか?
ja/users/new.html
<form id="avatar_file_upload_form" action="../../utils/upload_image.php" method="post" enctype='multipart/form-data'style="position:absolute;z-index:-10;height:1px;width:1px;overflow:hidden;visibility:hidden;">
<input type="file" name="avatar" id="avatar_file_upload_field" accept="image/jpeg,image/pjpeg,image/bmp,image/gif,image/jpeg,image/png"/>
<input type="submit" />
</form>
ユーティリティ/upload_image.php
<?php
ob_start();
$mimeExt = array();
$mimeExt['image/jpeg'] ='.jpg';
$mimeExt['image/pjpeg'] ='.jpg';
$mimeExt['image/bmp'] ='.bmp';
$mimeExt['image/gif'] ='.gif';
$mimeExt['image/x-icon'] ='.ico';
$mimeExt['image/png'] ='.png';
if(isset($_FILES["avatar"])) {
//Begins image upload
$user_avatar = md5(uniqid(time())).$mimeExt[$_FILES["avatar"]["type"]]; //Get image extension
$user_avatar_dir = "../img/".$user_avatar; //Path file
move_uploaded_file($_FILES["avatar"]["tmp_name"], $user_avatar_dir);
} else {
$user_avatar = "default_130x130.png";
}
?>
new_user.php
<?php
ob_start();
include "config.php";
include "utils/upload_image.php";
$sql = mysql_query("insert into user(user_avatar) values('$user_avatar')", $db_connection) or die("Error: ".mysql_Error());
ob_end_clean();
mysql_close($db_connection);
?>
注: 「config.php」ファイルは完全に機能します。