webForumDet fria alternativet

Radera bild från servern + sökväg i mysql?

PHP

1 svar · 386 visningar · startad av Guldstrand

Medlem sedan juli 20041 271 inlägg
Frågan#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!

Medlem sedan mars 2003429 inlägg
#2

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

260 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
117 ms — ändringar (db)