php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Riesen Problem


 
Laslayer
10-06-2003, 11:03 
 
Hallo,

ich habe folgendes Problem. Wenn ich in meiner Eingabemaske ein Bild auf den Server hochladen möchte steigt mir das System mit der Fehlermeldung:
Bilder müssen vom Typ gif oder jpg sein aus.

Hier das Verkaufsskript (Auszug):



$title = $sessionVars["SELL_title"];
$description = $sessionVars["SELL_description"];
$pict_url = $sessionVars["SELL_pict_url_original"];
$atype = $sessionVars["SELL_atype"];
$iquantity = $sessionVars["SELL_iquantity"];
$minimum_bid = $sessionVars["SELL_minimum_bid"];
$with_reserve = ($sessionVars["SELL_with_reserve"])?"ja":"nein";
$payment = $sessionVars["SELL_payment"];
$duration = $sessionVars["SELL_duration"];
$country = $sessionVars["SELL_country"];
$location_zip = $sessionVars["SELL_location_zip"];
$shipping = $sessionVars["SELL_shipping"];
$international = ($sessionVars["SELL_international"])?"ja":"nein";
$category1 = $sessionVars["SELL_category"];
$imgtype = $sessionVars["SELL_imgtype"];
$zustand = $sessionVars["SELL_zustand"];
$fett = $sessionVars["SELL_fett"];
$marker = $sessionVars["SELL_marker"];
$topkat = $sessionVars["SELL_topkat"];
$bild2 = $sessionVars["SELL_bild2"];
$bild3 = $sessionVars["SELL_bild3"];
$artnr = $sessionVars["SELL_artnr"];
$fett_preis = $sessionVars["SELL_fettpreis"];
$marker_preis = $sessionVars["SELL_markerpreis"];
$topkat_preis = $sessionVars["SELL_topkatpreis"];
$bild2_preis = $sessionVars["SELL_bild2preis"];
$bild3_preis = $sessionVars["SELL_bild3preis"];
$buy_now = $sessionVars["SELL_buy_now"];
}
else
{
// auction type
reset($auction_types);
list($atype,) = each($auction_types);

// quantity of items
$iquantity = 1;


// country
// BM 28.2.
//reset($countries);
//list($country,) = each($countries);


// shipping
$shipping = 1;

// image type
$imgtype = 1;

$with_reserve = "nein";
}
}



// Oder Aktion = 'first' / Erstaufruf++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
elseif ($action=='first')
{
unset($auction_id);
$ERR = "ERR_".CheckSellData();

// if no other errors - handle upload here
if (!$$ERR)
{
unset($file_uploaded);

// Auktions-ID generieren
$auction_id = generate_id();

if ( $userfile <> "none" )
{
$inf = GetImageSize ( $userfile );
if ($userfile2 <> "none")
$inf2 = GetImageSize ( $userfile2 );
if ($userfile3 <> "none")
$inf3 = GetImageSize ( $userfile3 );

$er = false;
// make a check
if ($inf)
{
$inf[2] = intval($inf[2]); // check for uploaded file type
if ($userfile2 <> "none")
$inf2[2] = intval($inf2[2]);
if ($userfile3 <> "none")
$inf3[2] = intval($inf3[2]);

if ( ($inf[2]!=1) && ($inf[2]!=2) )
{
$er = true;
$ERR = "ERR_602";
}
else
{
// check for file size
if ( intval($userfile_size)>$MAX_UPLOAD_SIZE )
{
$er = true;
$ERR = "ERR_603";
}
}

if ($userfile2 <> "none")
{
if ( ($inf2[2]!=1) && ($inf2[2]!=2) )
{
$er = true;
$ERR = "ERR_602_2";
}
else
{
// check for file size
if ( intval($userfile2_size)>$MAX_UPLOAD_SIZE )
{
$er = true;
$ERR = "ERR_603_2";
}
}
}

if ($userfile3 <> "none")
{
if ( ($inf2[2]!=1) && ($inf2[2]!=2) )
{
$er = true;
$ERR = "ERR_602_3";
}
else
{
// check for file size
if ( intval($userfile3_size)>$MAX_UPLOAD_SIZE )
{
$er = true;
$ERR = "ERR_603_3";
}
}
}

}
else
{
$ERR = "ERR_602";
$er = true;
}

if (!$er)
{
// Bild 1 wirklich speichern
$ext = ($inf[2]==1)?".gif":".jpg";
$fname = $image_upload_path.$auction_id.$ext;
if (file_exists($fname))
unlink ($fname);
copy ($userfile, $fname);
$uploaded_filename = $auction_id.$ext;
$file_uploaded = true;

// Bild 2 wirklich speichern
if ($userfile2 <> "none")
{
$ext = ($inf[2]==1)?".gif":".jpg";
$fname = $image_upload_path.$auction_id."_2".$ext;

if ( file_exists($fname) )
unlink ($fname);
copy ( $userfile2, $fname );
$uploaded_filename2 = $auction_id."_2".$ext;
$file_uploaded = true;
}

// Bild 3 wirklich speichern
if ($userfile3 <> "none")
{
$ext = ($inf[2]==1)?".gif":".jpg";
$fname = $image_upload_path.$auction_id."_3".$ext;

if ( file_exists($fname) )
unlink ($fname);
copy ( $userfile3, $fname );
$uploaded_filename3 = $auction_id."_3".$ext;
$file_uploaded = true;
}
}
else
{
// Fehler!!
unset($file_uploaded);
$userfile2 = "none";
$userfile3 = "none";
}

}
else
{
unset($file_uploaded);
$userfile2 = "none";
$userfile3 = "none";
}


}
}

