webForumDet fria alternativet

märkligt fel vid borttagning av filer...

PHP

4 svar · 241 visningar · startad av egxezex

Medlem sedan jan. 200786 inlägg
Frågan#1

Har suttit läänge med detta och kan inte hitta felet.. Nån som kanske ser det.
Det är när jag ska ta bort filer, som ligger i olika mappar beroende på kategori. värdet ska även tas bort från databasen.

<?php
ob_start();
session_start(); // Alltid överst på sidan
$fil = $_GET['fil'];
// Kolla om inloggad = sessionen satt
/*if (!isset($_SESSION['sess_user'])){
  header("Location: index.php");
  exit;
}
*/

if (!isset($_SESSION['sess_userlevel']) || $_SESSION['sess_userlevel'] != "admin") {
//  header("Location: index.php");
  header("refresh: 5;url=konto.php");
// eller
  echo "Du har inte behörighet till den här sidan";
  exit;
}

if (isset($_GET['logout'])){
  session_unset();
  session_destroy();
  header("Location: index.php");
  exit;
}
?>
<html>
<head>
<link rel=StyleSheet href="setts/style.css" TYPE="text/css">
</head>
<body class="back">

<?php

include "conn.php";

if(isset($_GET['action']) && isset($_GET['fil'])) 
{ 
	if($_GET['action'] == "delfile") 
	{ 
	
		echo "<strong><p class=\"warning\">Är du säker på att du vill ta bort Filen: $fil? </strong><p>	
		
		<form method=\"post\" action=\"?action=delfile&fil=" . $_GET['fil'] ."&kategori=". $_GET['kategori'] . "\">
		<input type=\"submit\" name=\"JA\" value=\"Ja\">
		<input type=\"submit\" name=\"NEJ\" value=\"Nej\">
		<input type=\"hidden\" name=\"delete\" value=\"$fil\">
		</form>"; 
		
		
		if ( $_POST['JA'] == "Ja"){
		
			if ($_GET['kategori'] == "marketing"){
					
					$upload_dir = 'download/marketing';
				}
				if ($_GET['kategori'] == "purchase"){
					
					$upload_dir = 'download/purchase';
				}
				if ($_GET['kategori'] == "development"){
					
					$upload_dir = 'download/development';
				}
				if ($_GET['kategori'] == "newsletter"){
					
					$upload_dir = 'download/newsletter';
				}
			
			
				$query3 = mysql_query("DELETE FROM $file_table WHERE id = '" . $_GET['fil'] . "'");
					$result3 = mysql_query($query3) or die('Query failed: vid delete' . mysql_error()); //PÅ DENNA RAD BLIR DET FEL!!
			
				if(file_exists($upload_dir."/".$resultRow['Filename'])){
						unlink ($upload_dir."/".$resultRow['Filename']);
				}
		}
					
		
		//header("Location: editrem.php");
		//exit;
		
	
		if ( $_POST['NEJ'] == "Nej"){
		//header("Location: editrem.php");
		//exit;
		echo"nej";
		}
	}
	

} 

$query = ("SELECT * FROM $file_table WHERE RefID = '$fil'");
$result = mysql_query($query) or die('Query failed: ' . mysql_error()); 
 
// Printing results in HTML 
//echo "<link rel=StyleSheet href=\"setts\style.css\" TYPE=\"text/css\">"; 
 
echo "<table align=\"center\">\n"; 

echo "<td class=\"text3\"><strong>Fil</strong></td>"; 
//echo "<td class=\"text3\"><strong>Pass</strong></td>"; 
echo "<td class=\"text3\"><strong>Kommentar</strong></td>"; 
echo "<td class=\"text3\"><strong>Kategori</strong></td>"; 
echo "<td class=\"text3\"><strong>Ta Bort Filen </strong></td>"; 
//echo "<td class=\"text3\"><strong>filename</strong></td>"; 
//echo "<td class=\"text3\"><strong>type</strong></td>"; 
//echo "<td class=\"text3\"><strong>size</strong></td>"; 
//echo "<td class=\"text3\"><strong>content</strong></td>"; 
echo "</tr>"; 
 
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
 //foreach ($line as $col_value) {
   //    echo "\t\t<td class=\"text\">$col_value</td>\n";
   //}
?> 
<tr> 

<td class="text"><?php echo $line[Filename]?></td> 
<td class="text"><?php echo $line[Kommentar]?></td>
<!-- <td class="text"><?php echo $line[name]?></td>  -->
<td class="text"><?php echo $line[Kategori]?></td>
<td class="text"><a href="?fil=<?php echo $line[id]?>&action=delfile&kategori=<?php echo $line[Kategori]?>"><?php echo
$line[0]?>Ta bort</a></td> 

<!-- <td class="text"><?php echo $line[4]?></td>  -->
<!-- <td class="text"><?php echo $line[5]?></td>  -->
<!-- <td class="text"><?php echo $line[6]?></td>  -->
<!-- <td class="text"><?php echo $line[7]?></td>  -->
<!-- <td class="text"><?php echo $line[8]?></td>  -->

</tr> 
<?php 
} 
echo "</table>\n"; 
 
// Free resultset 
mysql_free_result($result); 

ob_end_flush();
//?>

<br>
<a href="admin.php">Tillbaka</a><br><br>
<?php
echo "<a href=\"index.php?logout=\">Logga ut</a>\n";
?>
</body>
</html>

Jag får felmedelande :
"Query failed: vid deleteYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1' at line 1"

Men ändå så tas värdet bort ifrån databasen, men filen försvinner inte ifrån mappen.

Man kommer till den sida ifrån denna fil:

<?php
ob_start();
session_start(); // Alltid överst på sidan

if (!isset($_SESSION['sess_userlevel']) || $_SESSION['sess_userlevel'] != "admin") {

 	 header("refresh: 5;url=konto.php");
	
 	 echo "Du har inte behörighet till den här sidan";
 	 exit;
}

if (isset($_GET['logout'])){
  session_unset();
  session_destroy();
  header("Location: index.php");
  exit;
}
?>
<html>
<head>
<link rel=StyleSheet href="setts/style.css" TYPE="text/css">
</head>
<body class="back">

<?php
include "conn.php";

$id = $_GET['id'];

  /*  if($_GET['action'] == "edit") 
    { 

	echo "<strong><p class=\"warning\">Vill du ladda upp en fil till: $tabort? </strong><p>	
	<form method=\"post\" action=\"?action=edit&id=" . $_GET['id'] . "\">
        <input type=\"submit\" name=\"JA\" value=\"Ja\">
        <input type=\"submit\" name=\"NEJ\" value=\"Nej\">
	<input type=\"hidden\" name=\"delete\" value=\"$tabort\">
        </form>"; //Hit kommer den...
        
	
	if ( $_POST['JA'] == "Ja"){
	 $id = $_GET['id']; 
	 $upload_dir = 'download';
	header("Location: redigera.php");
 	 exit;
}
*/
if(isset($_GET['action']) && isset($_GET['id'])) 
{ 
    $tabort = $_GET['namn'];
	
	if($_GET['action'] == edit){
		header("Location: redigera.php?var=$id");
	}
	
}

if(isset($_GET['action']) && isset($_GET['fil'])) { 
    $tabort = $_GET['namn'];
	

	if($_GET['action'] == "fil") {
		$file = $_GET['fil'];
		header("Location: editrem.php?id=$id&fil=$file");
	}
}
// Performing SQL query
$query = "SELECT * FROM $mem_table";
$result = mysql_query($query) or die('Query failed: ' . mysql_error());

// Printing results in HTML
echo "<table>\n"; 

echo "<td class=\"text3\"><strong>User</strong></td>"; 
//echo "<td class=\"text3\"><strong>Pass</strong></td>"; 
echo "<td class=\"text3\"><strong>Name</strong></td>"; 
echo "<td class=\"text3\"><strong>Ladda upp</strong></td>";
echo "<td class=\"text3\"><strong>Ta Bort Filer</strong></td>";  
echo "</tr>"; 
 
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {

?> 
<tr> 

<td class="text"><?php echo $line[user]?></td> 
<!-- <td class="text"><?php echo $line[pass]?></td>  -->
<td class="text"><?php echo $line[name]?></td> 
<td class="text"><a href="?id=<?php echo $line[id]?>&action=edit&namn=<?php echo $line[name]?>"><?php echo
$line[0]?>Ladda upp</a></td> 
<td class="text"><a href="?fil=<?php echo $line[id]?>&action=fil&namn=<?php echo $line[name]?>"><?php echo
$line[0]?>Ta bort</a></td> 

<!-- <td class="text"><?php echo $line[4]?></td>  -->
<!-- <td class="text"><?php echo $line[5]?></td>  -->
<!-- <td class="text"><?php echo $line[6]?></td>  -->
<!-- <td class="text"><?php echo $line[7]?></td>  -->
<!-- <td class="text"><?php echo $line[8]?></td>  -->

</tr> 
<?php 
} 
echo "</table>\n"; 
 
// Free resultset 
mysql_free_result($result); 

ob_end_flush();
//?>

<?
if (isset ($_POST ['submit'])){
  $delete = $_POST['delete'];
  if ($delete=="126"){
    echo "<p class=\"text2\">Du kan inte redigera admin kontot!<p>";
  }

}
ob_end_flush();
?>

<a href="admin.php">Tillbaka</a><br><br>
</body>
</html>
<?php
echo "<a href=\"index.php?logout=\">Logga ut</a>\n";
?>
Medlem sedan dec. 20025 483 inlägg
#2

I

mysql_query("DELETE FROM $file_table WHERE id = '" . $_GET['fil'] . "'");

Var sätts $file_table?

Dessutom, om fältet id är numeriskt skall inte värdet omges med apostrofer. I stället

mysql_query("DELETE FROM $file_table WHERE id = " . $_GET['fil']);
Medlem sedan aug. 2004903 inlägg
#3

$file_table sätts i conn.php

Medlem sedan aug. 2001145 inlägg
#4

Du gör lite tokigt här:

$query3 = mysql_query("DELETE FROM $file_table WHERE id = '" . $_GET['fil'] . "'");
$result3 = mysql_query($query3) or die('Query failed: vid delete' . mysql_error()); //PÅ DENNA RAD BLIR DET FEL!!

$query3 blir ju true/false eversom du gör queryn där så den andra queryn då gör blir ju fel såklart :)

$query3 = mysql_query("DELETE FROM $file_table WHERE id = '" . $_GET['fil'] . "'");
if (!$query3) die("Fel sql...");
Medlem sedan jan. 200786 inlägg
#5

Såg nu vad jag gjort för fel. Får väl skylla på tröttheten som vanligt :) , men tack för hjälpen!

Ändrade:

$query3 = mysql_query("DELETE FROM $file_table WHERE id = '" . $_GET['fil'] . "'");
$result3 = mysql_query($query3) or die('Query failed: vid delete' . mysql_error()); //PÅ DENNA RAD BLIR DET FEL!!

Till:

$query3 = "DELETE FROM $file_table WHERE id = $FilID";
			$result3 = mysql_query($query3) or die('Query failed: vid delete' . mysql_error());
269 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)