SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Websites optimieren für Google & Co.

Websites optimieren für Google & Co. zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten
Hilfe Community Kalender Heutige Beiträge Suchen

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 16.09.2002, 17:32:15
Silencer Silencer ist offline
Anfänger
 
Registriert seit: Sep 2002
Beiträge: 118
was ist hier drin falsch??

Kann mir jemand helfen?
was ist am folgenden code falsch?
es ist ein upload script das nur für bilddateien mit der endung bmp jpg oder gif ist und zusätzlich einen link ausgibt wie man das bild zb in einem newssystem anzeigt

PHP-Code:
<?php
 $file_dir
="uploads/";

 
$url_prefix="URL zur Domain";
 
$url_prefix2="2te url als relativer link";
 if(
$userfile) {
  
$userfile_name=basename($userfile_name);
if(!
stristr($userfile_name".gif")||!stristr($userfile_name".jpg")||!stristr($userfile_name".bmp") ) { 
    die(
"Sorry es sind nur BMP, JPG oder GIF erlaubt.");
  }
  if(
copy($userfile$file_dir.$userfile_name)) {
    
unlink($userfile);
    echo 
"Image vollständig hochgeladen.<br>";
    echo 
"Nimm als Url <h3>$url_prefix$userfile_name</h3>";
    echo 
"oder <h3>$url_prefix2$userfile_name</h3> damit das Bild in den News erscheint";
  } else {
    echo 
"Upload fehlgeschlagen...";
  }
 }

 
?>

Geändert von Silencer (16.09.2002 um 17:35:15 Uhr)
Mit Zitat antworten
  #2  
Alt 16.09.2002, 17:42:06
MiH MiH ist offline
Member
 
Registriert seit: Aug 2002
Beiträge: 775
ich persönlich würde die prüfung nicht auf der dateiendung aufbauen da auch eine *.zip als *.bmp durchgeht wenn man einfach nur ein *.zip.bmp anhängt.

besser ist es da, wenn du den upload-type prüfst.
das machst du per $_FILES["userfile"]["type"] nun liefert dir das array element beispielsweise bei einem *.jpg den wert "image/jpeg" mit einem preg_match kannst du nun prüfen ob es eine erlaubte datei ist oder nicht.

statt copy + unlink kannst du einfach rename() benutzen das hat den gleichen effekt.
Mit Zitat antworten
  #3  
Alt 16.09.2002, 17:49:38
Silencer Silencer ist offline
Anfänger
 
Registriert seit: Sep 2002
Beiträge: 118
und wie baue ich das in das script ein?

sorry aber ich habe fast 2 wochen gebraucht um dieses uploadscript zu basteln. ich bin darin noch ein totaler n00b

kann man mir das korrigierte per pm oder sowas schicken?
Mit Zitat antworten
  #4  
Alt 17.09.2002, 08:23:58
MiH MiH ist offline
Member
 
