Problem beim zusammenführen von 2 Scripten

spikaner

Quereinsteiger @ php
Hallo allerseitz ich habe folgendes Problem einmal habe ich ein Uploadscript (freeware) und würde in dieses gerne mein Script (.m3u datei auslesen und in Datenbank eintragen) mit einbauen so das der User die Datei blos hochladen braucht und den rest erledigt das script
hier mal die beiden relevanten Quellcodes:
Upload:
PHP:
<?php
	// ----------------------------------------- 
	// Das Script kann unter Verwendung 
	// dieses Vermerks uneingeschränkt 
	// genutzt / verändert werden. 
	//  © www.php-space.info
	// -----------------------------------------
	@include_once('functions.php'); 
	// -----------------------------------------
	// Beispiel $path = '/bilder-upload-script/img/'; 
	$path = ''; 	// Verzeichnis zum Speicher Ordner nach http://www.ihre-domain.de/
	// Beispiel $img_path_up = '/home/www/web3/html/php-space/bilder-upload-script/img/';
	$img_path_up = ''; // Absuluter Pfad zum Speicher Ordner
	$groessemax = 10000; // Maximal Datei Größe in KB (KiloByte) 
	// ----------------------------------------- 
	// Ab hier nichts mehr anpassen 
	if (!isset($_GET["loechen"]))	$_GET["loechen"] = "";
	if (!isset($_GET["file"]))		$_GET["file"] = "";
	
?>
<html> 
<head> 
<title>Datei Upload</title> 
<!-- Php-Space.info / Datei Upload Version 1.01 - 03.01.2007 -->
<!-- (c) Nico Schuber <?php echo date("Y");?> - Kontakt: www.SchubertMedia.de - info[at]SchubertMedia.de -->
<style type="text/css">
	<!--
	body, table{
		color: #000;
		font: 11px Verdana, Tahoma, Arial, Helvetica, sans-serif; 
	}
	div{
		margin:0;
		padding:0;
	}
	-->
</style>
</head> 
<body>
<? 
if(uploadmoeglichkeitpruefen()==false){
	echo '<div style="color:red;">Es ist auf diesen Server kein Upload möglich, bitte wenden Sie sich an Ihren Hoster und bitten um Aktivierung der Php Upload Funktion.</div>';
 	exit;	
}
if(file_exists($img_path_up)==false OR $img_path_up ==''){
	echo '<div style="color:red;">Es gibt kein Ordner wohin die Bilder geladen werden sollen!</div>';
	exit;

}
?>
    <br>
    <strong>File Upload</strong><br>
    <br>
<?
if($_POST["action"]){ 
	$filename = ""; 
	if ($HTTP_POST_FILES['userfile']['tmp_name']<> 'none'){    
		$file = $HTTP_POST_FILES['userfile']['name']; 
		$temp = $HTTP_POST_FILES['userfile']['tmp_name']; 
		$path_parts = pathinfo($file); 
		$filename = "datei_" . time() . "." . $path_parts["extension"]; 
		if($HTTP_POST_FILES['userfile']['size'] <= $groessemax*1024){
			if(decoct(fileperms($img_path_up))==40777){
				if(@copy($temp, $img_path_up.$filename)){ 
					echo '<div style="color:green;">Datei ist auf den Server!<br>'; 
					echo 'Url der Datei: <a href="http://'.$_SERVER['HTTP_HOST'].$path.$filename.'" target="_blank">http://'.$_SERVER['HTTP_HOST'].$path.$filename.'</a><br><br><a href="'.$_SERVER['PHP_SELF'].'">Eine weitere Datei auf den Server laden...</a><br><br></div>'; 
				} else {
					echo '<div style="color:red;">Die Datei konnte nicht auf den Server geladen werden. <a href="'.$_SERVER['PHP_SELF'].'">Noch mal versuchen...</a><br><br></div>';
				}
			} else {
				echo '<div style="color:red;">Der Upload Ordner hat keine Schreibrechte! <a href="'.$_SERVER['PHP_SELF'].'">Noch mal versuchen...</a><br><br></div>';
			}
		} else {
			echo '<div style="color:red;">Die Datei ist zu groß! Die Datei darf nicht größer als '.$groessemax.' KB (KiloByte) sein. <a href="'.$_SERVER['PHP_SELF'].'">Noch mal versuchen...</a><br><br></div>';
		}
	} 
} else { 
?> 
<form method="post" enctype="multipart/form-data" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
	die Datei darf nicht gr&ouml;&szlig;er sein als <?php if((maximaledateiuploadgroesseermitteln()/1024)>$groessemax) echo $groessemax; else echo (maximaledateiuploadgroesseermitteln()/1024);?> KB (KiloByte).<br><br>
	<input name="userfile" type="file" size="40"><br><br>
	<input type="submit" name="action" value="Speichern">
</form> 
<? } ?>
<br><strong>File List</strong><br><br> 
<?
// Datein Löschen
if($_GET["loechen"]==1 AND $_GET["file"]!=''){
	if(file_exists($_GET["file"])==true){
		if(@unlink($_GET["file"])==true) echo '<div style="color:green;">Die Datei wurde erfolgreich gelöscht!<br><br></div>';
		else echo '<div style="color:red;">Die Datei konnte nicht gelöscht werden.<br><br></div>';
	} else {
		echo '<div style="color:red;">Die Datei gibt es nicht im Upload Verzeichnis!<br><br></div>';
	}
}
?>
<table border="0" bordercolor="Gray" bgcolor="DarkGray" cellspacing="2" cellpadding="2" width="500">
	<tr align="middle" bgcolor="Gainsboro" style="font-weight:bold">
		<td><SPAN class="fett">File</SPAN></td>
		<td><SPAN class="fett">Größe</SPAN></td>
		<td><SPAN class="fett">Letzte Änderung</SPAN></td>
		<td><SPAN class="fett">Aktion</SPAN></td>
	</tr>
