unlink uit datase
Studenten kunnen via de bijhorende website online een cv aanmaken. Een tabel slaat alle data (leeftijd, naam, interesse, opleiding) op. Er kunnen ook fotootjes worden upgeload. Allemaal heel logisch.
De admin van de website kan eenvoudig cv s verwijderen uit de database. Dit werkt perfect. Het probleem is dat de afbeeldingen zelf op de server blijven staan. Deze zouden ook verwijderd moeten worden en dit me lukt niet. Ik heb begrepen dat de functie -unlink- gebruikt moet worden, maar ik boek geen succes.
De werkende code voor het vewijderen van cv s:
<php
include("header.php");
if (!isset($_GET['cvid'])){
print("Need $_GET variable");
exit;
}
$ref = $_SERVER['HTTP_REFERER'];
connecteer();
$a_d = "DELETE FROM bv_cv"
WHERE id = ".$GET['cvid'].";";
&a_q = mysql_query($a_d) or die(""problem activate_s : ">mysql_error());
header("Location: $ref");
?>
Nog even vermelden dat de betreffende tabel "bc_cv" heet. In deze tabel zit een kolom"uid" met als waarde een cijfer. Dit cijfer is eveneens de naam van de bijhorende gif-afbeelding die opgeslagen zijn in "C:\phpdev\www\BC3\stud\img\cv" Voor alle duidelijkheid: uit deze root moeten de gif-afbeeldingen verwijderd worden.
Kan iemand me helpen?
Tip: probeer eerst eens een scriptje te schrijven dat simpel een bestandje verwijderd. De database gebruik je uitsluitend om de juiste bestandsnaam op te zoeken, heeft dus weinig met het probleem te maken.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
$sql = "SELECT ....";
$result = mysql_query($sql);
$row = mysql_fetch_assoc($sql);
$dir = 'map/waarin/bestand/staat'
if(unlink($dir.'/'.$row['uid']))
{
// bestand is verwijderd, nu nog verwijderen uit database.
}
?>
$sql = "SELECT ....";
$result = mysql_query($sql);
$row = mysql_fetch_assoc($sql);
$dir = 'map/waarin/bestand/staat'
if(unlink($dir.'/'.$row['uid']))
{
// bestand is verwijderd, nu nog verwijderen uit database.
}
?>
error = Parse error: parse error in c:\phpdev\www\bc3\admin\cv\del_cv.php on line 15
Dit is de code
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
include("header.php");
if(!isset($_GET['cvid'])){
print("Need $_GET variable");
exit;
}
$sql = "SELECT uid FROM bc_cv";
$result = mysql_query($sql);
$row = mysql_fetch_assoc($sql);
$dir = 'C:\phpdev\www\BC3\stud\img\cv'
if(unlink($dir.'/'.$row['uid']))
{
}
$ref = $_SERVER['HTTP_REFERER'];
connecteer();
$a_d = "DELETE FROM bc_cv
WHERE id = ".$_GET['cvid'].";";
$a_q = mysql_query($a_d) or die("problem activate_s : ".mysql_error());
header("Location: $ref");
?>
include("header.php");
if(!isset($_GET['cvid'])){
print("Need $_GET variable");
exit;
}
$sql = "SELECT uid FROM bc_cv";
$result = mysql_query($sql);
$row = mysql_fetch_assoc($sql);
$dir = 'C:\phpdev\www\BC3\stud\img\cv'
if(unlink($dir.'/'.$row['uid']))
{
}
$ref = $_SERVER['HTTP_REFERER'];
connecteer();
$a_d = "DELETE FROM bc_cv
WHERE id = ".$_GET['cvid'].";";
$a_q = mysql_query($a_d) or die("problem activate_s : ".mysql_error());
header("Location: $ref");
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
include("header.php");
if(!isset($_GET['cvid'])){
print("Need $_GET variable");
exit;
}
$sql = "SELECT uid FROM bc_cv WHERE cvid = ' ". $_GET['cvid']. " ' "; //hier een WHERE anders weet je immers niet welke hij moet pakken.
$result = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_assoc($sql);
$dir = 'C:\phpdev\www\BC3\stud\img\cv';
if(unlink($dir.'/'.$row['uid']))
{
$ref = $_SERVER['HTTP_REFERER'];
connecteer();
$a_d = "DELETE FROM bc_cv
WHERE id = ".$_GET['cvid'].";";
$a_q = mysql_query($a_d) or die("problem activate_s : ".mysql_error());
header("Location: $ref");
}
?>
include("header.php");
if(!isset($_GET['cvid'])){
print("Need $_GET variable");
exit;
}
$sql = "SELECT uid FROM bc_cv WHERE cvid = ' ". $_GET['cvid']. " ' "; //hier een WHERE anders weet je immers niet welke hij moet pakken.
$result = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_assoc($sql);
$dir = 'C:\phpdev\www\BC3\stud\img\cv';
if(unlink($dir.'/'.$row['uid']))
{
$ref = $_SERVER['HTTP_REFERER'];
connecteer();
$a_d = "DELETE FROM bc_cv
WHERE id = ".$_GET['cvid'].";";
$a_q = mysql_query($a_d) or die("problem activate_s : ".mysql_error());
header("Location: $ref");
}
?>
Pepijn
Gewijzigd op 01/01/1970 01:00:00 door W W
Vervolgens zul je met php de locatie van het bestand relatief tov van je site root moeten weergeven en niet de locatie op je harde schijf. Daar zal die parse error waarschijnlijk ook wel door veroorzaakt worden.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
include("header.php");
if(!isset($_GET['cvid'])){
print("Need $_GET variable");
exit;
}
$sql = "SELECT uid FROM bc_cv WHERE id = ".$_GET['cvid'].";";
$result = mysql_query($sql);
$row = mysql_fetch_assoc($sql);
$dir = 'url naar de fotomap'
if(unlink($dir.'/'.$row['uid']))
{
$ref = $_SERVER['HTTP_REFERER'];
connecteer();
$a_d = "DELETE FROM bc_cv
WHERE id = ".$_GET['cvid'].";";
$a_q = mysql_query($a_d) or die("problem activate_s : ".mysql_error());
header("Location: $ref");
}
?>
include("header.php");
if(!isset($_GET['cvid'])){
print("Need $_GET variable");
exit;
}
$sql = "SELECT uid FROM bc_cv WHERE id = ".$_GET['cvid'].";";
$result = mysql_query($sql);
$row = mysql_fetch_assoc($sql);
$dir = 'url naar de fotomap'
if(unlink($dir.'/'.$row['uid']))
{
$ref = $_SERVER['HTTP_REFERER'];
connecteer();
$a_d = "DELETE FROM bc_cv
WHERE id = ".$_GET['cvid'].";";
$a_q = mysql_query($a_d) or die("problem activate_s : ".mysql_error());
header("Location: $ref");
}
?>
(alvast bedankt voor jullie hulp)
En moet je de variabele van je directory nog invoeren.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
include("header.php");
if(!isset($_GET['cvid'])){
print("Need $_GET variable");
exit;
}
$sql = "SELECT uid FROM bc_cv WHERE id = ".$_GET['cvid'].""; // ; verwijderd
$result = mysql_query($sql);
$row = mysql_fetch_assoc($sql);
$dir = 'url naar de fotomap'
if(unlink($dir.'/'.$row['uid']))
{
$ref = $_SERVER['HTTP_REFERER'];
connecteer();
$a_d = "DELETE FROM bc_cv
WHERE id = ".$_GET['cvid'].""; // ; verwijderd
$a_q = mysql_query($a_d) or die("problem activate_s : ".mysql_error());
header("Location: $ref");
}
?>
include("header.php");
if(!isset($_GET['cvid'])){
print("Need $_GET variable");
exit;
}
$sql = "SELECT uid FROM bc_cv WHERE id = ".$_GET['cvid'].""; // ; verwijderd
$result = mysql_query($sql);
$row = mysql_fetch_assoc($sql);
$dir = 'url naar de fotomap'
if(unlink($dir.'/'.$row['uid']))
{
$ref = $_SERVER['HTTP_REFERER'];
connecteer();
$a_d = "DELETE FROM bc_cv
WHERE id = ".$_GET['cvid'].""; // ; verwijderd
$a_q = mysql_query($a_d) or die("problem activate_s : ".mysql_error());
header("Location: $ref");
}
?>
En krijg je geen duidelijke error, behalve (Parse error..) Oftewel.. geeft ie nog meer info weer?? Zet anders ff dit bovenaan je script:
Gewijzigd op 01/01/1970 01:00:00 door Dennis Jongerden
Zeg, misschien domme vraag, maar heb je $dir wel goed gespecificeerd?
En moet een foto niet eindigen op een extensie?
De queries lijken mij goed, kijk gewoon alleen naar regel 15, en wat daar op gebeurd..
Regel 13 is niet afgesloten met een ;
De extensie is niet opgenomen in de database...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
error_reporting(E_ALL); // Error reporting Level
include("header.php");
if(!isset($_GET['cvid'])){
print("Need $_GET variable");
exit;
}
$sql = "SELECT uid FROM bc_cv WHERE id = ".$_GET['cvid'].""; // selecteren uid door cvid op te vragen
$result = mysql_query($sql);
$row = mysql_fetch_assoc($sql);
$dir = 'http://belgiumcampus.co.za/BC3/stud/img/cv/'; // url naar de map waarin de foto's staan
if(unlink($dir.'/'.$row['uid'].)) // verwijderen van fotobestand
{
$ref = $_SERVER['HTTP_REFERER'];
connecteer();
$a_d = "DELETE FROM bc_cv
WHERE id = ".$_GET['cvid'].""; // ; verwijderen van cv
$a_q = mysql_query($a_d) or die("problem activate_s : ".mysql_error());
header("Location: $ref");
}
?>
error_reporting(E_ALL); // Error reporting Level
include("header.php");
if(!isset($_GET['cvid'])){
print("Need $_GET variable");
exit;
}
$sql = "SELECT uid FROM bc_cv WHERE id = ".$_GET['cvid'].""; // selecteren uid door cvid op te vragen
$result = mysql_query($sql);
$row = mysql_fetch_assoc($sql);
$dir = 'http://belgiumcampus.co.za/BC3/stud/img/cv/'; // url naar de map waarin de foto's staan
if(unlink($dir.'/'.$row['uid'].)) // verwijderen van fotobestand
{
$ref = $_SERVER['HTTP_REFERER'];
connecteer();
$a_d = "DELETE FROM bc_cv
WHERE id = ".$_GET['cvid'].""; // ; verwijderen van cv
$a_q = mysql_query($a_d) or die("problem activate_s : ".mysql_error());
header("Location: $ref");
}
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
error_reporting(E_ALL); // Error reporting Level
include("header.php");
connecteer();
if(!isset($_GET['cvid']) OR !ctype_digit($_GET['cvid'])){
echo('Need valid $_GET variable');
exit;
}
$sql = "SELECT uid FROM bc_cv WHERE id = ".$_GET['cvid']; // selecteren uid door cvid op te vragen
$result = mysql_query($sql);
$row = mysql_fetch_assoc($sql);
$dir = 'BC3/stud/img/cv/'; // url naar de map waarin de foto's staan GEEN HTTP://
if(unlink($dir.'/'.$row['uid'])) // verwijderen van fotobestand
{
$ref = $_SERVER['HTTP_REFERER'];
$a_d = "DELETE FROM bc_cv WHERE id = ".$_GET['cvid']; // ; verwijderen van cv
$a_q = mysql_query($a_d) or die("problem activate_s : ".mysql_error());
header("Location: $ref");
}
?>
error_reporting(E_ALL); // Error reporting Level
include("header.php");
connecteer();
if(!isset($_GET['cvid']) OR !ctype_digit($_GET['cvid'])){
echo('Need valid $_GET variable');
exit;
}
$sql = "SELECT uid FROM bc_cv WHERE id = ".$_GET['cvid']; // selecteren uid door cvid op te vragen
$result = mysql_query($sql);
$row = mysql_fetch_assoc($sql);
$dir = 'BC3/stud/img/cv/'; // url naar de map waarin de foto's staan GEEN HTTP://
if(unlink($dir.'/'.$row['uid'])) // verwijderen van fotobestand
{
$ref = $_SERVER['HTTP_REFERER'];
$a_d = "DELETE FROM bc_cv WHERE id = ".$_GET['cvid']; // ; verwijderen van cv
$a_q = mysql_query($a_d) or die("problem activate_s : ".mysql_error());
header("Location: $ref");
}
?>
Staat het script in de map BC3/test (ik noem maar wat), dan is de dir: ../stud/img/cv/ (../ is 1 map omhoog).
Ik merkte dat nu ook de functie om een cv te verwijderen niet meer werkte. (er ontbrak o.a. een ;). Als ik de functie voor de unlink even disable werkt het verwijderen van het cv terug wel, ondanks dat ik volgende errors krijg:
Notice: Undefined index: HTTP_REFERER in c:\phpdev\www\bc3\admin\cv\del_cv.php on line 20
Warning: Cannot add header information - headers already sent by (output started at c:\phpdev\www\bc3\admin\cv\del_cv.php:20) in c:\phpdev\www\bc3\admin\cv\del_cv.php on line 26
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
error_reporting(E_ALL); // Error reporting Level
include("header.php");
if(!isset($_GET['cvid'])){
print("Need $_GET variable");
exit;
}
//$sql = "SELECT uid FROM bc_cv WHERE id = ".$_GET['cvid'].""; // selecteren uid door cvid op te vragen
//$result = mysql_query($sql);
//$row = mysql_fetch_assoc($sql);
//$dir = '../../stud/img/cv/'; // url naar de map waarin de foto's staan zonder http://
//if(unlink($dir.'/'.$row['uid'].)) // verwijderen van fotobestand
//{
$ref = $_SERVER['HTTP_REFERER'];
connecteer();
$a_d = "DELETE FROM bc_cv
WHERE id = ".$_GET['cvid'].";"; // ; verwijderen van cv
$a_q = mysql_query($a_d) or die("problem activate_s : ".mysql_error());
header("Location: $ref");
// }
?>
error_reporting(E_ALL); // Error reporting Level
include("header.php");
if(!isset($_GET['cvid'])){
print("Need $_GET variable");
exit;
}
//$sql = "SELECT uid FROM bc_cv WHERE id = ".$_GET['cvid'].""; // selecteren uid door cvid op te vragen
//$result = mysql_query($sql);
//$row = mysql_fetch_assoc($sql);
//$dir = '../../stud/img/cv/'; // url naar de map waarin de foto's staan zonder http://
//if(unlink($dir.'/'.$row['uid'].)) // verwijderen van fotobestand
//{
$ref = $_SERVER['HTTP_REFERER'];
connecteer();
$a_d = "DELETE FROM bc_cv
WHERE id = ".$_GET['cvid'].";"; // ; verwijderen van cv
$a_q = mysql_query($a_d) or die("problem activate_s : ".mysql_error());
header("Location: $ref");
// }
?>