zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden kleines Problem mit php

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 31.07.2011, 22:04
Benutzerbild von PHP-Freak
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 15.04.2009
Beiträge: 182
PHP-Freak befindet sich auf einem aufstrebenden Ast
Standard kleines Problem mit php

Hallo, ich bin dabei mir ein Script zu bauen das Bilder in einen Ordner lädt
anzeigt und wieder löschen kann.
Soweit klappt das auch alles ganz gut aber bein löschen habe ich ein Problem.

Das ist mein Datei für Uploads und das anzeigen sowie um die Bilder,
die vorhanden sind in einer auswahlliste anzuzeigen für das löschen.
PHP-Code:
<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post" enctype="multipart/form-data">
<input type="file" name="datei"><br>
<input type="submit" value="Hochladen">
</form>
<?php
$dateityp 
GetImageSize($_FILES['datei']['tmp_name']);
if(
$dateityp[2] != 0)
   {

   if(
$_FILES['datei']['size'] <  102400)
      {
      
move_uploaded_file($_FILES['datei']['tmp_name'], "upload/".$_FILES['datei']['name']);
      echo 
"Das Bild wurde Erfolgreich hochgeladen";
      }

   else
      {
         echo 
"Das Bild darf nicht größer als 100 kb sein ";
      }

    }

else
    {
    echo 
"Bitte nur Bilder im Gif Format hochladen";
    }
?>
<p>
========================Ordnerinhalt==========================
</p>
<?php
//Ordnerinhalte anzeigen
$verzeichnis "./upload/"// Name des Verzeichnises
$action=opendir($verzeichnis);

while(
$datei=readdir($action)){
if(!
preg_match("!(\.|\..)$!"$datei)){
?>
<a href="<?=$verzeichnis.'/'.$datei ?>"><img style="width:50px; height:50px;" src="<?=$verzeichnis.'/'.$datei ?>"/></a><br>
<?php
}
}
?>
<p>
=============================Bilder löschen========================
<form action="loeschen.php" method="post">
<select name="loeschen">
<option>Bitte wählen</option>
<?php
//Ordnerinhalte anzeigen
$verzeichnis "./upload/"// Name des Verzeichnises
$action=opendir($verzeichnis);

while(
$datei=readdir($action)){
if(!
preg_match("!(\.|\..)$!"$datei)){
?>
<!--
Bilderauswahl zum löschen
-->
<option value="<?=$datei?>"><?=$datei?></option>
<?php
}
}
?>
</select>
<input type="submit" value="Bild löschen">
Das ist die Datei die eigentlich löschen soll.
PHP-Code:
<?php
$objekt 
$_POST['loeschen'];
unlink('upload/$objekt');
echo 
"Das Bild mit dem Namen ($objekt) wurde erfolgreich gelöscht!";
?>
Irgendwie wird bei unlink die Variable ($objekt) nicht übernommen, und ich habe keine Ahnung warum.

Wenn ich das Script über methode="post" auf rufe erhalte ich dieses Warning:
Warning: unlink(upload/$objekt) [function.unlink]: No such file or directory in G:\xampp\htdocs\seiten\Test\loeschen.php on line 3
Das Bild mit dem Namen (zusclag1.png) wurde erfolgreich gelöscht!

Über ein bischen Hilfe wäre ich sehr dankbar.
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 31.07.2011, 22:13
Benutzerbild von Praktikant
Semantikbremse.
XHTMLforum-Kenner
 
Registriert seit: 22.04.2008
Beiträge: 4.985
Praktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz sein
Standard

Variablen werden nur innerhalb von doppelten Anführungszeichen ersetzt. Du müsstest das also so schreiben
PHP-Code:
unlink("upload/$object"); 
Sauberer und einfacher zu pflegen, daher eher zu empfehlen, ist jedoch folgende Schreibweise (Die Art der Anführungszeichen ist dabei egal, ich nutze immer einzelne)
PHP-Code:
unlink('upload/' $object); 
__________________
Rettet die Erde.... sie ist der einzige Planet mit Schokolade!

Geändert von Praktikant (31.07.2011 um 22:15 Uhr)
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 31.07.2011, 22:37
Benutzerbild von PHP-Freak
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 15.04.2009
Beiträge: 182
PHP-Freak befindet sich auf einem aufstrebenden Ast
Standard

Danke erstmal für die kleine Hilfe.
Habe jetzt das nächste Problem, und zwar wird die Datei leider nicht gelöscht.
Habe nun mit den rechten rumgespielt hat aber nichts gepracht.
Die Datei wird nicht gelöscht weder in Xampp noch auf meinem richtigen Server.

Kann mir hierzu auch jemand was sagen?
Mit Zitat antworten
  #4 (permalink)  
Alt 31.07.2011, 22:42
Benutzerbild von Praktikant
Semantikbremse.
XHTMLforum-Kenner
 
Registriert seit: 22.04.2008
Beiträge: 4.985
Praktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz sein
Standard

