|
|
User gesamt
|
:
|
2452957
|
User online
|
:
|
6
|
|
KubaSeoTräume, PHP Forum, PHP Community and more ... MyWebsolution.de!
|
|
|
|
MyWebsolution.de Foren » Anfängerfragen PHP und MYSQL » Up- und Download von Dateien..
Seite:
|
<
1
2
3
4
5
>
|
Posts pro Seite: 5
10
20
|
Autor
|
Thread
|
02.02.2007 16:59 Uhr
|
|
mdean
|
Forenposter
|
|
registriert
|
03.01.2007
|
wohnt in
|
Schweiz
|
Beiträge
|
90
|
|
folgende Fehlermeldung kommt:
Parse error: parse error, unexpected $end
|
|
|
02.02.2007 17:20 Uhr
|
|
Flitze
|
Administrator
|
|
registriert
|
17.10.2006
|
wohnt in
|
Eschwege
|
Beiträge
|
332
|
|
dann haste irgendwo ne Klammer nicht zu gemacht
|
|
|
02.02.2007 17:42 Uhr
|
|
mdean
|
Forenposter
|
|
registriert
|
03.01.2007
|
wohnt in
|
Schweiz
|
Beiträge
|
90
|
|
Jetzt kommen folgende Fehlermeldungen:
Notice: Undefined variable: errors in C:\Testserver\test\usercenter\up_skript.php on line 48
Notice: Undefined variable: endung in C:\Testserver\test\usercenter\up_skript.php on line 61
Notice: Undefined index: datei in C:\Testserver\test\usercenter\up_skript.php on line 64
Aber die variablen hab ich doch definiert...
Hier nochmals der code:
PHP:
<?
error_reporting(E_ALL);
include '../conect.php';
$connid = @mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASS) OR die("Error: ".mysql_error());
mysql_select_db($MYSQL_DATA) OR die("Error: ".mysql_error());
if(isset($_POST['Send_x']) AND $_POST['Send_x'] == "Upload") {
$errors = array();
// Prüft, ob ein Interpret eingegeben wurde
if(trim($_POST['Interpret'])=='')
$errors[]= "Bitte geben Sie den Namen des Interpreten an.";
// Prüft, ob der Interpret mindestens 2 Zeichen enthält
elseif(strlen(trim($_POST['Interpret'])) < 2)
$errors[]= "Der Name des Interpreten muss mindestens 2 Zeichen lang sein";
// Prüft ob ein Album angegeben wurde
if(trim($_POST['Album'])=='')
$errors[]= "Bitte geben Sie den Namen des Albums an.";
// Prüft ob ein Songname eingegeben wurde
if(trim($_POST['Songname'])=='')
$errors[]= "Bitte geben Sie den Titel für den Song an.";
// Prüft ob der richtige Mime Typ vorliegt
$erlaubte_typen = array('image/pjpeg',
'image/jpeg',
'application/pdf'
);
if(!in_array($_FILES['datei']['type'], $erlaubte_typen))
$errors[] = "Der Mime-Typ ihrer Datei ist verboten.";
// Prüft ob die Datei die richtige Endung hat
$erlaubte_endungen = array('jpeg',
'jpg',
'pdf'
);
$endung = strtolower(substr($_FILES['datei']['name'], strrpos($_FILES['datei']['name'], '.')+1));
if(!in_array($endung, $erlaubte_endungen))
$errors[] = "Die Dateiendung muss .jpeg .jpg oder .pdf lauten. ";
// Prüft ob die Datei die richtige grösse hat
if($_FILES['datei']['size'] > 10*1024*1024)
$errors[] = "Bitte wählen Sie eine Datei aus, die kleiner als 10 MB ist.";
}
if(count($errors)){
echo "Ihre Datei konnte nicht gespeichert werden.<br>\n".
"<br>\n";
foreach($errors as $error)
echo $error."<br>\n";
}
else {
//Datei speichern
$uploaddir = 'noten/';
//Neuen Dateinamen erstellen
$Name = "DRUM_".substr(microtime(),-8).".".$endung;
//Upload
if (move_uploaded_file($_FILES['datei']['tmp_name'], $uploaddir.$Name)) {
$sql = "INSERT INTO
notes
(UserID,
Newname,
Interpret,
Album,
Songname,
Date
)
VALUES
('".mysql_real_escape_string(trim($_SESSION['UserID']))."',
'".mysql_real_escape_string(trim($Name))."',
'".mysql_real_escape_string(trim($_POST['Interpret']))."',
'".mysql_real_escape_string(trim($_POST['Album']))."',
'".mysql_real_escape_string(trim($_POST['Songname']))."',
CURDATE()
)
";
mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
echo "Vielen Dank!<br>\n".
"Ihre Daten wurden erfolgreich kopiert.\n<br>".
"Nach erfolgreicher Überprüfung, wird die Datei in der Downloadpage erscheinen.\n<br>";
}
}
?>
|
|
|
02.02.2007 17:53 Uhr
|
|
Flitze
|
Administrator
|
|
registriert
|
17.10.2006
|
wohnt in
|
Eschwege
|
Beiträge
|
332
|
|
PHP:
<?php
// Prüft ob die Datei die richtige grösse hat
if($_FILES['datei']['size'] > 10*1024*1024)
$errors[] = "Bitte wählen Sie eine Datei aus, die kleiner als 10 MB ist.";
}
?>
An dieser Stelle machst du ne Klammer zu, die nicht geöffnet wird. Diese Klammer schließt dann dieses if:
PHP:
<?php
if(isset($_POST['Send_x']) AND $_POST['Send_x'] == "Upload") {
?>
Darin werden aber die Variable $error und $endung definiert.
Naja wie dem auch sei, es liegt jedenfalls an der falschen Klammer, wäre jetzt etwas aufwendig dir zu erläutern, was dadurch alles falsch läuft
|
|
|
02.02.2007 18:33 Uhr
|
|
mdean
|
Forenposter
|
|
registriert
|
03.01.2007
|
wohnt in
|
Schweiz
|
Beiträge
|
90
|
|
Danke! Klappt jetzt!
|
|
|
10.02.2007 14:43 Uhr
|
|
mdean
|
Forenposter
|
|
registriert
|
03.01.2007
|
wohnt in
|
Schweiz
|
Beiträge
|
90
|
|
So hab wieder eine Frage. Den Vorschlag den du mit der Downloadpage gebracht hast ist zwar gut, aber ich such was anderes. Ich hab mir das so vorgestellt:
Ich mach eine Buchstabennavi bei der die Leute den Anfangsbuchstaben jedes Interpreten auswählen können. Es werden dann alle Interpreten mit diesem Buchstaben angezeigt. Dann kann man einen Interpreten anklicken und schliesslich werden alle Noten von diesem aufgelistet.
Weisst du wie ich sowas machen könnte?
mdean
|
|
|
10.02.2007 15:01 Uhr
|
|
Flitze
|
Administrator
|
|
registriert
|
17.10.2006
|
wohnt in
|
Eschwege
|
Beiträge
|
332
|
|
Den Buchstaben kannst du als $_GET-Parameter übergeben
download.php?interpret=e
Im Script prüfst du dann, ob 'interpret' übergeben wurde und führst dann, falls ja, einen MySQL-Query mit der LIKE Expression durch.
PHP:
<?php
// Navi-Links erzeugen
$alphabeth = array('a','b','c', ...);
foreach($alphabeth as $letter)
echo "<a href=\"".$_SERVER['PHP_SELF']."?interpret=".$letter."\"></a> | \n";
if(isset($_GET['interpret'])){
// auf ein Zeichen kürzen
$_GET['interpret'] = substr($_GET['interpret'],0,1);
$sql = "SELECT
Datei,
Interpret,
Titel
FROM
Interpret
WHERE
Name LIKE '".mysql_real_escape_string($_GET['interpret'])."%'
";
$result = mysql_query($sql);
// Ausgabe
}
else
echo "Wählen Sie bitte den Anfangsbuchstaben des gewünschten Interpreten aus.\n";
?>
Nicht getestet!
|
|
|
11.02.2007 10:34 Uhr
|
|
mdean
|
Forenposter
|
|
registriert
|
03.01.2007
|
wohnt in
|
Schweiz
|
Beiträge
|
90
|
|
Die Abfrage funktioniert, sodass nur die noten angezeigt werden die eine Freigabe erhalten haben. Aber das mit der Navigation funktioniert nicht. Es wird einfach folgendes angezeigt:
| | | | | | | Wählen Sie bitte den Anfangsbuchstaben des gewünschten Interpreten aus.
Wie könnte man es noch so einstellen, dass am anfang einfach die Interpreten angezeigt werden mit dem Buchstaben a.
Danke für deine Hilfe
|
|
|
11.02.2007 14:37 Uhr
|
|
Flitze
|
Administrator
|
|
registriert
|
17.10.2006
|
wohnt in
|
Eschwege
|
Beiträge
|
332
|
|
Zitat: Wie könnte man es noch so einstellen, dass am anfang einfach die Interpreten angezeigt werden mit dem Buchstaben a.
PHP:
<?php
$_GET['interpret'] = isset($_GET['interpret'])?$_GET['interpret']:'a';
?>
^-- an den Anfang schreiben.
Poste mal deinen bisherigen Code.
|
|
|
11.02.2007 14:54 Uhr
|
|
mdean
|
Forenposter
|
|
registriert
|
03.01.2007
|
wohnt in
|
Schweiz
|
Beiträge
|
90
|
|
Also hier mal der von mir der abgeänderte code. Muss ich dann noch jeden Buchstaben einzeln reinschreiben (dass mit den "..." hat nicht funkioniert)? Ich habs jetzt einfach mal bis g gemacht.
PHP:
<?php
$_GET['Interpret'] = isset($_GET['Interpret'])?$_GET['Interpret']:'A';
// Navi-Links erzeugen
$alphabeth = array('A','B','C', 'D', 'E', 'F', 'G');
foreach($alphabeth as $letter)
echo "<a href=\"".$_SERVER['PHP_SELF']."?Interpret=".$letter."\"></a> | \n";
if(isset($_GET['Interpret'])){
// auf ein Zeichen kürzen
$_GET['Interpret'] = substr($_GET['Interpret'],0,1);
$sql = "SELECT
NewName,
Interpret,
Songname
FROM
notes
WHERE
Interpret LIKE '".mysql_real_escape_string($_GET['Interpret'])."%'
";
$result = mysql_query($sql);
// Ausgabe
}
else
echo "Wählen Sie bitte den Anfangsbuchstaben des gewünschten Interpreten aus.\n";
?>
|
|
|
Seite:
|
<
1
2
3
4
5
>
|
|
|
Powered by
|
Pascal Landau
|
© 2006
|
MyWebsolution.de
|
Designed by
|
Pascal Landau
|
© 2006
|
MyWebsolution.de
|
|
|
|
|
|