hilfe bei str_replace

hups1803

Erfahrenes Mitglied
ich habe ein upload file welches die upgeloadeten Daten in eine Mysql Datenbank einträgt.

nun habe ich das problem das er bei zb diesen file :

test.zip

immer den ganzen pfad einträgt :

D:/xampp/htdocs/e107/e107_plugins/mp3_profiles/uploads/music/test.zip

ich möchte aber das in der datenbank nur test.zip steht


PHP:
$tempFile = $_FILES['Filedata']['tmp_name'];
	//$targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';
		$targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';
	$targetFile =  str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];
	
	 $fileTypes  = str_replace('*.','',$_REQUEST['fileext']);
	 $fileTypes  = str_replace(';','|',$fileTypes);
	 $typesArray = split('\|',$fileTypes);
	 $fileParts  = pathinfo($_FILES['Filedata']['name']);

der sql teil

PHP:
$beschreibung = ( @get_magic_quotes_gpc() ) ? $_POST['beschreibung'] : @addslashes($_POST['beschreibung']);
$musik_user_id = ( @get_magic_quotes_gpc() ) ? $_POST['musik_user_id'] : @addslashes($_POST['musik_user_id']);
$musik_user = ( @get_magic_quotes_gpc() ) ? $_POST['musik_user'] : @addslashes($_POST['musik_user']);
$genre = ( @get_magic_quotes_gpc() ) ? $_POST['genre'] : @addslashes($_POST['genre']);		
$musik_type = ( @get_magic_quotes_gpc() ) ? $_POST['musik_type'] : @addslashes($_POST['musik_type']);
$cat_id = ( @get_magic_quotes_gpc() ) ? $_POST['cat_id'] : @addslashes($_POST['cat_id']);
$alben_image = ( @get_magic_quotes_gpc() ) ? $_POST['alben_image'] : @addslashes($_POST['alben_image']);
//$datei = ( @get_magic_quotes_gpc() ) ? $_POST['datei'] : @addslashes($_POST['datei']);
$mp3 = ( @get_magic_quotes_gpc() ) ? $_POST['mp3'] : @addslashes($_POST['mp3']);
$musik_tags = ( @get_magic_quotes_gpc() ) ? $_POST['musik_tags'] : @addslashes($_POST['musik_tags']);
$musik_titel = ( @get_magic_quotes_gpc() ) ? $_POST['musik_titel'] : @addslashes($_POST['musik_titel']);
$copyright = ( @get_magic_quotes_gpc() ) ? $_POST['copyright'] : @addslashes($_POST['copyright']);
$time = ( @get_magic_quotes_gpc() ) ? $_POST['time'] : @addslashes($_POST['time']);

	/* DB Insert */
	$mysql = new db();
	$mysql->db_Connect($mySQLserver, $mySQLuser, $mySQLpassword, $mySQLdefaultdb);
	$rtn = $mysql->db_Insert("mp3_musik_config", "  '',
 '$beschreibung','$musik_user_id','$musik_user','$genre','$musik_type','$cat_id','$alben_image','$File','$musik_tags','$musik_titel','$copyright','$datum', '1'");
 
		move_uploaded_file($tempFile,$targetFile);
		echo str_replace($_SERVER['DOCUMENT_ROOT'],'',$targetFile);
	 } else {
	 	echo 'Invalid file type.';
	 }
}

habe es schon so versucht
PHP:
$targetFile = str_replace($_SERVER['DOCUMENT_ROOT'].'/e107_plugins/mp3_profiles/uploads/music/','',$targetFile);

keine veränderung .

wenn ich aber das
PHP:
$targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';

auskommentiere dann geht es nur leider geht dann der upload nicht
 
Du kannst das Bearbeitet der Variablen übrigens viel einfacher gestalten ;)

PHP:
$magic_quotes = @get_magic_quotes_gpc();
foreach($_POST as $key=>$value){
  $_POST[$key] = ($magic_quotes)? $_POST[$key] : @addslashes($_POST[$key]);
}
 
Statt
PHP:
$beschreibung = ( @get_magic_quotes_gpc() ) ? $_POST['beschreibung'] : @addslashes($_POST['beschreibung']);
$musik_user_id = ( @get_magic_quotes_gpc() ) ? $_POST['musik_user_id'] : @addslashes($_POST['musik_user_id']);
$musik_user = ( @get_magic_quotes_gpc() ) ? $_POST['musik_user'] : @addslashes($_POST['musik_user']);
$genre = ( @get_magic_quotes_gpc() ) ? $_POST['genre'] : @addslashes($_POST['genre']);        
$musik_type = ( @get_magic_quotes_gpc() ) ? $_POST['musik_type'] : @addslashes($_POST['musik_type']);
$cat_id = ( @get_magic_quotes_gpc() ) ? $_POST['cat_id'] : @addslashes($_POST['cat_id']);
$alben_image = ( @get_magic_quotes_gpc() ) ? $_POST['alben_image'] : @addslashes($_POST['alben_image']);
//$datei = ( @get_magic_quotes_gpc() ) ? $_POST['datei'] : @addslashes($_POST['datei']);
$mp3 = ( @get_magic_quotes_gpc() ) ? $_POST['mp3'] : @addslashes($_POST['mp3']);
$musik_tags = ( @get_magic_quotes_gpc() ) ? $_POST['musik_tags'] : @addslashes($_POST['musik_tags']);
$musik_titel = ( @get_magic_quotes_gpc() ) ? $_POST['musik_titel'] : @addslashes($_POST['musik_titel']);
$copyright = ( @get_magic_quotes_gpc() ) ? $_POST['copyright'] : @addslashes($_POST['copyright']);
$time = ( @get_magic_quotes_gpc() ) ? $_POST['time'] : @addslashes($_POST['time']);
Schreibst du nur
PHP:
$magic_quotes = @get_magic_quotes_gpc();
foreach($_POST as $key=>$value){
  $_POST[$key] = ($magic_quotes)? $_POST[$key] : @addslashes($_POST[$key]);
}

Zunächst wird in der variablen $magic_quotes der Rückgabewert der Funktion get_magic_quotes_gpc() gespeichert. Anschließend wird das $_POST array durchlaufen und alle Felder bei Bedarf mit der Funktion addslashes bearbeitet.
 
meinst du so



PHP:
$magic_quotes = @get_magic_quotes_gpc();
foreach($_POST as $key=>$value){
  $_POST[$key] = ($magic_quotes)? $_POST[$key] : @addslashes($_POST[$key]);
}  


/* DB Insert */
    $mysql = new db();
    $mysql->db_Connect($mySQLserver, $mySQLuser, $mySQLpassword, $mySQLdefaultdb);
    $rtn = $mysql->db_Insert("mp3_musik_config", "  '',
 '$beschreibung','$musik_user_id','$musik_user','$genre','$musik_type','$cat_id','$alben_image','$File','$musik_tags','$musik_titel','$copyright','$datum', '1'");
 
Naja ist ja auch logisch dass es dann nicht mehr klappt. Du musst dann in im MySQL Query die Variablen durch die $_POST Variablen ersetzen.
Alternativ kannst du noch das probieren, ist aber ungetestet:
PHP:
$magic_quotes = @get_magic_quotes_gpc();
foreach($_POST as $key=>$value){
  $$key = ($magic_quotes)? $_POST[$key] : @addslashes($_POST[$key]);
}
 
Zurück