php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 11.02.2006, 11:09  
Neuer Benutzer
 
Registriert seit: 10.01.2006
Beiträge: 12
TomH27
Standard mysql / php Bilder Upload

Hallo zusammen.
Ich hab da ein kniffliges Problem und quäl mich nun schon zwei Tage.

Folgender Sachverhalt.
Formulardaten werden per PHP an eine mysql-Datenbank übergeben und ein angehängtes Bild wird upgeloadet..
Die alte mysql Version war 3.x. Nun sind wir gezwungenermassen auf 4.0.x umgestiegen.

Die Formulardaten werden immer noch übertragen aber das Bild wird nicht mehr in das Verzeichnis geladen. In der Datenbank wird hinterlegt dass ein Bild mit der Bezeichnung####.jpg vorhanden ist aber im vorgesehenen Verzeichnis befindet es sich nicht. Keine Fehlermeldung, nichts.
In der datenbank konnte ich keinen fehler finden. Zugriffsrechte passen.

Hat jemand eine Idee?

Hier die datei mit der das Bild upgeloadet wird:

#########################
<?
/*
functions:

constructor upload($name) - name als string nicht variable
function set_rights($width,$height,$maxsize=0,$mustfit=fals e)
function make_upload($path)
function script_alert()

--------------------------------------------------------------------*/

// class upload
class upload
{
var $name;
var $source;
var $source_size;
var $filename;
var $fileext;
var $width;
var $height;
var $size;
var $alert = "";
var $mustfit = false;

// constructor upload
# PARAMS: $name - name als string nicht variable

function upload() //$name
{
$this->name = ereg_replace( "[\r\t\n\v ]", "", $_FILES["upl_document"]["name"] ); //trimming bullshit
$this->source = $_FILES["upl_document"]["tmp_name"];
$this->source_size = $_FILES["upl_document"]["size"];
$this->source_sizekb = round( $_FILES["upl_document"]["size"]/1024 );
$this->fileext = substr( $this->name, strrpos( $this->name, "." ), strlen( $this->name ) );

// Workaround for Movie-Files .mov
if ( $this->fileext == ".mo" ) $this->fileext = ".mov";

// Generate new Hash, used as Filename (Old Filename is saved in special Column)
$this->hash = substr( uniqid( rand() ), 0, 10 );

// Filename including real Extension and with running Zere (Original Uploaded File)
$this->filenameWOzero = $this->hash.$this->fileext;
$this->filename = "0".$this->filenameWOzero;

list($width,$height) = GetImageSize($this->source);
$this->width2 = $width;
$this->height2 = $height;
}

// function set_rights
# PARAMS: $width,$height,$maxsize=0,$mustfit=false

function set_rights($width,$height,$maxsize=0,$mustfit=fals e)
{
$this->width = $width;
$this->height = $height;
$this->size = $maxsize;
$this->mustfit = $mustfit;
}

// function make_upload
# PARAMS: $path

function make_upload($path) {
// Check der Dateigröße
if (($this->source_size>$this->size) && $this->size>0) {
$kb = number_format(strval($this->size/1024));
$this->alert = "Das Dateivolumen überschreitet ".$kb." KB. Bitte verkleinern Sie Ihr Foto.";
}
// Check der Bildgröße
if ( ($this->width>0 && $this->height>0) && $this->source && in_array($this->fileext,array(".gif",".png",".jpg",".jpeg")) ) {
list($width,$height) = GetImageSize($this->source);
$kb = number_format(strval($this->size/1024));
if ($width>$this->width || $height>$this->height) {
$this->alert = "Die Dateigrösse überschreitet ".$this->width." mal ".$this->height." Pixel. Bitte verkleineren Sie Ihr Foto. ";
}
}
// Check Datei selbst
if (!$this->source_size) {$this->alert = "";}

// Wenn alles OK
if (!$this->alert && $this->source_size) {
if (copy($this->source,$path."/".$this->filename)) {return $this->filename;}
} else {return false;}
}

// function script_alert
function script_alert() {
if ($this->alert) {echo "<script language=\"Javascript\">alert('".$this->alert."')</script>";}
}

}
?>
##########################
TomH27 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 11.02.2006, 15:59  
Neuer Benutzer
 
Registriert seit: 10.01.2006
Beiträge: 12
TomH27
Standard

Hat keiner eine Idee?
TomH27 ist offline  
Alt 11.02.2006, 16:11  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von TomH27
Hat keiner eine Idee?
Doch:

Richtig debuggen
1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
2. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
3. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
4. Schritt 3 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
5. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
6. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
7. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

Die Ausgaben per echo kann man sich ersparen, in dem man einen Debugger benutzt, was eigentlich selbstverständlich sein sollte.


Ein Hinweis: So einen unformatiert geposteten Quellcode sieht sich kaum jemand an. Und wie du die Klasse benutzt, verheimlichst du uns.

Gruß
phpfan
 
Alt 11.02.2006, 16:43  
Neuer Benutzer
 