Registriert seit: Aug 2002
Beiträge: 775
Code:
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?php
$file_dir="uploads/";
if(isset($_POST["submit"])){
 $a_patter = array("^image/gif$","^image/jpeg$","^image/png$","^image/x-MS-bmp$");
 if(preg_match($a_patter,$_FILE["usrfile"]["type"])){
  if($_FILE["usrfile"]["size"] > 0){
   rename($_FILE["usrfile"]["tmp_name"], $file_dir.$_FILE["usrfile"]["name"]);   
   echo "Image vollständig hochgeladen.<br />";
  }else{
   echo "Datei hat keinen inhalt...";
  }  
 }else{
  echo "ne es geht nur GIF, JPG, PNG und MS-BMP";
 }
?>
<form action="upload.php" method="post" enctype="multipart/form-data">
 <input type="file" name="usrfile" /><br />
 <input type="submit" name="submit" value="senden" /><br />
</form>
</body>
</html>
Mit Zitat antworten
  #5  
Alt 18.09.2002, 02:34:10
Silencer Silencer ist offline
Anfänger
 
Registriert seit: Sep 2002
Beiträge: 118
wenn ich das so mache bekomme ich zuerst einen parse error weil eine klammer fehlt und ist der fehler behoben bekomme ich sowas

Warning: Delimiter must not be alphanumeric or backslash in /home/web60/html/test.php on line 11
ne es geht nur GIF, JPG, PNG und MS-BMP

und zeile 11 ist das hier

Code:
 if(preg_match($a_patter,$_FILE["usrfile"]["type"])){
Mit Zitat antworten
  #6  
Alt 18.09.2002, 08:36:41
MiH MiH ist offline
Member
 
Registriert seit: Aug 2002
Beiträge: 775
das
$a_patter = array("^image/gif$","^image/jpeg$","^image/png$","^image/x-MS-bmp$");
durch das ersetzen
$a_patter = array("|^image/gif$|i","|^image/jpeg$|i","|^image/png$|i","|^image/x-MS-bmp$|i");
Mit Zitat antworten
  #7  
Alt 18.09.2002, 10:56:03
Silencer Silencer ist offline
Anfänger
 
Registriert seit: Sep 2002
Beiträge: 118
dann bekomme ich wieder die selbe fehlermeldung

Warning: Delimiter must not be alphanumeric or backslash in /home/web60/html/test.php on line 11
ne es geht nur GIF, JPG, PNG und MS-BMP
Mit Zitat antworten
  #8  
Alt 18.09.2002, 23:36:02
MiH MiH ist offline
Member
 
Registriert seit: Aug 2002
Beiträge: 775
sorry aber das passiert eben wenn man es nicht testen kann.
hier mal ein fnktionierender code.

Code:
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?php
$file_dir="uploads/";

if(isset($_POST["submit"])){ 
 $a_patter = array("|^image/gif$|","|^image/jpeg$|","|^image/png$|","|^image/x-MS-bmp$|");
 for($a=0;$a<count($a_patter);$a++){
  if(preg_match($a_patter[$a],$_FILES["usrfile"]["type"])){   
   if($_FILES["usrfile"]["size"] > 0){
    rename($_FILES["usrfile"]["tmp_name"], $file_dir.$_FILES["usrfile"]["name"]);   
    echo "Image vollständig hochgeladen.<br />";
    $ok = 1;
   }else{
    echo "Datei hat keinen inhalt...";
   }  
  }
 }
 
 if(!isset($ok)){
  echo "falscher dateityp";
 }
}
?>
<form action="_test.php" method="post" enctype="multipart/form-data">
 <input type="file" name="usrfile" /><br />
 <input type="submit" name="submit" value="senden" /><br />
</form>
</body>
</html>
arrays als patter geht nur bei preg_replace... *g*
Mit Zitat antworten
  #9  
Alt 19.09.2002, 11:47:55
Silencer Silencer ist offline
Anfänger
 
Registriert seit: Sep 2002
Beiträge: 118
jetzt versteh ich nix mehr???


wenn ich das jetzt so mache dann klappt der upload bei gif
bei jpg jpeg bmp png sagt der dann falscher dateityp

wieso das?

irgendwo ein kleiner fehler drin?

ich bin mit meinem latein am ende
Mit Zitat antworten
  #10  
Alt 19.09.2002, 12:50:23
MiH MiH ist offline
Member
 
Registriert seit: Aug 2002
Beiträge: 775
dann stimmen die angaben in den patter nicht.
es kann sein das der mime type bei PNG anders lautet als image/png und bei BMP genauso.

mein tip. lade einfach mal ein PNG + BMP hoch und lass dir den mime type über echo $_FILES["usrfile"]["type"]; ausgeben. dann siehst du wie der typ richtig heisst und du kannst ihn dann im array ersetzen.
Mit Zitat antworten
Antwort


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

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 aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:49:56 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt