Je kan dus als user een pic uploaden, wat de eerste keer perfect werkt, maar als je het daarna dus nog 2x doet werkt het dus niet meer.
<?php
if (isset($_POST['del_pic'])) {
$query = "SELECT file_name FROM userpics WHERE user_id = {$_SESSION['user_id']}";
$result = mysql_query($query);
$row = mysql_fetch_object($result);
$num = mysql_num_rows($result);
if ($num > 0) {
unlink ("c:/uploadimg/$row->file_name");
$query = "DELETE FROM userpics WHERE user_id = {$_SESSION['user_id']}";
$result = mysql_query($query) or die (mysql_error());
if ($result) {
echo '<p><font color="CC3300">Your photo has been successfully deleted.</font></p>';
} else {
echo '<p><font color="CC3300">Your photo could not be removed due to a system error! Please contact the admin if the error persist!</font></p>';
}
} else {
echo '<p><font color="CC3300">There is no photo to delete!</font></p>';
}
}
if (isset($_POST['submit'])) {
if ($_FILES['upload']['type'] !== 'image/pjpeg') {
echo '<p><font color="CC3300">Invalid file type, only jpeg files are allowed!</font></p>';
} else {
//create random filename
$rand = md5(uniqid(rand(), true));
$rand_short = substr($rand, -10);
$extension = explode ('.' ,$_FILES['upload']['name']);
$file_name = $rand_short . '.' . $extension[1];
//check if picname exist
$query = "SELECT file_name FROM userpics WHERE user_id = {$_SESSION['user_id']}";
$result = mysql_query($query) or die(mysql_error());
$num = mysql_num_rows($result);
$row = mysql_fetch_object($result);
if ($num > 0) {
//file exist
if ($result) {
$query = "UPDATE userpics SET file_name='$file_name' AND upload_date='NOW()' WHERE user_id = {$_SESSION['user_id']}";
$result = mysql_query($query) or die(mysql_error());
if (result) {
echo 'oke';
} else {
echo 'fout';
}
if ($num > 0) {
unlink ("c:/uploadimg/$row->file_name"); //del old file
}
}
//file does not exist
} else {
$query = "INSERT INTO userpics (user_id, file_name, upload_date) VALUES ('{$_SESSION['user_id']}', '$file_name', NOW())";
$result = mysql_query($query) or die(mysql_error());
}
// file successfully inserted!
if ($result) {
if (move_uploaded_file($_FILES['upload']['tmp_name'], "c:/uploadimg/$file_name")) {
echo '<p><font color="CC3300">Your photo has been uploaded successfully!</font></p>';
} else { // file failed
echo '<p><font color="CC3300">Your photo could not be processed due to a system error! Please contact the admin if the error persist!</font></p>';
unlink ("c:/uploadimg/$row->file_name");
$query = "DELETE user_id, file_name, upload_date FROM userpics WHERE user_id = {$_SESSION['user_id']}";
$result = mysql_query($query) or die(mysql_error());
} // move file
} //result
} //file jpg
} //main
?>
Had er een heleboel echo's tussen gezet om precies te zien wat hij doet,
f51d432461.jpg > nieuw file name!!
SELECT file_name FROM userpics WHERE user_id = 19
query chech exist
Resource id #3
result exist
filename exists
UPDATE userpics SET file_name='f51d432461.jpg' AND upload_date='NOW()' WHERE user_id = 19
Hij zegt dat hij hem update maar dat doet hij dus niet de de waarde in de table is due niet 'f51d432461.jpg' maar gewoon 0, maar de dat gebeurt dus pas de 3e keer de 2x daarvoor doet hij het wel gewoon goed!
query exist
oke
deze "oke" is dus dat de update succesvol is uitgevoerd wat dus niet zo is maar hij zegt van wel?
0
filename 2 file exists!
Warning: unlink(c:/uploadimg/0): No such file or directory in c:\program files\apache
Hier zie je dus dat hij die file 0 niet kan vinden die hij dus in de bd heeft gezet ipv van de 'f51d432461.jpg' die hij bij de echo van de query weergeeft....
group\apache\htdocs\html\travel\change_photo.php on line 343
464 views