<?
// Datein Verzeichnis ansgeben
$i=0;
$verz=opendir ($img_path_up);
while (false !== ($file = readdir($verz))) {
	if (filetype($img_path_up.$file)!="dir"){
		$i++;
		echo '<tr bgcolor="Gainsboro">';
		echo '	<td><a href="http://'.$_SERVER['HTTP_HOST'].$path.$file.'"  target="_blank">'.$file.'</a></td>';
		echo '	<td>'.fs_convert($img_path_up.$file,2).'</td>';
		echo '	<td>'.date("d.m.Y H:i", last_change($img_path_up.$file)).'</td>';
		echo '	<td><a href="'.$_SERVER["PHP_SELF"].'?file='.$img_path_up.$file.'&loechen=1" >Löschen</td>';
		echo '</tr>';
	}	
}
if($i==0){
	echo '<tr bgcolor="Gainsboro">';
	echo '	<td colspan="4">Es ist noch keine Datei im Upload Ordner.</td>';
	echo '</tr>';
}
closedir($verz);
?>
</table>
</body> 
</html>
Entragen:
PHP:
<?php
require ("config.php"); //darin steht der db zugang

// $uploader steht mom noch fest in der config.php
// $playlist steht mom noch fest in der config.php

// echo "$playlist";

// öffnen DB

$connect = @mysql_connect($mysql_host, $mysql_user, $mysql_pw);
$db      = mysql_select_db($mysql_db,$connect) or die ("Kann die Datenbank nicht lesen!");

// Leerzeichen entfernen

function delSpace($foo)
{
    $foo = str_replace('/\r\n|\r|\n/', ' ', $foo);
    $foo = str_replace('\'', ' ', $foo);
//    $foo = str_replace(' ','',$foo);
    $foo = strip_tags($foo);
    $foo = htmlentities($foo);
    $foo = addslashes($foo);
    return $foo;
}

// Filter uns

function saveSongs($line)
{

    // hier wird nur die Zeile mit #EXTINF rausgesucht #

    if ((strpos($line,"#EXTM3U") === false) && (strpos($line,".mp3") === false) && (strpos($line,".wav") === false) && (strpos($line,".wma") === false))
    {
        global $uploader;
        preg_match_all('%#EXTINF:(.*?),(.*?)-(.*)%msi',$line,$results,PREG_PATTERN_ORDER);
        $sql_query    = "INSERT INTO mp3files (laenge,interpret,titel,uploader) VALUES ('".delSpace($results[1][0])."','".delSpace($results[2][0])."','".delSpace($results[3][0])."','".$uploader."')";
        if(mysql_query($sql_query))
        {
           var_dump($results);
           // echo "<br/>";
           // echo $uploader."<br/>";
        }
        else
        {
            echo "Zeile: ".$line." Konnte nicht gespeichert werden!<br />";
        }
    }
}

// Playlist öffnen und speichern

if (file_exists($playlist))
{
    $handle = fopen($playlist, "r");
    $contents = '';
    while (!feof($handle)) 
    {
        $line = fgets($handle);

        // zeile für zeile wird ausgelesen

        saveSongs($line);
    }
    fclose($handle);
}
else
{
    echo $playlist." nicht gefunden!<br />";
    echo "Probier es mit der richtigen Angabe der Playlist, Format: Namederplaylist.m3u<br />";
}
mysql_close($connect);
?>
beim Eintrage script arbeite ich bereits mit 2 Variablen einmal uploader und einmal filename Uploader will ich im Uploadscript auch noch per <input... übergeben lassen.
Wäre über Hilfe sehr dankbar

