Upload-Script geht auf Localhost / aber nicht auf dem Server

dabauer82

Grünschnabel
Ich habe folgendes Problem. Mein vielfältig-angewandtes upload-script scheint diesmal nciht zu gehen und ich finde absolut den Fehler nicht:
Code:
$path = "downloads/";
$arrayding = explode("\\",$datei);
$bez = $arrayding[count($arrayding)-1];
if(@move_uploaded_file($datei , $path.$bez)) {
	$ausgabe.= "Datei erfolgreich hochgeladen.<br>";
}else{
	$ausgabe.= "Fehler beim Transfer ";
}
Ich bekomme die Fehlermeldung, Fehler beim Transfer.
Ordnerrechte 777 für Ordner downloads sind gesetzt, safemode hab ich testweise auch mal auf off geschaltet
$arrayding musste ich schreiben da basename($datei) auch bereits nicht ging um mir den dateinamen aus den dateipfad zu extrahieren.

kann mir jmd helfen?

das script ist unter: http://data.gut-gdbr.de/upload.php ausführbar.
 
aus einem formular - ich denke der code verwirrt n wenig wenn ich alles zeige:

if ($do == "upload") {
$path = "downloads/";
$arrayding = explode("\\",$datei);
$bez = $arrayding[count($arrayding)-1];
if(@move_uploaded_file($datei , $path.$bez)) {
$ausgabe.= "Datei erfolgreich hochgeladen.<br>";
}else{
$ausgabe.= "Fehler beim Transfer - Normal<br>$datei<br>$path<br>$bez";
}

}


$t[0][0] ="<form method=POST name=upload action='$PHP_SELF' enctype='multipart/form-data'>";
$c[0][0] = "width=175";
$t[0][2] = "";

$t[1][0] = "Datei:";
$c[1][0] = "align=right";
$t[1][1] = "";
$t[1][2] = "<input type=file name=datei><br />";

$t[2][0] = "";
$c[2][0] = "align=right";
$t[2][1] = "";
$t[2][2] = "<br /><input type=button value=hochladen onclick=\"this.value='Daten werden gesendet...'; this.disabled='true';location.href='$PHP_SELF?do=upload&verlinkt=$verlinkt&name=$name&datei='+document.upload.datei.value;\"></form>";

$ausgabe.= table($t,'align=center width=100%',$c,'','', 1);
}
 
Allgemein koennte man das Script als Verbrechen gegen PHP bezeichnen.
Du musst Dich auf jeden Fall mit Arrays wie $_POST, $_GET und in diesem Fall auch $_FILES anfreunden.
 
Dafuer muesst man dann schon das komplette Script haben.
Nur einen Teil umzuschreiben hat keinen Sinn.

Beispiel: test.php
PHP:
<?php
if (isset($_POST['upload']))
 {
  if ($_FILES['datei']['size']>0)
   {
    move_uploaded_file($_FILES['tmp_name'],$_FILES['name']);
   }
 }
?>
<form method="post" action="test.php" enctype="multipart/form-data">
<input type="file" name="datei">
<input type="submit" name="upload" value="Hochladen">
</form>

Ein Tutorial zum Thema ist hier zu finden.
 
Hallo!
dabauer82 hat gesagt.:
sorry, ich hab das nie gelernt, villeicht kann mir ja jemand das umschreiben. danke.
Dann solltest Du es ganz schnell tun, denn sonst wirst Du immer wieder auf solche Probleme stossen.
Deine Scripttechnik ist veraltert und funktioniert bei register_globals=OFF nicht.
Standardmässig ist register_globals seit PHP 4.2.0 auf OFF.
Sollte es auf ON stehen, dann nur weil der Verantwortliche es aktiviert hat und sich den Fragen erboster Kunden nicht stellen will, warum deren Scripte plötzlich nicht mehr laufen.
Dass dieses ein gewisses Sicherheitsrisiko für die Kunden darstellt, verschweigt er natürlich. ;)
Siehe dazu auch hier.
Dort ist auch ein weiterführender Link zu den vordefinierten Variablen (superglobale Variablen) mit denen Du dein Script umschreiben kannst.

Zum Thema "Script umschreiben": das Motto lautet hier "User helfen Usern" und nicht "wünsch dir was". ;)
Die Hilfe wirst Du i.d.R. auch bekommen, aber die Arbeit musst Du schon selber erledigen..... oder Du suchst dir in der Jobecke jemanden der es gegen entsprechende Bezahlung für dich erledigt. ;)

Beim posten von Code benutze bitte die dafür vorgesehenen Code-Button, grad bei PHP macht dies die Lesbarkeit einfacher.
Auch können dadurch selbst kleine Flüchtigkeitsfehler häufig schnell gefunden werden.

Und beachte bitte auch den Punkt 12 in der Netiquette.

So, und sollte ich dich nun nicht vergrault haben, dann herzlich willkommen im Forum. ;)

Gruss Dr Dau
 
Zurück