Registriert seit: 10.01.2006
Beiträge: 12
TomH27
Standard

Wie sollte ich das Script denn formatieren?

So benutze ich die Klasse

##########
$upload = new upload();
$upload -> set_rights( 10000, 10000, 40960000 );
$upload -> make_upload( 'pix/' );

// If Upload successfull prepare Save-Array
if ( $upload->make_upload( 'pix/' ) )
{
// Conditional Variables
$pic = $upload->hash.".jpg";

/* Defining Source */
$source = 'pix/member4'.$upload->filename;
/* Defining Source of BMP */
$source2 = 'pix/member4'.$upload->hash.'.bmp';
/* Workaround Upld->BMP */
exec( '/usr/bin/convert -flatten +profile "*" '.$source.' '.$source2 );
/* CMS Thumb */
exec( '/usr/bin/convert -geometry 85 +profile "*" -contrast -quality 85 '.$source2.' pix/thumb/'.$pic );
/* New Pic */
exec( '/usr/bin/convert -geometry 200 +profile "*" -contrast -quality 85 '.$source2.' pix/'.$pic );
// Unlink interim BMP
@unlink( $source2 );
// Unlink Original
@unlink( $source );
}
}
TomH27 ist offline  
Alt 11.02.2006, 16:58  
Erfahrener Benutzer
 
Registriert seit: 02.04.2008
Beiträge: 2.603
Corvin befindet sich auf einem aufstrebenden Ast
Standard

Code einrücken:
http://tut.php-q.net/einruecken.html

Und gewöhn dir bitte an, die [php]-Tags zu benutzen.
Corvin ist offline  
Alt 11.02.2006, 19:10  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Du wiederholst Dich
SCNR
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 11.02.2006, 20:02  
Erfahrener Benutzer
 
Registriert seit: 02.04.2008
Beiträge: 2.603
Corvin befindet sich auf einem aufstrebenden Ast
Standard

Klick mal auf "Zitat", dann siehst du, dass das nicht an mir liegt, sondern ein Bug der Forensoftware sein muss.
Corvin ist offline  
Alt 11.02.2006, 20:07  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Zitat:
Zitat von Corvin Gröning
Klick mal auf "Zitat", dann siehst du, dass das nicht an mir liegt, sondern ein Bug der Forensoftware sein muss.
Ja klar. ^^
Das würde ich jetzt auch behaupten.
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 11.02.2006, 22:50  
Erfahrener Benutzer
 
Registriert seit: 02.04.2008
Beiträge: 2.603
Corvin befindet sich auf einem aufstrebenden Ast
Standard

Hast du vielleicht zu viel getrunken?
Na.. egal, das gehört hier nicht hin. :X
Corvin ist offline  
Alt 11.02.2006, 23:30  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Also mein Zitat hat eben noch einwandfrei funktioniert. Darum hab ich das auch gleich mal in dem Posting demonstriert.
Mit Edit hatte ich heute auch noch keine Probleme hier im Forum.

Und die beiden Postings hab ich ganz ohne Konsum irgendwelche bewusstseinsverändernder Mittel geschrieben. Auch ohne Vollsuff kann ich darauf verzichten, toternst durch's Leben zu laufen.

Es war ja nicht sofort ersichtlich, dass ausgerechnet dieses eine Posting da die Forensoftware sprengt.
Denn das Posting ist in der Tat etwas seltsam.
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Bilder Upload PHP Tipps 2006 6 24.03.2006 15:19
Probelem bei meinem Upload Script für Bilder wiegia086 PHP Tipps 2006 3 17.03.2006 09:14
file upload & bilder resize PHP Tipps 2006 3 15.02.2006 18:56
[Erledigt] Bildergalerie Gallery 1.5-pl1 + Bilder upload Probleme !!!! PHP Tipps 2005-2 6 01.09.2005 23:22
[Erledigt] Mysql - PHP - Bilder upload Datenbanken 5 24.08.2005 00:04
Bilder Upload in MySQL...geht das? Aris Sung PHP-Fortgeschrittene 7 23.08.2005 23:18
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
bilder in mysql Tschuu PHP Tipps 2005-2 2 19.07.2005 14:52
[Erledigt] Bilder Upload für user in eigenen Ordner PHP-Fortgeschrittene 7 08.07.2005 10:38
Bilder Upload funktioniert nicht auf dem Webserver... 18inch PHP Tipps 2005-2 32 28.06.2005 19:14
Maximale grösse beim Upload der Bilder... PHP Tipps 2005-2 7 12.06.2005 17:45
Bilder in MySQL Datenbanken 5 03.04.2005 04:53
Bilder upload (Massen) PHP Tipps 2005 11 06.01.2005 14:14
Bilder - Upload - Email - MySQL PHP Tipps 2004 10 20.10.2004 15:48

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql bilderupload, formulardaten und bilder mysql php, php upload \set_rights\, php bilder upload und thumbpic

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




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.