Zudila AG

Webseiten-Erstellung
Webseiten-Programmierung
Webseiten-Wartung
8057 Zürich
Tel: +41 44 310 14 25
Fax: +41 44 310 14 26
Mob: +41 79 691 87 58
vCard, Skype: juergzuerich Skype: juergzuerich

Funktion mit PHP & MySQL: Bildupload v1.2 mit Zeilennummern anzeigen

PHP & MySQL: Bildupload v1.2

<!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('sicher/inc.php');

// Der Link zum Uploadverzeichnis
$bildlink = 'bildup' ;
// 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 &#252;berschreitet die erlaubte
    Datei-Gr&#246;sse von 500 kByte!<br /><br /></span>'
;
  }
  elseif ( strlen( $dateiname ) > '25') {
    $dateinamengroesse = strlen($dateiname) - 25 ;
    $fehlermeldung = '<span class="rot"><br /><br />
    Der Dateiname &#252;berschreitet die maximal erlaubte Zeichenl&#228;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&#228;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'].'/??????/'.$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 1" ; }
if ( $bild_2 == "" ) { $bildnr = "bild_2" ; $titeltext = "Foto 2, Bildtitel 2" ; }
if ( $bild_1 == "" ) { $bildnr = "bild_1" ; $titeltext = "Foto 1, Bildtitel 3" ; }
?>

<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>'
;
}
?>
<!--
Quelle Script: http://www.zudila.ch/scripte/php_bildup.php
Zudila Bildupload v1.2, GPL
-->

</body>
</html>
 
Script Update: 08.05.08

Copyright © 1998 - 2010, Zudila AG, CH 8057 Zürich Diese Seite (www.zudila.ch/scripte/php_bildup_anz.php) wurde aktualisiert: 08.05.08

Besucher heute: 89 Seitenaufrufe heute: 168 gerade online: 2
Besucher gestern: 207 Seitenaufrufe gestern: 432 max. online: 135
Besucher pro Tag: 206,75 Seitenaufrufe pro Tag: 677,54 Eigene Seitenaufrufe: 6
Valid XHTML 1.0! Valid CSS! ICRA Best viewed with any browser

www.zudila.ch   info@zudila.ch

nach oben
Herr Jürg Dieter Lüthard Jürg D. Lüthard Zudila AG www.zudila.ch Krokusweg 6 Switzerland 8057 Zürich Zürich +41 44 310 14 25 +41 79 691 87 58 +41 44 310 14 26
N 47º 24.2416 O 8º 32.9866
business Webseiten erstellen, programmieren, warten /
Web pages provide, program, wait /
Les pages Web fournissent, programment, attendent