php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 06.10.2006, 09:36  
Neuer Benutzer
 
Registriert seit: 19.07.2006
Beiträge: 27
cyberstorm
Standard PEAR Upload Fehler

Hi,
Ich Schreibe gerade ein One Click Hoster Script, lief alles super bis ich die Dateigröße auf 2 GB erhöhen wollte. Dann kommen doppelte auslieferung an die DB und ausgabe der Links. Hier mal das Script:

PHP-Code:
<form action="?s=upload&submit=1" method="post" enctype="multipart/form-data">
    <table>
     <tr>
      <td>Datei:</td>
      <td><input name="userfile" type="file"></td>
     </tr>
     <tr>
      <td>Beschreibung:</td>
      <td><textarea name="desc" cols="30" rows="5"></textarea></td>
     </tr>
     <tr>
      <td>Passwort:</td>
      <td><input type="text" name="pass" size="40"></td>
     </tr>
     <tr>
      <td>AGB gelesen und Akzeptiert</td>
      <td><input type="checkbox" name="agb" value="agb">
     </tr>
     <tr>
      <td>&Ouml;ffentlich:</td>
      <td><input type="checkbox" name="public" value="public">
     </tr>
     <tr>
      <td><input type="submit" name="submit" value="Upload"></td>
      <td><input type="reset" name="reset" value="reset"></td>
     </tr>
    </table>  

</form>
</body></html>
<?php
if (!isset($_GET['submit'])) {
        include(
'./footer.php');
    exit;
}
 if(
$_POST['agb'] != 'agb'){
  echo 
"<center>[b]<font color='red'>Du musst unsere AGB gelesen haben und diese Akzeptieren[/b]</font></center>";
  include(
'./footer.php');
  exit;
 }
require 
'./PEAR/HTTP_Upload/Upload.php';
$upload = new http_upload('en');
$file $upload->getFiles('userfile');
if (
PEAR::isError($file)) {
    die (
$file->getMessage());
}
if (
$file->isValid()) {
    
$file->setName('uniq');
    
$dest_dir $pfad;
    
$dest_name $file->moveTo($dest_dir);
    if (
PEAR::isError($dest_name)) {
        die (
$dest_name->getMessage());
    }
    
$real $file->getProp('real');
} elseif (
$file->isMissing()) {
    echo 
"No file selected\n";
} elseif (
$file->isError()) {
    echo 
$file->errorMsg() . "\n";
}
$passkey rand(100000,999999);
$time    time();
$desc    $_POST['desc'];
$pass    $_POST['pass'];


  
mysql_connect("$sqlhost",
  
"$sqluser","$sqlpass") or die
  (
"Keine Verbindung moeglich");
  
mysql_select_db("$sqldb") or die
  (
"Die Datenbank existiert nicht");
$explode explode('.'$dest_name);
if(
$explode[1] == 'avi' || $explode[1] == 'mpg' || $explode[1] == 'mpeg' || $explode[1] == 'wmv'){
 
$kat 'video';
}elseif(
$explode[1] == 'jpg' || $explode[1] == 'jpeg' || $explode[1] == 'gif' || $explode[1] == 'bmp'){
 
$kat 'bild';
}elseif(
$explode[1] == 'rar' || $explode[1] == 'zip' || $explode[1] == 'tar'){
 
$kat 'archiv';
} else {
 
$kat 'sonstiges';
}

if(
$_POST['public'] == 'public'){
$public 1;
}else{
$public 0;
}
if(
$_SESSION['loggedIn']){
 
$upper $_SESSION['user'];
}else{
 
$upper 'Gast';}
sleep(2);
$insert "INSERT INTO `uploads` ( `ID`, `PUBLIC`, `DOWNLOADS`, `kat`, `UPLOADNAME`, `FILE`, `PASSKEY`, `DATUM`, `LETZTERZUGRIFF`, `BESCHREIBUNG`, `PASSWORT`, `SERVERID`, `UPLOADER` ) VALUES ('', '$public', '0', '$kat', '$real', '$dest_name', '$passkey','$time','$time','$desc','$pass','1','$upper')";
$put mysql_query($insert);
$abfrage "SELECT * FROM uploads WHERE FILE='$dest_name'";
$ergebnis mysql_query($abfrage);
while(
$row mysql_fetch_object($ergebnis)) {
$down $url "?s=download&did=" $row->ID;
$del  $url "?s=delete&did=" $row->ID "&key=" $row->PASSKEY;
echo 
"Danke f&uuml;r deinen Upload.
"
.
     
"Download Link: [url='$down']$down[/url]
"
.
     
"Lösch Link: [url='$delete']$del[/url]
"
;
}

?>
cyberstorm ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 06.10.2006, 14:34  
Neuer Benutzer
 
Registriert seit: 19.07.2006
Beiträge: 27
cyberstorm
Standard

ich habs jetzt mal mit move.uploaded_file probiert nun bekomm ich bei großen dateien garkeine anzeige mehr:

PHP-Code:
<?php
if (isset($_GET['submit'])) {


 if(
$_POST['agb'] != 'agb'){
  echo 
"<center>[b]<font color='red'>Du musst unsere AGB gelesen haben und diese Akzeptieren[/b]</font></center>";
  include(
'./footer.php');
  exit;
 }

$passkey rand(100000,999999);
$time    time();
$desc    $_POST['desc'];
$pass    $_POST['pass'];
$nameo   $_FILES['userfile']['name'];
$bname   basename($_FILES['userfile']['name']);

$filenamemd5($nameo.$time);

  
mysql_connect("$sqlhost",
  
"$sqluser","$sqlpass") or die
  (
"Keine Verbindung moeglich");
  
mysql_select_db("$sqldb") or die
  (
"Die Datenbank existiert nicht");
$explode explode('.'$bname);
if(
$explode[1] == 'avi' || $explode[1] == 'mpg' || $explode[1] == 'mpeg' || $explode[1] == 'wmv'){
 
$kat 'video';
}elseif(
$explode[1] == 'jpg' || $explode[1] == 'jpeg' || $explode[1] == 'gif' || $explode[1] == 'bmp'){
 
$kat 'bild';
}elseif(
$explode[1] == 'rar' || $explode[1] == 'zip' || $explode[1] == 'tar'){
 
$kat 'archiv';
} else {
 
$kat 'sonstiges';
}

if(
$_POST['public'] == 'public'){
$public 1;
}else{
$public 0;
}
if(
$_SESSION['loggedIn']){
 
$upper $_SESSION['user'];
}else{
 
$upper 'Gast';}



 

         
         
// prüfen, ob Datei schon existiert
         
if (file_exists("$pfad.$filename"))
         {
            
$filenamemd5($time.$nameo.$time);
         }
         else
         {
             if (
move_uploaded_file($_FILES['userfile']['tmp_name'], "$pfad.$filename")){
$insert "INSERT INTO `uploads` ( `ID`, `PUBLIC`, `DOWNLOADS`, `kat`, `UPLOADNAME`, `FILE`, `PASSKEY`, `DATUM`, `LETZTERZUGRIFF`, `BESCHREIBUNG`, `PASSWORT`, `SERVERID`, `UPLOADER` ) VALUES ('', '$public', '0', '$kat', '$bname', '$filename', '$passkey','$time','$time','$desc','$pass','1','$upper')";
$put mysql_query($insert);
$abfrage "SELECT * FROM uploads WHERE FILE='$filename'";
$ergebnis mysql_query($abfrage);
while(
$row mysql_fetch_object($ergebnis)) {
$down $url "?s=download&did=" $row->ID;
$del  $url "?s=delete&did=" $row->ID "&key=" $row->PASSKEY;
echo 
"Danke f&uuml;r deinen Upload.
"
.
     
"Download Link: [url='$down']$down[/url]
"
.
     
"Lösch Link: [url='$delete']$del[/url]
"
;

             }
         }
     }
}
Ich bin echt am verzweifeln und Error All gibt auch nichts
cyberstorm ist offline  
Alt 06.10.2006, 15:45  
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