/*
Erstaufruf oder Fehler in den Daten -> Eingabemaske nochmal anzeigen
*/
if ( empty($action) || (($action=='first')&&($$ERR)) )
{
include "header.php";

$titleH = htmlspecialchars($title);
$descriptionH = htmlspecialchars($description);
$pict_urlH = htmlspecialchars($pict_url);



Brauche dringend Hilfe da ich sonst nicht weiterkomme.

Danke schon im vorraus.

 
Wurzel
10-06-2003, 11:14 
 
und wo ist nun genau das problem?
willst du auch andere bildformate zulassen?
lassen sich GIFs & JPGs denn hochladen?

 
Laslayer
10-06-2003, 11:54 
 
Nein, ich möchte nur gif und jpg wie definiert zulassen.

Anbei mal der Auszug aus der config.inc.php:



$image_upload_path = "uploaded/";
$thumb_upload_path = "thumbs/";


// ... und hier das Uploadverzeichnis mit Endslash.
$uploaded_path = "uploaded/";
$thumb_path = "thumbs/";



// Maximale Bildgröße für den Bilder-Upload (in Byte)

$MAX_UPLOAD_SIZE = 275000;



Danke

 
Laslayer
10-06-2003, 12:02 
 
vieleicht nochmal was zur Bildschirmausgabe:

Warning: getimagesize() [function.getimagesize]: open_basedir restriction in effect. File(/tmp/phpqLxDUf) is not within the allowed path(s): (/home/www/htdocs/p-2c.de/.) in /home/www/htdocs/p-2c.de/sell.php on line 172

Warning: getimagesize(/tmp/phpqLxDUf) [function.getimagesize]: failed to create stream: Operation not permitted in /home/www/htdocs/p-2c.de/sell.php on line 172

Dies ist die Fehlermeldung die ich beim hochladen bekomme.

 
Wurzel
10-06-2003, 12:29 
 
na bitte, geht doch :D

so, die warnings zeigen dir, dass du mit getimagesize() keinen zugriff
auf das temporäre verzeichnis des servers hast (php-manual=>safe_mode). wenn sich das nicht
ändern lässt, musst du den upload anders gestalten.

vielleicht hilft der schnell-schnipsel weiter


// file-field mit name "bild"

if(preg_match("/image\/(gif|jpeg|x-jpeg|pjpeg|x-png|png)/",$bild_type))
{
switch ($bild_type) // endung zuweisen
{
case "jpeg":
$ext = "jpg";
break;
case "pjpeg":
$ext = "jpg";
break;
case "x-jpeg":
$ext = "jpg";
break;
case "gif":
$ext = "gif";
break;
case "x-png":
$ext = "png";
break;
case "png":
$ext = "png";
break;
}

$bild_name = "abs_pfad_zum_bildverz/neuername.".$ext; // chmod 777 nicht vergessen
move_uploaded_file($bild,$bild_name);
}


musst ihn ein wenig anpassen und max_filesize einfügen.

 
griddie
18-12-2003, 13:00 
 
Hallo,

ich hoffe mir kann hier geholfen werden :-)
Habe das gleiche Problem wie der Gründer dieses Toppics.

Das Problem zeigt sich wie folgt:

Eingabemaske: Es stehen 3 Filefelder zur Verfügung.

Wähle ich keine Datei, so bekomme ich die Fehlermeldung:
Bild1: Bilder müssen vom Typ GIF oder JPG sein!

Wähle ich nur 1-ne Datei in Feld 1, so bekomme ich die Fehlermeldung:
Bild3: Bilder müssen vom Typ GIF oder JPG sein!

Wähle ich für alle 3 Felder eine Datei, so erfolgt der Upload einwandfrei.

Ich werd noch bekloppt an dem Script.

Im Vorraus besten Dank
Griddie

 
muecke0815
18-12-2003, 13:08 
 
@griddie
na dann prüfe doch vorher ob deine bilder vorhanden (upgeloadet) sind, bevor du sie mit getimagessize oder anderen funktionen verwendest

 
griddie
18-12-2003, 13:11 
 