mfg Spikaner
 
Und wie können wir dir dabei helfen? Wäre schön, wenn du ein bisschen detailierter sagen könntest, was wohin übergeben werden soll, deine Ansätze und eventuelle Fehlermeldungen zeigst und vielleicht auch noch erzählen könntest, wo ungefähr der relevante Code ist.
 
Ich habe es so probiert (Vermerkt mom. herausgeschnitten um den Text klein zu halten, wird später wieder eingefügt):
PHP:
<?php
@include_once('functions.php');
require ("config.php"); // db zugang 

$path = 'playlist/playlisten/'; 	// Verzeichnis zum Speichern localhost..
$img_path_up = 'D://xampp/htdocs/playlist/playlisten/'; // Absuluter Pfad zum Speicher Ordner
$groessemax = 100000; // Maximal Datei Größe in KB (KiloByte) 
if (!isset($_GET["loechen"]))	$_GET["loechen"] = "";
if (!isset($_GET["file"]))	$_GET["file"] = "";
	
?>
<html> 
<head> 
<title>Datei Upload</title> 
<style type="text/css">
	<!--
	body, table{
		color: #000;
		font: 11px Verdana, Tahoma, Arial, Helvetica, sans-serif; 
	}
	div{
		margin:0;
		padding:0;
	}
	-->
</style>
</head> 
<body>
<? 
if(uploadmoeglichkeitpruefen()==false){
	echo '<div style="color:red;">Es ist auf diesen Server kein Upload möglich.</div>';
 	exit;	
}
if(file_exists($img_path_up)==false OR $img_path_up ==''){
	echo '<div style="color:red;">Es gibt kein Ordner wohin die Playliste geladen werden sollen!</div>';
	exit;

}
?>
    <br>
    <strong>File Upload</strong><br>
    <br>
<?
if($_POST["action"]){ 
	$filename = ""; 
	if ($HTTP_POST_FILES['userfile']['tmp_name']<> 'none'){
//Neu
// $uploader = $HTTP_POST_FILES['userfile']['uploader']);
// $playlist = $HTTP_POST_FILES['userfile']['file']);
//Neu ende
		$file = $HTTP_POST_FILES['userfile']['name']; 
		$temp = $HTTP_POST_FILES['userfile']['tmp_name']; 
		$path_parts = pathinfo($file); 
		$filename = "datei_" . time() . "." . $path_parts["extension"]; 
		if($HTTP_POST_FILES['userfile']['size'] <= $groessemax*1024){
			if(decoct(fileperms($img_path_up))==40777){
				if(@copy($temp, $img_path_up.$filename)){ 
					echo '<div style="color:green;">Datei ist auf den Server!<br>';
// Neu
$connect = @mysql_connect($mysql_host, $mysql_user, $mysql_pw);
$db      = mysql_select_db($mysql_db,$connect) or die ("Kann die Datenbank nicht lesen!");

// Leerzeichen entfernen

function delSpace($foo)
{
    $foo = str_replace('/\r\n|\r|\n/', ' ', $foo);
    $foo = str_replace('\'', ' ', $foo);
    $foo = strip_tags($foo);
    $foo = htmlentities($foo);
    $foo = addslashes($foo);
    return $foo;
}

// Filter uns

function saveSongs($line)
{

    // hier wird nur die Zeile mit #EXTINF rausgesucht #

    if ((strpos($line,"#EXTM3U") === false) && (strpos($line,".mp3") === false) && (strpos($line,".wav") === false) && (strpos($line,".wma") === false))
    {
        global $uploader;
        preg_match_all('%#EXTINF:(.*?),(.*?)-(.*)%msi',$line,$results,PREG_PATTERN_ORDER);
        $sql_query    = "INSERT INTO mp3files (laenge,interpret,titel,uploader) VALUES ('".delSpace($results[1][0])."','".delSpace($results[2][0])."','".delSpace($results[3][0])."','".$uploader."')";
        if(mysql_query($sql_query))
        {
           // var_dump($results);
           echo "Alle Daten wurden in die Datenbank eingetragen </ br>";
           // echo $uploader."<br/>";
        }
        else
        {
            echo "Zeile: ".$line." Konnte nicht gespeichert werden!<br />";
        }
    }
}

// Playlist öffnen und speichern

if (file_exists($playlist))
{
    $handle = fopen($playlist, "r");
    $contents = '';
    while (!feof($handle)) 
    {
        $line = fgets($handle);

        // zeile für zeile wird ausgelesen

        saveSongs($line);
    }
    fclose($handle);
}
else
{
    echo $playlist." nicht gefunden!<br />";
    echo "Irgendwas ist schiefgelaufen...<br />";
}
mysql_close($connect);
// Neu ende
					echo 'Url der Datei: <a href="http://'.$_SERVER['HTTP_HOST'].$path.$filename.'" target="_blank">http://'.$_SERVER['HTTP_HOST'].$path.$filename.'</a><br><br><a href="'.$_SERVER['PHP_SELF'].'">Eine weitere Datei auf den Server laden...</a><br><br></div>'; 
				} else {
					echo '<div style="color:red;">Die Datei konnte nicht auf den Server geladen werden. <a href="'.$_SERVER['PHP_SELF'].'">Noch mal versuchen...</a><br><br></div>';
				}
			} else {
				echo '<div style="color:red;">Der Upload Ordner hat keine Schreibrechte! <a href="'.$_SERVER['PHP_SELF'].'">Noch mal versuchen...</a><br><br></div>';
			}
		} else {
			echo '<div style="color:red;">Die Datei ist zu groß! Die Datei darf nicht größer als '.$groessemax.' KB (KiloByte) sein. <a href="'.$_SERVER['PHP_SELF'].'">Noch mal versuchen...</a><br><br></div>';
		}
	} 
} else { 
?> 
<form method="post" enctype="multipart/form-data" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
	die Datei darf nicht gr&ouml;&szlig;er sein als <?php if((maximaledateiuploadgroesseermitteln()/1024)>$groessemax) echo $groessemax; else echo (maximaledateiuploadgroesseermitteln()/1024);?> KB (KiloByte).<br><br>
	<input type="text" name="uploader" size="20"><strong>Uploader</strong>(muß angegeben werden)<br>
	<input name="userfile" type="file" size="40"><br><br>
	<input type="submit" name="action" value="Speichern">
</form> 
<? } ?>
<br><strong>File List</strong><br><br> 
<?
// Dateien Löschen
if($_GET["loechen"]==1 AND $_GET["file"]!=''){
	if(file_exists($_GET["file"])==true){
		if(@unlink($_GET["file"])==true) echo '<div style="color:green;">Die Datei wurde erfolgreich gelöscht!<br><br></div>';
		else echo '<div style="color:red;">Die Datei konnte nicht gelöscht werden.<br><br></div>';
	} else {
		echo '<div style="color:red;">Die Datei gibt es nicht im Upload Verzeichnis!<br><br></div>';
	}
}
?>
<table border="0" bordercolor="Gray" bgcolor="DarkGray" cellspacing="2" cellpadding="2" width="500">
	<tr align="middle" bgcolor="Gainsboro" style="font-weight:bold">
		<td><SPAN class="fett">File</SPAN></td>
		<td><SPAN class="fett">Größe</SPAN></td>
		<td><SPAN class="fett">Letzte Änderung</SPAN></td>
		<td><SPAN class="fett">Aktion</SPAN></td>
        <td><SPAN class="fett">Aktion</SPAN></td>
	</tr>
<?
// Dateien Verzeichnis ansgeben
$i=0;
$verz=opendir ($img_path_up);
while (false !== ($file = readdir($verz))) {
	if (filetype($img_path_up.$file)!="dir"){
		$i++;
		echo '<tr bgcolor="Gainsboro">';
		echo '	<td>'.$file.'</td>';
		echo '	<td>'.fs_convert($img_path_up.$file,2).'</td>';
		echo '	<td>'.date("d.m.Y H:i", last_change($img_path_up.$file)).'</td>';
		echo '	<td><a href="'.$_SERVER["PHP_SELF"].'?file='.$img_path_up.$file.'&loechen=1" >Löschen</td>';
        echo '  <td><form method="post" enctype="text" action=$_SERVER["PHP_SELF"]';
        echo '  <input type="text" name="uploaderloeschen" size="15">';
        echo '  </form></td>';
		echo '</tr>';
	}	
}
if($i==0){
	echo '<tr bgcolor="Gainsboro">';
	echo '	<td colspan="4">Es ist noch keine Datei im Upload Ordner.</td>';
	echo '</tr>';
}
closedir($verz);
?>
</table>
</body> 
</html>
aber so funktioniert es nicht da er uploader und playlist irgendendwie nicht übernehmen will/kann warum auch immer.
Sprich was am ende herauskommen soll ist User Trägt seinen Namen an gibt das File ein (.m3u) bzw sucht es klickt auf upload und das script lädt die Datei auf den Server und trägt danach alles was im file steht in die Datenbank ein.