Schon mal dran gedacht, hinter das "if (move_uploaded_file)" auch mal ein else zu machen, wo eine Fehlermeldung ausgegeben wird?

In der SELECT Abfrage würde ich um FILE auch noch die ``machen.

Die prüfung des Dateinamens ist Mist.
Wenn das Ding schon existiert, würfelst Du einen neuen Namen aus und wirfst ihn dann weg, weil Du nicht in den else-Zweig kommst.

Dass man hinter mysql_query auch ein "or die (mysql_error());" schreiben kann, um Infos zu erhalten hast Du vielleicht auch schon mal gelesen.

Wo der Inhalt von $pfad herkommt wäre auch mal interessant...

Wenn ID ein autoincrement-Feld in der Tabelle ist, würde ich es beim INSERT weglassen und nicht mit '' beschreiben.

Die Endung mit explode() zu ermitteln kann ins Auge gehen, da der Dateinamen mehr als nur einen . enthalten kann.


Wie hast Du denn die Größe überhaupt auf 2GB erhöht?
Hast Du einfach eine größere Datei genommen? Oder hast Du die Größe der maximal hochzuladenden Datei in der Konfiguration verändert?
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 06.10.2006, 17:32  
Neuer Benutzer
 
Registriert seit: 19.07.2006
Beiträge: 27
cyberstorm
Standard

ich hab mir deine ratschläge zu herzen genommen und es geändert nun besteht das Problem aber immer noch, habe meine einstellung in der PHP.ini angepasst aber irgentwie will es nicht so ganz :
Code:
Array
(
    [userfile] => Array
        (
            [name] => test.rar
            [type] => 
            [tmp_name] => 
            [error] => 7
            [size] => 0
        )

)
ERLEDIGT HAB DEN FEHLER GEFUNDEN, HAB DAS TMP VERZEICHNIS NICHT ZU MEINER 2TEN PLATTE GESETZT
cyberstorm 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
imagecopyresampled fehler. upload funktioniert aber rbs_phoenix PHP Tipps 2006 2 18.07.2006 17:45
upload fehler! Masteroi PHP Tipps 2007 3 06.11.2005 18:13
upload will nicht - wo ist der Fehler? dsmcg PHP Tipps 2005-2 7 20.10.2005 19:13
Fehler beim upload script PHP Tipps 2005-2 1 18.08.2005 14:16
Fehler in Upload Script PHP Tipps 2005-2 1 09.08.2005 13:10
Fehlermeldung - aber kein fehler... Tschuu HTML, Usability und Barrierefreiheit 16 14.03.2005 15:56
Upload - Wo steckt der Fehler? PHP Tipps 2004-2 1 22.12.2004 21:37
Uploader-Script fehler beim Thumbx erstellen PHP Tipps 2004-2 7 07.12.2004 10:35
upload - verstehe den fehler nicht... anakadai PHP Tipps 2004-2 12 08.11.2004 21:01
[Erledigt] mysql fehler PHP Tipps 2004 2 03.11.2004 00:32
Hilfe ich finde den Fehler nicht! PHP Tipps 2004 2 07.10.2004 17:40
array_push nur in begrenzter Anzahl ausführen ? PHP Tipps 2004 2 07.09.2004 09:05
Fehler beim Upload PHP Tipps 2004 0 10.08.2004 20:37
datei upload + Fehler PHP Tipps 2004 5 03.06.2004 13:46
datei upload + Fehler #2 PHP Tipps 2004 1 03.06.2004 12:49

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
pear upload dateigröße, php pear upload, pear::iserror

Alle Zeitangaben in WEZ +2. Es ist jetzt 14:15 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.