@muecke0815: Danke für die schnelle Antwort :-) könntest Du mir dabei behilflich sein ?
Bin zwar ein wenig bewandert in Sachen PHP, aber Dateiuploadfunktionen sind noch nicht so mein Ding fürchte ich. Würde Dir das komplette Script hier posten wenn Du die Änderung kurz machen könntest.

Gruss
Griddie

 
Wurzel
18-12-2003, 13:37 
 
ich glaub nicht, dass dir das mal eben einer macht.

nützliches zum file-upload:
http://de3.php.net/manual/de/features.file-upload.php#features.file-upload.post-method

die prüfung, ob eine datei übertragen wurde, läuft zB so:
http://de3.php.net/manual/de/function.is-uploaded-file.php

statt copy() solltest du move_uploaded_file() nehmen.

 
TobiaZ
18-12-2003, 13:38 
 
business-scripts.de :D

 
griddie
18-12-2003, 16:01 
 
Ich danke erstmal denen die versucht haben mich bei meinem Problem weiterzubringen.
Die Lösung ist nun endlich gefunden und das Script läuft einwandfrei :-)

Lösung:

if ( $userfile <> "none" ) funktioniert nicht in PHP Version 4.3.1

in dieser PHP Version ist es notwendig die Zeile wie folgt zu ändern:

if ( $userfile <> "" ) *Man sehe, das "none" wird nicht ausgewertet.*

Man suche einfach mit "Textpad" in der Datei "sell.php" nach ("none") und ersetze dies durch nichts :-)

In anderen Versionen von PHP muss man dies unter Umständen nicht ändern. Habe es nicht unter anderen Versionen getestet, da hier die Fehlersuche endlich ein Ende hatte *bg*

!!!Wichtig!!!
Nur das none entfernen. Die Anführungszeichen MÜSSEN erhalten bleiben. Da sonst garnix mehr geht hihi...

Gruss
Griddie

 
TobiaZ
18-12-2003, 20:35 
 
kann ja kaum glauben, dass es none (dazu noch als String) in PHP gibt oder gegebenhat. kann das jemand bestätigen?

Statt

($userfile <> "" )

kannst du auch

($userfile != "" )

oder noch besser

(!empty($userfile))

benutzen.

 
Wurzel
18-12-2003, 20:53 
 
Original geschrieben von TobiaZ
kann ja kaum glauben, dass es none (dazu noch als String) in PHP gibt oder gegebenhat. kann das jemand bestätigen? irgendwas in der art hatte ich mal (php4.1.1, register-globals on) ... war doof, wenn man auf empty() geprüft hat.

 
TobiaZ
18-12-2003, 21:42 
 
also was sich die lieben zendler bei sowas denken... naja, geht nichts über ordentliche saubere programmierung.

 
AtomicHX3
19-12-2003, 00:28 
 
if ($userfile3 <> "none")

Was bedeutet denn "<>" ?

Also auf den ersten Blick erscheint es mir wie ein synonym zu "!=" ("kleiner" oder "größer" also "ungleich")?

Aber ich bin mir nicht sicher.

 
griddie
19-12-2003, 10:35 
 
Was bedeutet denn "<>" ?

"<>" bedeutet nichts anderes als das was Du schon vermutet hast :-)
"ungleich" also.

eine Liste der Operatoren in PHP findet man unter:
http://www.php-mysql-programmierung.de/language.operators.html

Gruss
Griddie

 
TobiaZ
19-12-2003, 21:24 
 
!= ungleich
<> kleiner/größer

ist aber synonym :D

 
griddie
21-12-2003, 12:08 
 
:-)

 
king-kahl
17-01-2004, 20:32 
 
Vielen Dank das was Ihr geschrieben habt, hat mir auch geholfen.
Nun aber meine Frage, da ich das gleiche Script benutze hat gemand das Teil schon so weit modiviziert das man auch mehere Artikel gleichzeitig einstellen kann. Also ich meine 10 Bälle z.B.. Dann muss ich mich nicht dran machen und das selber schreiben.

Danke

 
griddie
18-01-2004, 15:59 
 
Soweit sind wir noch nicht, wir haben das Script jedoch soweit modifiziert das fast alle Einstellungen und das Design komplett über einen Administratorbereich durchgeführt werden können. Auch die Installation wird duch ein Script durchgeführt, womit diese innerhalb von 5 Minuten durchgeführt ist.

Nähere Informationen hierzu können unter:
http://www.business-scripts.de

eingesehen werden.

 
GlobalPlayer
04-03-2004, 00:38 
 
Warning: Unable to access none in /var/www/web19/html/auction/sell.php on line 209

Warning: getimagesize: Unable to open 'none' for reading. in /var/www/web19/html/auction/sell.php on line 209

Warning: Unable to access none in /var/www/web19/html/auction/sell.php on line 211

Warning: getimagesize: Unable to open 'none' for reading. in /var/www/web19/html/auction/sell.php on line 211

ursprüngliche meldungen mit none

none weggelöscht = gleiche meldungen komischerweise


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:51 Uhr.