ilch Forum » Allgemein » HTML, PHP, SQL,... » mit php ordner erstellen und daten ..

Geschlossen
  1. #1
    User Pic
    chisun Mitglied
    Registriert seit
    11.08.2009
    Beiträge
    44
    Beitragswertungen
    0 Beitragspunkte
    hey,

    ich möchte mit php ordner erstellen und daten speichern.

    erstmal der quellcode:

    if ( isset($_POST['upload']) ) 
    {
    $ordner = @db_result(db_query("SELECT ordner FROM prefix_teams WHERE id = ".$gid.""));
    
    if(empty($ordner))
    {
    	$ordner = rand(10000,99999);
    	$ordner = $ordner.''.$gid;
    	$old = umask(0);
    	mkdir ( 'include/downs/teamdowns/'.$ordner, 0777 );
    	umask($old);
    	db_query('UPDATE `prefix_teams` SET ordner = "'.$ordner.'" WHERE id = "'.$gid.'"');
    }
    
    
          if (empty($_FILES['file']['name'])) {
    
            	echo'Keine Datei angegeben.';
    
          }
          elseif ( $_FILES['file']['size'] > 9437100 ) { # 9 mb (9 437 184)
    
              	echo 'Die Datei darf NICHT grösser als 9 MBytes sein.';
    
          }
    
           else {
    
            $rtype = trim(ic_mime_type ($_FILES['file']['tmp_name']));
    
            $fname = escape($_FILES['file']['name'],'string');
    
            $fende = preg_replace("/.+\.([a-zA-Z]+)$/", "\\1", $fname);
    
            $fende = strtolower($fende);
    
           		if (strpos($fende,"php")!==false){
            	echo 'Es dürfen keine phps hochgeladen werden.';}
            	else{
    
            	$fname = str_replace ('.'.$fende, '', $fname);
    
            	$fname = preg_replace("/[^a-zA-Z0-9]/", "", $fname);
    
            	$fname = $fname.'.'.$fende;
            	echo 'hier1<br>';
    
    		if (file_exists( 'include/downs/downloads/user_upload/'.$fname ) ) {
    
              		return ('Die Datei existiert bereits und kann nicht &uuml;berschrieben werden.');
    
           		}
    		elseif ( move_uploaded_file($_FILES['file']['tmp_name'], 'include/downs/teamdowns/'.$ordner.'/'.$fname) ) {
    
              $url = 'include/downs/teamdowns/'.$ordner.''.$fname;
    
              @chmod($url, 0777);
    
                              
    
          db_query("INSERT INTO prefix_teamdowns (`gid`,`uid`,`titel`,`url`) VALUES ('".$gid."','".$_SESSION['authid']."','".$titel."','".$url."')");
    
    
    
          echo 'Erfolgreich eingetragen!';
    
    
    }}}}


    der ordner wird angelegt und die datei wird gespeichrt, wenn ich diese nicht in den ordner speichern wollte. Nun wie oben zu sehen will ich das aber traurig
    und da bekomm ich folgenden fehler:

    ZitatZitat
    Warning: move_uploaded_file() [function.move-uploaded-file]: SAFE MODE Restriction in effect. The script whose uid is 10001 is not allowed to access /var/www/vhosts/restudy.de/httpdocs/include/downs/teamdowns/1900084 owned by uid 33 in /var/www/vhosts/restudy.de/httpdocs/include/contents/teamupload.php on line 57


    Hier befindet sich der Fehler in Zeile 53.
    Ich habe schon folgendes gemacht: in der php.ini -> safe_mod = off ; open_basedir = ;<-so gelassen
    den erstellten Ordner angeschaut: Benutzer und Gruppe ist leider www-data - das ist denke ich mal das Problem

    könnt ihr mir bitte weiterhelfen?
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Unknown|User gelöschter User
    Du hast keine Berechtigung in den einen Ordner zu schreiben, da du nicht in der Gruppe bist.
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    chisun Mitglied
    Registriert seit
    11.08.2009
    Beiträge
    44
    Beitragswertungen
    0 Beitragspunkte
    und wie änder ich die Gruppe unter der der Ordner, bzw. Datei angelegt wird?

    eiegentlich müsset es ja hiermit gehen. Aber ich habe dafür keine rechte dies nachträglich per php zu ändern.

    chgrp - weist Datei einer Benutzergruppe zu (nur Unix)
    chmod - ändert Schreib- und Leserechte einer Datei (nur Unix)
    chown - ändert Eigentümer einer Datei (nur Unix)

    Danke für eure Hilfe!
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten