2
On member.php 사용자가 업로드 한 프로필 사진을 표시하고 싶습니다.사용자 프로필 이미지가 업데이트되지 않음
function change_image ($MemberID, $file_temp, $file_extn) {
$file_path = 'images/profile/' . substr(md5(time()), 0, 10) . '.' . $file_extn; //take current time, create md5 hash, 10 character figure
move_uploaded_file($file_temp, $file_path);
mysql_query("UPDATE `member` SET `profile` = '" . mysql_real_escape_string($file_path) . "' WHERE 'MemberID' = " . (int)$MemberID);//update database
echo "UPDATE `member` SET `profile` = '" . mysql_real_escape_string($file_path) . "' WHERE `MemberID` = " . (int)$MemberID;
}
나는 사용자로 로그인하고 이미지 아무 일도 발생하지 업로드 : user.php에서
//$profile_data grabs the users data within the database
<h1><?php echo $profile_data['Name']; ?>'s profile:</h1>
<?php if (empty($profile_data['profile']) === false) {
echo '<img src="',$profile_data['profile'], '" alt="',$profile_data['Name'],'\'sProfile Image">';
}
?>
<div class="profile">
<?php
if(isset($_FILES['profile']) === true) {
if (empty($_FILES['profile'] ['name']) === true) {
echo 'Please choose a file!';
}else{
$allowed = array('jpg','jpeg','gif','png');
$file_name = $_FILES['profile']['name'];
$file_extn = explode('.', $file_name);
$file_extn = strtolower(end($file_extn));//converts string to lowercase
$file_temp = $_FILES['profile']['tmp_name'];
if (in_array ($file_extn, $allowed) === true) {
//upload
change_image($MemberID,$file_temp,$file_extn);
}else {
echo 'Incorrect file type. Allowed: ';
echo implode(', ', $allowed);
}
}
}
?>
나는이 기능을 가지고있다. 데이터베이스가 업데이트되지 않습니다하지만 난 그게 잘 보이는 쿼리를 에코 때, 내가 얻을 :
UPDATE `member` SET `profile` = 'images/profile/2d5929413b.jpg' WHERE `MemberID` = 31
내가 phpMyAdmin을에 쿼리를 넣으면 잘 작동하고 파일 경로가 존재하고 사용자가 이미지를 가지고, 그러나 이미지를 변경할 때마다 쿼리가 업데이트되지만 데이터베이스의 파일 경로는 변경되지 않습니다.
정말 혼란 스럽습니다. 어떤 도움을 주시겠습니까 ??
당신이 MySQL의에서 다시 수신 오류가 무엇? ['mysql_error()'] (http://php.net/manual/en/function.mysql-error.php) 참고 :'mysql_ *'함수는 더 이상 사용되지 않습니다. – Quantastical
쿼리가 실행될 때 실제로 데이터베이스에 연결되어 있습니까? – billyonecan
@MrSlayer 문제가 있습니다. 아무런 오류가 없었습니다. mysql_error()를 추가했을 때 오류가 없었습니다. 데이터베이스에 연결되어 있기 때문에 쿼리를 에코 할 때 memberID를 꺼내서 연결 상태를 알 수 있기 때문에 DB에 프로필 필드가 업데이트되지 않았기 때문에 연결되어 있습니다. – Lairds