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 22-07-2008, 22:34
litterauspirna
 Registrierter Benutzer
Links : Onlinestatus : litterauspirna ist offline
Registriert seit: Nov 2007
Beiträge: 364
litterauspirna ist zur Zeit noch ein unbeschriebenes Blatt
Standard unlink funktioniert nicht mehr

Hallo PHPler!

Ich programmiere mir grad ein Script ehrenamtlich für ein Tierheim und habe nun ein Problem was ich nicht verstehe!

Ich will das ein Bild getauscht werden kann,mache in der DB somit ein Update wo ein Leerstring rein geschrieben und will eben dieses Bild aus dem Verzeichnis löschen.

Ich bekomme diese Fehlermeldungen!

Warning: unlink(pics/) [function.unlink]: Permission denied in C:\xampp\htdocs\tierheim\galerie\edit_tier.php on line 113

Warning: unlink(pics/bild_) [function.unlink]: No such file or directory in C:\xampp\htdocs\tierheim\galerie\edit_tier.php on line 114

Warning: unlink(pics/thumb_) [function.unlink]: No such file or directory in C:\xampp\htdocs\tierheim\galerie\edit_tier.php on line 115

Das seltsame in der einen sgt er ich hätte keine Rechte und die anderen beiden fehlt das bild.

Hier mal der Code mit dem wesentlichen!

PHP-Code:
//Hier lese ich das bild und die id aus
$sqlbefehl ="
            Select
                id_tier,
                cat_img
            From
                tiere
            Where
                id_tier = "
.intval($_GET['id_tier'])."
            "
;
$erg_tier mysql_query($sqlbefehl)or die(mysql_error().$sqlbefehl);
$tier mysql_fetch_assoc($erg_tier);
$bild $tier['cat_img'];//das ist die Bildvariable

//hier lösche ich den bildnamen aus der DB und will aus dem Verzeichnis löschen
if(isset($_GET['delete_pic']))
{
    if(
get_magic_quotes_gpc())
    {
        
$_GET['leer'] = stripslashes($_GET['leer']);
    }
    if(isset(
$_GET['pic_dell'])!=1)
    {
        echo 
msgBox("Vor dem ändern bitte Haken setzen!<br>".$link);
        exit();
    }
        
unlink("pics/".$bild);
        
unlink("pics/bild_".$bild);
        
unlink("pics/thumb_".$bild);
        
$sqlbefehl ="
                    Update
                        tiere
                    Set
                        cat_img='"
.mysql_real_escape_string($_GET['leer'])."'
                    Where
                        id_tier = "
.intval($_GET['tier_id'])."
                    "
;
        
$loeschen_pic mysql_query($sqlbefehl)or die(mysql_error().$sqlbefehl);
        
header("Location: edit_tier.php?id_tier=".intval($_GET['tier_id'])."");

Was ich nicht verstehe wieso die Variable fehlt,ich habe Testausgaben machen lassen und die war da,weiter unten im Script zeigt es das Bild aus Thumbnail an!

Ich habe xampp zum testen auf einem Windows System!

error_reporting ist voll aufgedreht in einer eingebundenen config!

Ich habe es auch mit absoluten Pfaden probiert es ging in keiner Variante!

Danke für eure Hilfe mfg der litter

Geändert von litterauspirna (22-07-2008 um 22:37 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 22-07-2008, 23:32
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:
Das seltsame in der einen sgt er ich hätte keine Rechte und die anderen beiden fehlt das bild.
Hast du das überprüft?

Zitat:
Was ich nicht verstehe wieso die Variable fehlt,ich habe Testausgaben machen lassen und die war da,weiter unten im Script zeigt es das Bild aus Thumbnail an!
Warum findet man diese Testausgaben nicht im Script???

Zitat:
error_reporting ist voll aufgedreht in einer eingebundenen config!
und welche Hinweise werden geschmissen?
__________________
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
  #3 (permalink)  
Alt 23-07-2008, 02:13
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard Re: unlink funktioniert nicht mehr

Zitat:
Original geschrieben von litterauspirna
Was ich nicht verstehe wieso die Variable fehlt,ich habe Testausgaben machen lassen und die war da,weiter unten im Script zeigt es das Bild aus Thumbnail an!
Das da ein Bild angezeigt wird, kann höchstens am Browsercache liegen. Denn wenn es heißt "No such file or directory", dann ist da wirklich keine Datei.

Dein Fehler ist, dass du ein Bild löschst, den entsprechenden Datensatz aus der DB auch und dann aber so weiterleitest, dass die selbe Routine noch einmal ausgeführt wird. Nur ist da jetzt kein Dateiname mehr in der DB, $bild ist ein leerer String. Hätte es keine Fehlermeldung gegeben, wärst du in einer Weiterleitungsschleife gelandet.
Mit Zitat antworten
  #4 (permalink)  
Alt 23-07-2008, 15:49
litterauspirna
 Registrierter Benutzer
Links : Onlinestatus : litterauspirna ist offline
Registriert seit: Nov 2007
Beiträge: 364
litterauspirna ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo!

Ja ich habe das Problem gelöst. Ich habe den Bildnamen in einem hidden Feld mit rein geschrieben.

Mein Code sieht jetzt so aus!

PHP-Code:
if(isset($_GET['delete_pic']))
{
    if(
get_magic_quotes_gpc())
    {
        
$_GET['leer'] = stripslashes($_GET['leer']);
    }
    if(isset(
$_GET['pic_dell'])!=1)
    {
        echo 
msgBox("Vor dem ändern bitte Haken setzen!<br>".$link);
        exit();
    }
        
$sqlbefehl ="
                    Update
                        tiere
                    Set
                        cat_img='"
.mysql_real_escape_string($_GET['leer'])."'
                    Where
                        id_tier = "
.intval($_GET['tier_id'])."
                    "
;
        
$loeschen_pic mysql_query($sqlbefehl)or die(mysql_error().$sqlbefehl);
                
unlink('pics/'.$_GET['img_cat']);
                
unlink('pics/bild_'.$_GET['img_cat']);
                
unlink('pics/thumb_'.$_GET['img_cat']);
        
header("Location: edit_tier.php?id_tier=".intval($_GET['tier_id'])."");

@Tobiaz
Sorry mein blöder Fehler,habe die wieder raus gelöscht die Testausgaben! Beim nächsten mal lasse ich sie!
Mit Zitat antworten
  #5 (permalink)  
Alt 23-07-2008, 16:02
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:
Ja ich habe das Problem gelöst. Ich habe den Bildnamen in einem hidden Feld mit rein geschrieben.
Gelöst wohl kaum, umgangen beschreibt das eher. Hiddenfields können manipuliert werden, was zu einem inkonsistenten Datenstand führt...
__________________
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
  #6 (permalink)  
Alt 24-07-2008, 14:51
litterauspirna
 Registrierter Benutzer
Links : Onlinestatus : litterauspirna ist offline
Registriert seit: Nov 2007
Beiträge: 364
litterauspirna ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Wenn ich die hidden fields aber mit einem regex prüfe stelle ich doch sicher das nur das drin steht was ich erwarte und will und somit mache ich eine Manipulation ja unwirksam oder irre ich da?
Mit Zitat antworten
  #7 (permalink)  
Alt 24-07-2008, 16: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

wenn du mit der regex so sicher prüfst, dass genau der dateiname drin steht, den du auch erwartest, dann bauchst du kein hidden field mehr und somit auch keine regex-prüfung...
__________________
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
  #8 (permalink)  
Alt 24-07-2008, 18:33
litterauspirna
 Registrierter Benutzer
Links : Onlinestatus : litterauspirna ist offline
Registriert seit: Nov 2007
Beiträge: 364
litterauspirna ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Aber was mir unerklärlich ist,wo im ersten Code der Fehler ist! Wenn ich mir zwischen den if Zweigen die den Inhalt für $bild ausgeben lasse klappt es,aber wenn es darum geht es zu löschen dann fehlt das im unlink und das verstehe ich eben nicht,darum habe ich das mit dem hidden field gemacht!
Mit Zitat antworten
  #9 (permalink)  
Alt 24-07-2008, 18:36
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:
Wenn ich mir zwischen den if Zweigen die den Inhalt für $bild ausgeben lasse klappt es,aber wenn es darum geht es zu löschen dann fehlt das im unlink und das verstehe ich eben nicht
Tja, was soll ich dazu sagen.

Entweder du gehst der Sache auf die Spur und findest heraus, wie es wirklich ist, oder du lässt es bleiben...

Erwarte nicht immer, dass wir dir deine Programme schreiben...
__________________
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
  #10 (permalink)  
Alt 24-07-2008, 19:24
litterauspirna
 Registrierter Benutzer
Links : Onlinestatus : litterauspirna ist offline
Registriert seit: Nov 2007
Beiträge: 364
litterauspirna ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@Tobiaz ich habe nie erwartet das mir irgendjemand ein Programm schreibt,oder zeige mir bitte ein Thema wo ich dies schrieb.

Und das tat ich auch hier nicht,ich fragte wo der Fehler liegen könnte und nicht kannst du mir das bitte programmieren das es funktioniert. Kritik ist ja OK aber lasse solche Unterstellungen,das ist ein Hilfe Forum und ich habe nach Hilfe gefragt wo der Fehler liegen könnte und habe auch Testausgaben wie ich schrieb. Ich kann mir nur nicht erklären warum es ausgerechnet bei dem unlink nicht als nicht vorhanden gezeigt wird!

Wo bitte steht da schreibt mir das,so das es funktioniert?
Mit Zitat antworten
  #11 (permalink)  
Alt 24-07-2008, 21:04
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Ich habe dir doch gesagt, was dein Fehler im ersten Code war.

Du löschst das Bild aus der DB und dem Dateisystem. Aber dann sagst du dem Browser per Location-Header, dass er einen neuen Request senden soll. Dieser zweite Request läßt dein Script noch einmal laufen, sogar mit dem selben Parameter id_tier. Aber zu dieser ID gibt es jetzt kein Bild mehr.

Wenn du dein error_reporting aufdrehst, wirst du es sehen.

Die Testausgabe von $bild enthielt übrigens einen Dateinamen, weil diese Ausgabe während des ersten Requests gemacht wurde. Der zweite Request findet nicht statt, denn header() funktioniert nicht mehr, sobald etwas ausgegeben wurde.


Jetzt alles klar?
Mit Zitat antworten
  #12 (permalink)  
Alt 24-07-2008, 21:36
litterauspirna
 Registrierter Benutzer
Links : Onlinestatus : litterauspirna ist offline
Registriert seit: Nov 2007
Beiträge: 364
litterauspirna ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Das heist ich darf den header("Location") nicht ausführen? Oder den header anderen wert geben?

Sorry stehe ein wenig auf dem Schlauch.
Mit Zitat antworten
  #13 (permalink)  
Alt 24-07-2008, 21:38
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Auf welche Seite willst du denn weiterleiten? Die URL steht ja da, aber was soll auf der Seite zu sehen sein?
Mit Zitat antworten
  #14 (permalink)  
Alt 24-07-2008, 22:05
litterauspirna
 Registrierter Benutzer
Links : Onlinestatus : litterauspirna ist offline
Registriert seit: Nov 2007
Beiträge: 364
litterauspirna ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Immer noch der gleiche Datensatz nur ohne Kategorie Bild ebend.

Ich mache für das Tierheim Pirna eine ehrenamtliche Seite und lege da Tiere an mit informationen und einem Hauptbild. Und falls die ein anderes Hauptbild wollen sollen die das aktuelle löschen können und ein neues wählen.

Also soll es auf die selbe Datei weiterleiten das man den Datensatz immer noch sieht!
Mit Zitat antworten
  #15 (permalink)  
Alt 24-07-2008, 22:42
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Okay, du kannst den selben Datensatz wieder anzeigen. Eben ohne Bild.
Das heißt, bei der Anzeige von Datensätzen gibt es prinzipiell zwei Fälle: mit und ohne Bild.

Dein Codeabschnitt "Hier lese ich das bild und die id aus" geht davon aus, dass immer ein Bild da ist. Das musst du ändern. Nun ist die Frage, wie man erkennen kann, ob ein Bild im Datensatz ist. Klar, an cat_img. Aber was steht da drin, wenn es kein Bild ist?
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 21:55 Uhr.