| Neuer Benutzer
Registriert seit: 28.08.2010
Beiträge: 6
PHP-Kenntnisse: Anfänger
| Hallo,
der Thread ist zwar schon etwas älter, möchte ihn aber an dieser Stelle nochmals aufgreifen, da ich dieses Script nun ebenfalls ausprobiert habe und es auch bei mir nicht funktioniert.
(@litterauspirna: die Variable @conn befindet sich in der inc.php)
Die Datei bildup.php PHP-Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
</head>
<body>
<?php
include('inc.php');
// Der Link zum Uploadverzeichnis
$bildlink = 'bildupload' ;
// Für die DB, im Beispiel immer Satz-Nr. 1
$selection = 1 ;
// Bildbreite der zu erstellenden Bilder in Pixel festlegen.
$bildbreite_norm = '200';
$bildbreite_small = '50';
// löschen --------------------------------------------------------------------
if (isset($_POST['delete'])) {
$bild_bild = strip_tags($_POST['bild_bild']);
$bild_db = strip_tags($_POST['bild_db']);
// löschen in Ordner
$bildteil = split("[.]",$bild_bild) ;
$bild_bild_norm = $bildteil[0].'_norm.'.$bildteil[1] ;
$bild_bild_small = $bildteil[0].'_small.'.$bildteil[1] ;
// Fehlermeldung vermeiden, falls Datei nicht vorhanden!
$dateivorhanden_norm = file_exists($_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$bild_bild_norm) ;
if ($dateivorhanden_norm) {
unlink( $_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$bild_bild_norm ) ;
}
$dateivorhanden_small = file_exists($_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$bild_bild_small) ;
if ($dateivorhanden_small) {
unlink( $_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$bild_bild_small ) ;
}
// leeren in der Datenbank
$query = " UPDATE bildup
SET ".$bild_db." = ''
WHERE id_bild = '".$selection."' " ;
$result = mysql_query($query) ;
}
// hochladen ------------------------------------------------------------------
if (isset($_POST['submit'])) {
$id_bild = strip_tags($_POST['id_bild']);
// $verfall = strip_tags($_POST['verfall']); // Hier nicht verwendet!
$bildnummer = strip_tags($_POST['bildnummer']);
$dateiname = $_FILES['datei']['name'] ;
$dateitype = $_FILES['datei']['type'] ;
$dateisize = $_FILES['datei']['size'] ;
// prüfen vor hochladen
if (empty($dateiname)) {
$fehlermeldung = '<span class="rot"><br /><br />
Du musst eine Datei angeben!<br /><br /></span>' ;
}
elseif ( $dateisize > '524000') {
$fehlermeldung = '<span class="rot"><br /><br />
Deine Datei überschreitet die erlaubte
Datei-Grösse von 500 kByte!<br /><br /></span>' ;
}
elseif ( strlen( $dateiname ) > '25') {
$dateinamengroesse = strlen($dateiname) - 25 ;
$fehlermeldung = '<span class="rot"><br /><br />
Der Dateiname überschreitet die maximal erlaubte Zeichenlänge
um <strong>'.$dateinamengroesse.'</strong>Zeichen!<br />
<br /></span>' ;
}
elseif ( $dateitype == 'image/jpeg' || $dateitype == 'image/pjpeg' || $dateitype == 'image/x-png' ) {
//Wandelt einige Sonderzeichen um
$dateiname1 = strtr("$dateiname", " äöü�*ôûáèéçß", "_aouaouaeecs") ;
//Wandelt den Dateinamen in Kleinbuchstaben um
$dateiname2 = strtolower("$dateiname1") ;
$bildteil = split("[.]",$dateiname2) ;
$dateivorhanden = file_exists($_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$bildteil[0].'_norm.'.$bildteil[1]) ;
if ($dateivorhanden) {
$fehlermeldung = '<span class="rot"><br /><br />
Eine Datei mit dem Dateinamen <strong>'.$dateiname2.'</strong>
ist bereits vorhanden, bitte wähle einen anderen Namen.<br />
<br /></span>' ;
}
else {
// hochladen der Ursprungsdatei -----------------------------------------
move_uploaded_file( $_FILES['datei']['tmp_name'], $_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$dateiname2 ) ;
// copy in Endverzeichnis
// copy($_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$dateiname2, $_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$dateiname2 ) ;
// löschen temp-datei
// unlink( $_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$dateiname2 ) ;
// nun Grösse bestimmen und berechnen
$gross = getimagesize( $_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$dateiname2 ) ;
$breite = $gross[0] ;
$hoehe = $gross[1] ;
$typ = $gross[2] ;
$hoehe_norm = $hoehe * $bildbreite_norm / $breite ;
$image_norm = imagecreatetruecolor( $bildbreite_norm , $hoehe_norm ) ;
$hoehe_small = $hoehe * $bildbreite_small / $breite ;
$image_small = imagecreatetruecolor( $bildbreite_small , $hoehe_small ) ;
// neue Bildnamen
$bild_s = split("[.]",$dateiname2);
$dateiname2_norm = $bild_s[0].'_norm.'.$bild_s[1] ;
$dateiname2_small = $bild_s[0].'_small.'.$bild_s[1] ;
// Normbild erstellen
switch ($typ) {
case 2:
$image = imagecreatefromjpeg( $_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$dateiname2 ) ;
break;
case 3:
$image = imagecreatefrompng( $_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$dateiname2 ) ;
break;
}
imagecopyresampled($image_norm, $image, 0, 0, 0, 0, $bildbreite_norm, $hoehe_norm, $breite, $hoehe);
switch ($typ) {
case 2:
imagejpeg($image_norm, $_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$dateiname2_norm , 100 );
break;
case 3:
imagepng($image_norm, $_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$dateiname2_norm );
break;
}
// Smallbild erstellen
switch ($typ) {
case 2:
$image = imagecreatefromjpeg( $_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$dateiname2 ) ;
break;
case 3:
$image = imagecreatefrompng( $_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$dateiname2 ) ;
break;
}
imagecopyresampled($image_small, $image, 0, 0, 0, 0, $bildbreite_small, $hoehe_small, $breite, $hoehe);
switch ($typ) {
case 2:
imagejpeg($image_small, $_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$dateiname2_small );
break;
case 3:
imagepng($image_small, $_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$dateiname2_small );
break;
}
// Ursprüngliches Bild löschen
unlink( $_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$dateiname2 ) ; // zur Probe auskommentieren!
// DB eintragen
$query = "UPDATE bildup
SET ".$bildnummer." = '".$dateiname2."', verfall = ".$verfall."
WHERE id_bild = ".$id_bild." " ;
mysql_query($query, $conn);
$fehlermeldung = '<br /><br />Dein Foto <strong>'.$dateiname2.'</strong>
wurde erfolgreich abgeschickt!<br /><br />' ;
}
}
else {
$fehlermeldung = '<span class="rot"><br /><br />
Es werden nur Dateien von folgendem Typ zum Upload akzeptiert:<br /><br />
<strong>jpeg, jpg, jpe, png</strong><br /><br />
Dein Datei-Typ: '.$dateitype.'<br /><br /></span>';
}
// auf NULL setzen ---------------------------
$submit = "" ; $dateityp = "" ; $dateiname = "" ; $dateiname2 = "" ;
$dateiname2_small = "" ;
$hoehe = "" ; $breite = "" ;
}
// aus DB zur Anzeige ---------------------------------------------------------
$query = " SELECT *
FROM bildup
WHERE id_bild = '".$selection."' " ;
$result = mysql_query($query, $conn);
$row = mysql_fetch_array($result);
$bild_1 = $row['bild_1'] ;
if ($bild_1 != '') {
$bild_1_s = split("[.]",$bild_1);
$bild_1_norm = $bild_1_s[0].'_norm.'.$bild_1_s[1];
$bild_1_small = $bild_1_s[0].'_small.'.$bild_1_s[1];
$gross1_norm = getimagesize($_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$bild_1_norm);
$gross1_small = getimagesize($_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$bild_1_small);
}
$bild_2 = $row['bild_2'] ;
if ($bild_2 != '') {
$bild_2_s = split("[.]",$bild_2);
$bild_2_norm = $bild_2_s[0].'_norm.'.$bild_2_s[1];
$bild_2_small = $bild_2_s[0].'_small.'.$bild_2_s[1];
$gross2_norm = getimagesize($_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$bild_2_norm);
$gross2_small = getimagesize($_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$bild_2_small);
}
$bild_3 = $row['bild_3'] ;
if ($bild_3 != '') {
$bild_3_s = split("[.]",$bild_3);
$bild_3_norm = $bild_3_s[0].'_norm.'.$bild_3_s[1];
$bild_3_small = $bild_3_s[0].'_small.'.$bild_3_s[1];
$gross3_norm = getimagesize($_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$bild_3_norm);
$gross3_small = getimagesize($_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$bild_3_small);
}
// welche Bilder werden als nächstes hochgeladen
if ( $bild_3 == "" ) { $bildnr = "bild_3" ; $titeltext = "Foto 3, Bildtitel 3" ; }
if ( $bild_2 == "" ) { $bildnr = "bild_2" ; $titeltext = "Foto 2, Bildtitel 2" ; }
if ( $bild_1 == "" ) { $bildnr = "bild_1" ; $titeltext = "Foto 1, Bildtitel 1" ; }
?>
<h2>Beispiel</h2>
<center>
<?php echo $fehlermeldung ; ?>
<table>
<colgroup>
<col width="50" />
<col width="200" />
<col />
</colgroup>
<tr>
<td>
<strong>Foto 1</strong><br />
<?php
if ( $bild_1 != "" ) {
echo '
<div>
<img src="/'.$bildlink.'/'.$bild_1_small.'" alt="Bildtitel 1" title="Bildtitel 1" width="'.$bildbreite_small.'" height="'.$gross1_small[1].'" />
</div>
</td>
<td>
Bildtitel 1<div>
<img src="/'.$bildlink.'/'.$bild_1_norm.'" alt="Bildtitel 1" title="Bildtitel 1" width="'.$bildbreite_norm.'" height="'.$gross1_norm[1].'" />
</div>
</td>
<td class="rechts">
'.$bild_1.'<br /><br />
<form action ="'.htmlspecialchars($_SERVER['PHP_SELF']).'" method ="post" name="meldung">
<input type="hidden" name="bild_db" value="bild_1" />
<input type="hidden" name="bild_bild" value="'.$bild_1.'" />
<input class="norm" type="submit" name="delete" value="Löschen" />
</form>
';
}
else {
echo '
</td>
<td>Bildtitel 1</td>
<td class="rechts">Kein Bild!
' ;
}
?>
</td>
</tr>
<tr><td colspan="3"><hr /></td></tr>
<tr>
<td>
<strong>Foto 2</strong><br />
<?php
if ( $bild_2 != "" ) {
echo '
<div>
<img src="/'.$bildlink.'/'.$bild_2_small.'" alt="Bildtitel 2" title="Bildtitel 2" width="'.$bildbreite_small.'" height="'.$gross2_small[1].'" />
</div>
</td>
<td>
Bildtitel 2<div>
<img src="/'.$bildlink.'/'.$bild_2_norm.'" alt="Bildtitel 2" title="Bildtitel 2" width="'.$bildbreite_norm.'" height="'.$gross2_norm[1].'" />
</div>
</td>
<td class="rechts">
'.$bild_2.'<br /><br />
<form action ="'.htmlspecialchars($_SERVER['PHP_SELF']).'" method ="post" name="meldung">
<input type="hidden" name="bild_db" value="bild_2" />
<input type="hidden" name="bild_bild" value="'.$bild_2.'" />
<input class="norm" type="submit" name="delete" value="Löschen" />
</form>
';
}
else {
echo '
</td>
<td>Bildtitel 2</td>
<td class="rechts">Kein Bild!
' ;
}
?>
</td>
</tr>
<tr><td colspan="3"><hr /></td></tr>
<tr>
<td>
<strong>Foto 3</strong><br />
<?php
if ( $bild_3 != "" ) {
echo '
<div>
<img src="/'.$bildlink.'/'.$bild_3_small.'" alt="Bildtitel 3" title="Bildtitel 3" width="'.$bildbreite_small.'" height="'.$gross3_small[1].'" />
</div>
</td>
<td>
Bildtitel 3<div>
<img src="/'.$bildlink.'/'.$bild_3_norm.'" alt="Bildtitel 3" title="Bildtitel 3" width="'.$bildbreite_norm.'" height="'.$gross3_norm[1].'" />
</div>
</td>
<td class="rechts">
'.$bild_3.'<br /><br />
<form action ="'.htmlspecialchars($_SERVER['PHP_SELF']).'" method ="post" name="meldung">
<input type="hidden" name="bild_db" value="bild_3" />
<input type="hidden" name="bild_bild" value="'.$bild_3.'" />
<input class="norm" type="submit" name="delete" value="Löschen" />
</form>
';
}
else {
echo '
</td>
<td>Bildtitel 3</td>
<td class="rechts">Kein Bild!
' ;
}
?>
</td>
</tr>
</table>
</center>
<?php
// Löschzeitpunkt festlegen, hier nicht verwendet!
$verfall = time() + 3600 ; // jetzt plus 60 Min.
// Formular zum Hochladen -----------------------------------------------------
if ( $bild_1 == "" || $bild_2 == "" || $bild_3 == "" ) {
echo '
<form method="post" action="'.htmlspecialchars($_SERVER['PHP_SELF']).'" enctype="multipart/form-data" name="meldung">
<table>
<tr>
<td>
Es wird hochgeladen: <strong>'.$titeltext.'<br />
Dateiname:</strong>
<input type="file" name="datei" size="80" />
</td>
</tr>
<tr>
<td>
<input type="hidden" name="id_bild" value="'.$selection.'" />
<input type="hidden" name="verfall" value="'.$verfall.'" />
<input type="hidden" name="bildnummer" value="'.$bildnr.'" />
<input class="norm" type="submit" value="hochladen" name="submit" />
</td>
</tr>
</table>
</form>
';
}
else {
echo '<center><div class="rot">Es können keine weiteren Bilder
hochgeladen werden.</div></center>' ;
}
?>
</body>
</html> Die Datei inc.php PHP-Code: <?php
# Variablen -------------
$liveserver = "xxx.de"; # Adresse des Liveservers ohne "www"
# MySQL Zugang ----------
$user = "xxxx"; # Username für die MySQL-DB
$pass = "xxxx"; # Kennwort für die MySQL-DB
$server = "localhost"; # Adresse/IP/Name des MySQL-Server
$dbase = "xxxx"; # Name der standardmaessig verwendeten Datenbank
$conn = @mysql_connect($server, $user, $pass);
if($conn) {
mysql_select_db($dbase, $conn);
}
else {
echo '
<center><span class="rot">
<strong>Eine Verbindung zur Datenbank konnte nicht hergestellt werden.<br />
Die Seite wird dadurch nicht richtig angezeigt!</strong>
</span></center>
';
error_log ('Fehler beim Verbindungsaufbau zu MySQL', 1, 'xx@xx.xx');
}
?> Die Tabelle wurde in der DB wurde erstellt und auch die richtigen Zugangsdaten in der inc.php eingetragen.
Bei einem Bildupload werden zwar die zwei Bilddateien auf dem Server erstellt und die Originaldatei gelöscht, es findet sich jedoch kein Eintrag in der DB.
Auf der Seite werden die Bilder dann auch nicht angezeigt.
Hoffe, dass mir jemand weiterhelfen kann!!!
Danke! |