php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 20-04-2008, 19:31
mR_brown
 Newbie
Links : Onlinestatus : mR_brown ist offline
Registriert seit: Sep 2004
Ort: MD-H/D
Beiträge: 13
mR_brown ist zur Zeit noch ein unbeschriebenes Blatt
Standard Datei vom Server löschen

Hallo Forum,

ich lasse eine Datei per "move_upload" hochzuladen, dass funktioniert auch soweit:

Code:
move_uploaded_file($_FILES['document']['tmp_name'], '../documents/'.mysql_insert_id().'.'.$ext);
		} else {
			$error = 'Dateityp
Jetzt möchte ich die Datei aber auch wieder löschen lassen, zur Zeit benutze ich folgende Anweisung, jedoch löscht dies nur den Datenbankeintrag:

Code:
mysql_query("DELETE FROM documents WHERE id = ".quote_smart($_GET['id']));
Wie schaffe ich es diese nun auch vom Server zu löschen, per unlink?

Vielen Dank für die Hilfe.

Gruß,
mR_brown
Mit Zitat antworten
  #2 (permalink)  
Alt 20-04-2008, 19:33
Manko10
 Newbie
Links : Onlinestatus : Manko10 ist offline
Registriert seit: Mar 2008
Beiträge: 115
Manko10 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Huch?
Ich denke, einmal reicht. -> Datei vom Server löschen
Auch, wenns zunächst das falsche Forum gewesen ist. Man kann den Thread ja immer noch verschieben.
Außerdem müsste dein Problem doch gelöst sein.
Mit Zitat antworten
  #3 (permalink)  
Alt 20-04-2008, 19:42
mR_brown
 Newbie
Links : Onlinestatus : mR_brown ist offline
Registriert seit: Sep 2004
Ort: MD-H/D
Beiträge: 13
mR_brown ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich weiß, ich war etwas zu voreilig.

Ich sitze gerade halt vor dem Problem und hab irgendwie versucht nochmals schnell eine Info zu bekommen, da ich auch nicht wusste, wie schnell (nach Anfrage) so ein Thema verschoben ist.

Sorry.

Leider ist mir aber damit noch nicht ganz geholfen, bin leider nicht ganz so fit in PHP/Mysql, sondern versuche über Buch-Snippets und allgemeine Codes durch Suche zusammen zu packen :-)

Hab sowas mal probiert:

Code:
unlink('../documents/'($_GET['id'])'.'.$ext);
Vielleicht kann mir jemand nochmals ein Tipp oder Anweisung geben.
Mit Zitat antworten
  #4 (permalink)  
Alt 20-04-2008, 19:45
Manko10
 Newbie
Links : Onlinestatus : Manko10 ist offline
Registriert seit: Mar 2008
Beiträge: 115
Manko10 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Code:
unlink('../documents/'.$_GET['id'].'.'.$ext);
Aber du musst beachten, dass ein böswilliger Benutzer in das GET-Feld jeden beliebigen Dateinamen schreiben kann, also: unsicher, unsicher!
Mit Zitat antworten
  #5 (permalink)  
Alt 21-04-2008, 19:18
mR_brown
 Newbie
Links : Onlinestatus : mR_brown ist offline
Registriert seit: Sep 2004
Ort: MD-H/D
Beiträge: 13
mR_brown ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Das mit dem unlink funktioniert soweit:

Code:
unlink('../documents/'.$_GET['id'].'.zip');
Jedoch nur wenn ich die Endung vorgebe. Ich habe versucht über:

Code:
$ext = ($_GET['ext']);

unlink('../documents/'.$_GET['id'].'.'.$ext);
Doch hier bekommt er glaube ich nicht den richtigen Wert übermittelt, wie schaffe ich es zu der richtigen ID, den richtigen Dateitypen anzuhängen?

So kommt es in die Datenbank:

Code:
if (isset($_POST['usergroup'])) {
	if (!empty($_FILES['document']['name'])) {
		$split = explode('.', $_FILES['document']['name']);
		$ext = $split[count($split) - 1];
		if ($ext == 'pdf' || $ext == 'ppt' || $ext == 'xls' || $ext == 'doc' || $ext == 'pptx' || $ext == 'xlsx' || $ext == 'docx' || $ext == 'zip') {
			mysql_query("INSERT INTO documents
			               (usergroup, subject, filename, filetitle, description, academic, filesize, date)
			             VALUES
			               ('".$_POST['usergroup']."', '".$_POST['subject']."', '".$_FILES['document']['name']."', ".quote_smart($_POST['filetitle']).",
			                ".quote_smart($_POST['description']).", ".quote_smart($_POST['academic']).", ".filesize($_FILES['document']['tmp_name']).", NOW())
			            ");
						
			move_uploaded_file($_FILES['document']['tmp_name'], '../documents/'.mysql_insert_id().'.'.$ext);
		} else {
			$error = 'Dateityp nicht erlaubt. Erlaubte Dateitypen: .pdf, .ppt(x), .xls(x), .doc(x), .zip';
		}
	} else {
		$error = 'Bitte eine Datei auswählen.';
	}
Vielen Dank für Eure Hilfe.
Mit Zitat antworten
  #6 (permalink)  
Alt 21-04-2008, 19:20
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Doch hier bekommt er glaube ich nicht den richtigen Wert übermittelt, wie schaffe ich es zu der richtigen ID, den richtigen Dateitypen anzuhängen?
Wie wäre es, wenn du diese Vermutung einfach mal mit ner Testausgabe prüfst???
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #7 (permalink)  
Alt 21-04-2008, 19:25
mR_brown
 Newbie
Links : Onlinestatus : mR_brown ist offline
Registriert seit: Sep 2004
Ort: MD-H/D
Beiträge: 13
mR_brown ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo TobiaZ,

folgende Info bekomme ich zurück, hier fehlt wie man sieht, die Endung nach dem ".":


Code:
Warning: unlink(../documents/14.) [function.unlink]: No such file or directory in /var/www/ud05_99/html/demo/nda_download/admin/delete_document.php on line 14
Mit Zitat antworten
  #8 (permalink)  
Alt 21-04-2008, 19:27
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Dann benutzt du jetzt mal (gemäß unserer Regeln ) das error_reporting(E_ALL) und guckst, wo der Wert auf der Strecke bleibt.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #9 (permalink)  
Alt 21-04-2008, 19:45
mR_brown
 Newbie
Links : Onlinestatus : mR_brown ist offline
Registriert seit: Sep 2004
Ort: MD-H/D
Beiträge: 13
mR_brown ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Das gibt mir nur folgendes zurück:

Code:
Notice: Undefined index: ext
Liegt es daran, dass ich mit zwei Dokumenten arbeite, einmal eine php, wo die Daten in die Datenbankgeschrieben werden und die Löschanweisung habe ich in einer anderen php.
Mit Zitat antworten
  #10 (permalink)  
Alt 21-04-2008, 19:57
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Und die andere Datei rufst du nicht mit ?ext=pdf* auf?
Wenn du nen Parameter verwendest, musst du ihn natürlich auch angeben!


__
*Beispiel
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #11 (permalink)  
Alt 22-04-2008, 19:10
mR_brown
 Newbie
Links : Onlinestatus : mR_brown ist offline
Registriert seit: Sep 2004
Ort: MD-H/D
Beiträge: 13
mR_brown ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo Tobiaz, per $ext werden mehrere Typen verwendet, wie Du einige Posts vorher siehst, dort habe ich den Text, welcher die Datei uploaded und in die Datenbank packt, gepostet.

Wenn ich jetzt in der löschen-Datei folgende Anweisung mache, nimmt er nur das PDF als Endung, kann er sich nicht die richtige suchen?

Code:
$ext = 'pdf' OR 'ppt' OR 'zip';

unlink('../documents/'.$_GET['id'].'.'.$ext);
Mit Zitat antworten
  #12 (permalink)  
Alt 24-04-2008, 13:21
mR_brown
 Newbie
Links : Onlinestatus : mR_brown ist offline
Registriert seit: Sep 2004
Ort: MD-H/D
Beiträge: 13
mR_brown ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo Leute,

kann mir keiner ein Tipp geben, wie ich "id" und "ext" zusammen bekomme.

In der Datei, wo die Löschung angewiesen ist, bekomme ich ja die ID rein, nur die dazugehörige Endung, wie diese auf dem Server liegt fehlt. Kann nicht einfach geprüft werden ob eine von den 3 dateiendungen passt und dann löscht er es wenn es übereinstimmt?

Danke.
Mit Zitat antworten
  #13 (permalink)  
Alt 24-04-2008, 13:34
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Ähm???

Mal ganz ehrlich, was erwartest du dir von soetwas?
PHP-Code:
$ext 'pdf' OR 'ppt' OR 'zip'
Du musst natürlich wissen, welche Endung die Datei hat, sonst kannst du sie nicht löschen! unlink erwartet nunmal den vollen Dateinamen, alles andere wäre auch unsinnig.

Wenn du der Meinung bist, dass du den Dateinamen nicht wissen kannst, musst du halt mit so ner art Bruteforce alle Dateinamen durchtesten.

PHP-Code:
$ext = array('php','html','pdf');
for(
i=0;i<count(ext);i++)
  if(
file_exists(zusammengesetzter name))
    
unlink(zusammengesetzter name); 
Zitat:
kann mir keiner ein Tipp geben, wie ich "id" und "ext" zusammen bekomme.
Du hast sie doch schon zusammen bekommen. Du kannst nur nicht alle möglichen extensions in einen String bekommen.

Zitat:
In der Datei, wo die Löschung angewiesen ist, bekomme ich ja die ID rein, nur die dazugehörige Endung, wie diese auf dem Server liegt fehlt. Kann nicht einfach geprüft werden ob eine von den 3 dateiendungen passt und dann löscht er es wenn es übereinstimmt?
richtig wäre es, die extension aus der DB (oder sonstwoher) zu besorgen, anonsten hilft wie gesagt nur bruteforce.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 06:47 Uhr.