Gibts eine Meldung dazu? Die Funktion spuckt ja eine Fehlermeldung aus, wenn die Datei nicht gefunden wird.
Aus dem Stehgreif etwas sagen kann ich nicht. Weiterreichende Informationen sind auch hier von Nöten...
__________________
Rettet die Erde.... sie ist der einzige Planet mit Schokolade!
Mit Zitat antworten
  #5 (permalink)  
Alt 31.07.2011, 22:45
Benutzerbild von PHP-Freak
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 15.04.2009
Beiträge: 182
PHP-Freak befindet sich auf einem aufstrebenden Ast
Standard

Das ist der Witz, es kommt keine Fehlermeldung nur die ausgabe von meinem echo.
Das steht nur:
Das Bild mit dem Namen (lampel.png) wurde erfolgreich gelöscht!

Zurück

mehr nicht. Drum habe ich ja das nächste Problem.
Mit Zitat antworten
  #6 (permalink)  
Alt 31.07.2011, 22:57
Benutzerbild von Praktikant
Semantikbremse.
XHTMLforum-Kenner
 
Registriert seit: 22.04.2008
Beiträge: 4.985
Praktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz sein
Standard

Prüf mal die Funktion darauf ob sie ausgeführt wurde oder nicht. Das ist auch für deine Benutzer besser.

Desweiteren muss es mit den Rechten zusammenhängen, wenn die Datei gefunden wurde. Wurde schon einmal eine Datei gelöscht? Du kannst ja mal testweise die hochgeladene Datei mit chmod() auf die Rechte 0777 setzen und schauen ob du dann löschen kannst.

Ist error_reporting(E_ALL) gesetzt?
__________________
Rettet die Erde.... sie ist der einzige Planet mit Schokolade!
Mit Zitat antworten
  #7 (permalink)  
Alt 31.07.2011, 23:08
Benutzerbild von PHP-Freak
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 15.04.2009
Beiträge: 182
PHP-Freak befindet sich auf einem aufstrebenden Ast
Standard

error_reporting(E_ALL)
habe ich bereits gesetzt, wird aber nix ausgegeben.
Für alle Dateien die sich Ordner upload befinden haben die rechte 777 also dürften Sie alles.
es wird aber nur das echo ausgegeben und sonst nichts

die datei loeschen.php sieht jetzt so aus:
PHP-Code:
<?php
error_reporting
(E_ALL);
$objekt $_POST['loeschen'];
unlink('upload/' $object);  
echo 
"Das Bild mit dem Namen ($objekt) wurde erfolgreich gelöscht!";
?>
<p>
<a href="upload.php">Zurück</a>
</p>
Und die PHP-Dateien haben auch alle die Rechte 777.

Geändert von PHP-Freak (31.07.2011 um 23:12 Uhr)
Mit Zitat antworten
  #8 (permalink)  
Alt 01.08.2011, 07:33
Benutzerbild von PHP-Freak
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 15.04.2009
Beiträge: 182
PHP-Freak befindet sich auf einem aufstrebenden Ast
Standard

So ich denke ich hab was rausgefunden, es schein so wie würde er garnichts löschen. Denn ich habe etwas rumgespielt und wenn ich bitte wählen absende,
sagt er mir auch, Bitte wählen wurde gelöscht.
Wenn ich nun z.B. unlink so einsetze:
PHP-Code:
unlink('upload/bild1.jpg'); 
wird das bild auch gelöscht, also denke ich es stimmt was mit unlink nicht, wenn man es so schreibt:
PHP-Code:
unlink('upload/' .$objekt); 
So gehts aber auch nicht
PHP-Code:
unlink("upload/$objekt"); 
Hat noch jemand eine Idee wie es gehn sollte?
Mit Zitat antworten
  #9 (permalink)  
Alt 01.08.2011, 09:18
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 13.07.2006
Beiträge: 414
Maxefix ist ein sehr geschätzer MenschMaxefix ist ein sehr geschätzer MenschMaxefix ist ein sehr geschätzer Mensch
Standard

Dann liegt natürlich der Verdacht nahe, dass in $objekt nicht der richtige Wert steht..

Gib die Variable doch einfach mal probehalber aus (var_dump($objekt)).

Gruß,
Max
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 01.08.2011, 09:23
Benutzerbild von mantiz
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 25.02.2007
Beiträge: 2.843
mantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz sein
Standard

Steht denn in $objekt das richtige drin?

Wenn es hardcodet funktioniert, aber variable nicht, dann muss die Variable falsch sein.

Mach' mal 'nen var_dump($_POST) oder var_dump($objekt) vor das unlink.

// Edit: Zu lahm ...
Mit Zitat antworten
Sponsored Links
Antwort


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 aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PHP Image Upload & Resize Problem da.executor Serveradministration und serverseitige Scripte 5 19.08.2009 14:19
kleines php proplem georgzed Serveradministration und serverseitige Scripte 3 18.06.2009 20:49
Kleines C Problem beim String einlesen kampfgnom Serveradministration und serverseitige Scripte 6 29.11.2008 11:52
PHP: Problem mit fwrite() und/oder readfile() domsson Serveradministration und serverseitige Scripte 19 26.04.2008 00:16
problem mit auslesen der radiobuttons per php nevermind Serveradministration und serverseitige Scripte 16 17.06.2006 17:36


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:33 Uhr.