mfg Spikaner
 
Zuletzt bearbeitet:
Ja aber WAS funktioniert denn nicht? Ist was mit der Maske faul, funktioniert der Upload nicht? Das Parsen der Datei? Das Eintragen in die Datenbank?
 
Das eintragen in der DB er will diese beiden befehle da wo ich sie stehen habe nicht nehmen
PHP:
$uploader = $HTTP_POST_FILES['userfile']['uploader']);
$playlist = $HTTP_POST_FILES['userfile']['file']);

bekomme folgende fehlermeldung im script angezeigt
Datei ist auf den Server!
nicht gefunden!
Irgendwas ist schiefgelaufen...
Url der Datei: http://localhost/playlist/playlisten/datei_1188805386.m3u

Irgendwie vergibt er einen neuen Filenamen was er aber eigentlich nicht machen sollte..
und dann passt das ganze nicht mehr zusammen und er bricht ab. Und ich habe keine Ahnung wo der fehler liegen könnte hier noch die funktions.php vom uploadscript
PHP:
<?
	// ----------------------------------------- 
	// Das Script kann unter Verwendung 
	// dieses Vermerks uneingeschränkt 
	// genutzt / verändert werden. 
	//  © www.php-space.info
	// ----------------------------------------- 
	if (eregi("functions.php",$_SERVER["PHP_SELF"])) {
  		exit;
	}
	function fs_convert ($datei, $nachkommastellen = 0) {
		$size = filesize($datei);
		if($size >= 1073741824) {
			return round($size/(1073741824), $nachkommastellen)." GB";
		}
		
		if($size >= 1048576) {
			return round($size/(1048576), $nachkommastellen)." MB";
		}
		
		if($size >= 1024) {
			return round($size/(1024), $nachkommastellen)." KB";
		}
    return $size." Byte";
	}
	function last_change ($site) {
		if(empty($site)) {
			$site = $_SERVER['DOCUMENT_ROOT'];
			$site.= $_SERVER['PHP_SELF'];
		}
    return filemtime($site);
	}
	function uploadmoeglichkeitpruefen(){
		$uploadmoeglichkeit=true;
		if(strtolower(@ini_get('file_uploads'))=='off' || @ini_get('file_uploads')==0){
			$uploadmoeglichkeit=false;
		}
	return $uploadmoeglichkeit;
	}
	function maximaledateiuploadgroesseermitteln(){
		$maximaledateiuploadgroesse=0;
		if($dateigroesse=ini_get('upload_max_filesize')){
			$maximaledateiuploadgroesse=phpiniwertumwandeln($dateigroesse);
		}
		if($postgroesse=ini_get('post_max_size')){
			$postgroesse=phpiniwertumwandeln($postgroesse);
			if($postgroesse<$maximaledateiuploadgroesse){
				$maximaledateiuploadgroesse=$postgroesse;
			}
		}
		return $maximaledateiuploadgroesse;
	}
	function phpiniwertumwandeln($groesse){
		$werte['MB'] = 1048576;
		$werte['Mb'] = 1048576;
		$werte['M'] = 1048576;
		$werte['m'] = 1048576;
		$werte['KB'] = 1024;
		$werte['Kb'] = 1024;
		$werte['K'] = 1024;
		$werte['k'] = 1024;
	
		while(list($schluessel)=each($werte)){
			if((strlen($groesse)>strlen($schluessel)) && (substr($groesse, strlen($groesse)-strlen($schluessel))==$schluessel))		{
				$groesse=substr($groesse, 0, strlen($groesse)-strlen($schluessel))*$werte[$schluessel];
				break;
			}
		}
		return $groesse;
	}
?>

mfg Spikaner
 
Du musst das File über einen Temp-Namen ansprechen, nicht über den von dir gewählten Filenamen. Siehe hierzu: http://de.php.net/manual/de/function.move-uploaded-file.php

Bsp (aus einem meiner Scripts):
PHP:
$pic_uploaded = move_uploaded_file($_FILES['form_news_write_picpath']['tmp_name'], $this->pic_path);

Ausserdem kannst du direkt über $_FILES auf das Superglobale Array zugreifen. $HTTP_*_VARS sowie auch dein $HTTP_POST_FILES sind veraltet. Lies hierzu: http://de.php.net/manual/de/language.variables.predefined.php

Gruss
De Igäl

PS: Ausserdem hast du den Fehlerrelevanten Teil des Codes wieder nicht gepostet ^^ Der Fehler liegt anscheinend beim Upload. Du könntest uns beiden viel Arbeit ersparen :)
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück