Frågan 26 feb. 2007 01:59 #1 Har lite problem med att radera en bild från servern med unlink().
Varken bilden i mappen eller sökvägen i mysql raderas.
Detta finns:
$path = "/home/var/*****/*****/userpics/profilbilder/$CURUSER[username]";
if (get_user_class() >= UC_MODERATOR || $a["userid"] == $CURUSER["id"]) {
$delete = $HTTP_GET_VARS["delete"];
if (is_valid_id($delete)) {
$r = mysql_query("SELECT * FROM profilbilder WHERE picid=$delete") or sqlerr(__FILE__, __LINE__);
if (mysql_num_rows($r) == 1) {
$a = mysql_fetch_assoc($r);
if (get_user_class() >= UC_MODERATOR || $a["userid"] == $CURUSER["id"]) {
mysql_query("DELETE FROM profilbilder WHERE picid=$delete") or sqlerr(__FILE__, __LINE__);
if (!unlink("$path/$a[location]"))
stderr("Warning", "Unable to unlink file: <b>$a[location]</b>. You should contact an administrator about this error.");
}
}
}
}
stdhead("BitBucket Log");
$res = mysql_query("SELECT count(*) FROM profilbilder WHERE userid = $CURUSER[id]") or die(mysql_error());
$row = mysql_fetch_array($res);
$count = $row[0];
$perpage = 10;
list($pagertop, $pagerbottom, $limit) = pager($perpage, $count, $_SERVER["PHP_SELF"] . "?out=" . $_GET["out"] . "&" );
print("<h1>Galleri</h1>\n");
print("Total Images Stored: $count");
echo $pagertop;
$res = mysql_query("SELECT * FROM profilbilder WHERE userid = $CURUSER[id] ORDER BY added DESC $limit") or sqlerr(__FILE__, __LINE__);
if (mysql_num_rows($res) == 0)
print("<b>BitBucket Log is empty</b>\n");
else {
print("<table align='center' border='0' cellspacing='0' cellpadding='5'>\n");
while ($arr = mysql_fetch_assoc($res)) {
$r2 = mysql_query("SELECT username FROM users WHERE id=$arr[userid]") or sqlerr();
$a2 = mysql_fetch_assoc($r2);
$date = substr($arr['added'], 0, strpos($arr['added'], " "));
$time = substr($arr['added'], strpos($arr['added'], " ") + 1);
$name = $arr["location"];
$fullimagepath = "/home/var/*****/*****/userpics/profilbilder/$CURUSER[username]";
$url = str_replace(" ", "%20", htmlspecialchars("userpics/profilbilder/$CURUSER[username]/$name"));
print("<tr>");
print("<td><center><a href=$url><img src=$url onLoad='SetSize(this, 400)'></a></center>");
print("Uppladdad av: <b><a href=visaprofil.php?id=$arr[userid]>$a2[username]</a></b><br>");
if (get_user_class() >= UC_MODERATOR || $arr["userid"] == $CURUSER["id"])
print(" <b><a href=?delete=$arr[picid]>[Ta bort]</a></b><br>");
print("Datum: $date $time");
print("</tr>");
}
print("</table>");
}
echo $pagerbottom;
Någon som kan hitta felet!?
Det enda som händer nu, är att sidan bara uppdateras.
Tack på förhand!
D Duffer Medlem sedan mars 2003 429 inlägg Det låter ju som att du inte äns passerar is_valid_id()... testa att köra en echo innanför dess klamrar och se om du får en utskrift... om nu is_valid_id() kollar om bilden finns, varför kollar du det då igen genom att hämta den och sen kontrollera att det blev en rad?
mvh