Script anpassen

  • Themenstarter Themenstarter Blümchen
  • Beginndatum Beginndatum
Hallo,

ok hier mal der ganze Code:

PHP:
<?php
@include('funktionen.inc.php');  //bindet die Datei für die Funktionen ein
$d = $_GET['d'];
$c = $_GET['c'];
$u = $_GET['u'];
?>
<html>
<head>
<title>Bilder</title>
<script type="text-javascript">
function showPic(i) {
  var win;
  win = window.open("picture.php?b="+i,"bild"+i,"width=550,height=600,scrollbars=no,status=no,toolbar=no");
  win.focus();
}
</script>
<style type="text/css">
body, td, div, a { font-family:Arial; font-size:9pt; color:#000000; }
div { padding:5px; }
input { font-family:Arial; font-size:8pt; }
a:link    { text-decoration:none; }
a:visited { text-decoration:none; }
a:hover   { text-decoration:underline; }
a:active  { text-decoration:none; }
.datum {
font-weight: bold;
text-decoration: underline; }
</style>
</head>
<body scroll="auto">
<table border="0" width="100%" cellpadding="0" cellspacing="0">
  <tr>
    <td align="center" valign="top">
      <table border="0" cellpadding="0" cellspacing="0">
        <tr>
          <td valign="top"><table border="0" cellpadding="4" cellspacing="2">
              <?php
              if ($d == "" || $c == "") {
                $sql = @mysql_query("SELECT * FROM tblbilder ORDER BY datum DESC",$link);
                if (@mysql_num_rows($sql) > 0) {
                  while ($tmp = @mysql_fetch_array($sql)) {
                    $datum = $tmp[datum];
                    print "<tr>";
					print "<td colspan=3 class=\"datum\">".date("d.m.Y",$tmp[datum])."</td>";
                    print "</tr>";
                    $sql1 = @mysql_query("SELECT * FROM tblbilder WHERE datum='$datum' ORDER BY kategorie ASC",$link);
                    if (@mysql_num_rows($sql1) > 0) {
                      while ($tmp1 = @mysql_fetch_array($sql1)) {
                        $kds = holeDS("tblkategorien","id",$tmp1[kategorie]);
                        $cat = $tmp1[kategorie];
                        print "<tr>";
print "<td valign=top style=\"padding-left: 15px\"><a href=\"?d=".$datum."&c=".$cat."\">".$kds[kategorie]."</a></td>";                         if (@mysql_num_rows($sql2) > 0) {
                        	while ($tmp2 = @mysql_fetch_array($sql2)) {
                        	  $uds = holeDS("tbluser","id",$tmp2[benutzer]);
                        	  $anz = countBilder($datum,$cat,$tmp2[benutzer]);
                        	  if ($anz > 0) {
                              print "";
                              if ($uds[nickname] != "") print $uds[nickname];
                              else print $uds[vorname]." ".$uds[nachname];
                              print "</a>";
                              print " &nbsp; ".$anz."<br>";
                            }
                          }
                        }
                        print "</td>";
                        print "</tr>";
                      }
                    }
                  }
                }
              }
              elseif ($u == "") {
              	$sql = @mysql_query("SELECT * FROM tblbilder WHERE datum='$d' AND kategorie='$c' ORDER BY benutzer ASC",$link);
                if (@mysql_num_rows($sql) > 0) {
                  $x = 0;
                  while ($tmp = @mysql_fetch_array($sql)) {
                    if ( ( ( $x ) %5 ) == 0) {
                      print "</tr><tr>";
                    }
                    print "<td><a href=\"javascript:showPic(".$tmp[id].");\" title=\"Bild anzeigen\">";
                    $info = getimagesize($path.$tmp[bild]);
                    if ($info[0] == "" || $info[0] > 120) print "<img src=\"".$path.$tmp[bild]."\" width=\"120px\" border=\"0\" alt=\"Bild anzeigen\" galleryimg=\"no\">";
                    else print "<img src=\"".$path.$tmp[bild]."\" border=\"0\" alt=\"Bild anzeigen\" galleryimg=\"no\">";
                    print "</a></td>";
                    $x++;
                  }
                }
              }
              else {
                $sql = @mysql_query("SELECT * FROM tblbilder WHERE datum='$d' AND kategorie='$c' AND benutzer='$u' ORDER BY bild ASC",$link);
                print "<tr>";
                print "<td colspan=2>[ <a href=\"?\">zurück zur Übersicht</a> ]</td>";
                print "</tr>";
                if (@mysql_num_rows($sql) > 0) {
                  while ($tmp = @mysql_fetch_array($sql)) {
                    $split = explode("-",$tmp[bild]);
                    $num = substr($split[1],0,-4);
                    $uds = holeDS("tbluser","id",$tmp[benutzer]);
                    if ($uds[nickname] != "") $user = $uds[nickname];
                    else $user = $uds[vorname]." ".$uds[nachname];
                    print "<tr>";
                    print "<td valign=top>Bild ".$num."<br>von ".$user."</td>";
                    print "<td valign=top><a href=\"javascript:showPic(".$tmp[id].");\" title=\"Bild anzeigen\">";
                    $info = getimagesize($path.$tmp[bild]);
                    if ($info[0] == "" || $info[0] > 120) print "<img src=\"".$path.$tmp[bild]."\" width=\"120px\" border=\"0\" alt=\"Bild anzeigen\" galleryimg=\"no\">";
                    else print "<img src=\"".$path.$tmp[bild]."\" border=\"0\" alt=\"Bild anzeigen\" galleryimg=\"no\">";
                    print "</a></td>";
                    print "</tr>";
                  }
                }
                else {
                  print "<td align=center><font color=#CC3333>Es wurden noch keine Bilder in diese Kategorie eingetragen.</td>";
                }
              }
              ?>
            </table>
          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>
</body>
</html>

Gruß Blümchen
 
Ich hoffe dass ich jetzt nichts übersehen habe.... wie gesagt, ich kann es ja nicht testen.
Auf jedenfall haben da ganze Zeilen gefehlt.

PHP:
<?php 
@include('funktionen.inc.php'); //bindet die Datei für die Funktionen ein 
$d = $_GET['d']; 
$c = $_GET['c']; 
$u = $_GET['u']; 
?> 
<html> 
<head> 
<title>Bilder</title> 
<script type="text-javascript"> 
function showPic(i) { 
var win; 
win = window.open("picture.php?b="+i,"bild"+i,"width=550,height=600,scrollbars=no,status=no,toolbar=no"); 
win.focus(); 
} 
</script> 
<style type="text/css"> 
body, td, div, a { font-family:Arial; font-size:9pt; color:#000000; } 
div { padding:5px; } 
input { font-family:Arial; font-size:8pt; } 
a:link	{ text-decoration:none; } 
a:visited { text-decoration:none; } 
a:hover { text-decoration:underline; } 
a:active { text-decoration:none; } 
.datum { 
font-weight: bold; 
text-decoration: underline; } 
</style> 
</head> 
<body scroll="auto"> 
<table border="0" width="100%" cellpadding="0" cellspacing="0"> 
<tr> 
	<td align="center" valign="top"> 
	 <table border="0" cellpadding="0" cellspacing="0"> 
		<tr> 
		 <td valign="top"><table border="0" cellpadding="4" cellspacing="2"> 
			 <?php 
			 if ($d == "" || $c == "") { 
				$sql = @mysql_query("SELECT * FROM tblbilder ORDER BY datum DESC",$link); 
				if (@mysql_num_rows($sql) > 0) { 
				 while ($tmp = @mysql_fetch_array($sql)) { 
					$datum = $tmp[datum]; 
					print "<tr>"; 
					print "<td colspan=3 class=\"datum\">".date("d.m.Y",$tmp[datum])."</td>"; 
					print "</tr>"; 
					$sql1 = @mysql_query("SELECT * FROM tblbilder WHERE datum='$datum' ORDER BY kategorie ASC",$link); 
					if (@mysql_num_rows($sql1) > 0) { 
					 while ($tmp1 = @mysql_fetch_array($sql1)) { 
						$kds = holeDS("tblkategorien","id",$tmp1[kategorie]); 
						$cat = $tmp1[kategorie]; 
						print "<tr>"; 
						print "<td valign=top style=\"padding-left: 15px;\"><a href=\"?d=".$datum."&c=".$cat."\">".$kds[kategorie]."</a></td>";
						print "<td valign=top>"; 
						$sql2 = @mysql_query("SELECT * FROM tblbilder WHERE kategorie='$cat' ORDER BY benutzer",$link); 
						if (@mysql_num_rows($sql2) > 0) { 
							while ($tmp2 = @mysql_fetch_array($sql2)) { 
							 $uds = holeDS("tbluser","id",$tmp2[benutzer]); 
							 $anz = countBilder($datum,$cat,$tmp2[benutzer]); 
							 if ($anz > 0) { 
							 print "<a href=\"?d=".$datum."&c=".$cat."&u=".$tmp2[benutzer]."\">"; 
							 if ($uds[nickname] != "") print $uds[nickname]; 
							 else print $uds[vorname]." ".$uds[nachname]; 
							 print "</a>"; 
							 print " &nbsp; ".$anz."<br>"; 
							} 
						 } 
						} 
						print "</td>"; 
						print "</tr>"; 
					 } 
					} 
				 } 
				} 
			 } 
			 elseif ($u == "") { 
				 $sql = @mysql_query("SELECT * FROM tblbilder WHERE datum='$d' AND kategorie='$c' ORDER BY benutzer ASC",$link); 
				if (@mysql_num_rows($sql) > 0) { 
				 $x = 0; 
				 while ($tmp = @mysql_fetch_array($sql)) { 
					if ( ( ( $x ) %5 ) == 0) { 
					 print "</tr><tr>"; 
					} 
					print "<td><a href=\"javascript:showPic(".$tmp[id].");\" title=\"Bild anzeigen\">"; 
					$info = getimagesize($path.$tmp[bild]); 
					if ($info[0] == "" || $info[0] > 120) print "<img src=\"".$path.$tmp[bild]."\" width=\"120px\" border=\"0\" alt=\"Bild anzeigen\" galleryimg=\"no\">"; 
					else print "<img src=\"".$path.$tmp[bild]."\" border=\"0\" alt=\"Bild anzeigen\" galleryimg=\"no\">"; 
					print "</a></td>"; 
					$x++; 
				 } 
				} 
			 } 
			 else { 
				$sql = @mysql_query("SELECT * FROM tblbilder WHERE datum='$d' AND kategorie='$c' AND benutzer='$u' ORDER BY bild ASC",$link); 
				print "<tr>"; 
				print "<td colspan=2>[ <a href=\"?\">zurück zur Übersicht</a> ]</td>"; 
				print "</tr>"; 
				if (@mysql_num_rows($sql) > 0) { 
				 while ($tmp = @mysql_fetch_array($sql)) { 
					$split = explode("-",$tmp[bild]); 
					$num = substr($split[1],0,-4); 
					$uds = holeDS("tbluser","id",$tmp[benutzer]); 
					if ($uds[nickname] != "") $user = $uds[nickname]; 
					else $user = $uds[vorname]." ".$uds[nachname]; 
					print "<tr>"; 
					print "<td valign=top>Bild ".$num."<br>von ".$user."</td>"; 
					print "<td valign=top><a href=\"javascript:showPic(".$tmp[id].");\" title=\"Bild anzeigen\">"; 
					$info = getimagesize($path.$tmp[bild]); 
					if ($info[0] == "" || $info[0] > 120) print "<img src=\"".$path.$tmp[bild]."\" width=\"120px\" border=\"0\" alt=\"Bild anzeigen\" galleryimg=\"no\">"; 
					else print "<img src=\"".$path.$tmp[bild]."\" border=\"0\" alt=\"Bild anzeigen\" galleryimg=\"no\">"; 
					print "</a></td>"; 
					print "</tr>"; 
				 } 
				} 
				else { 
				 print "<td align=center><font color=#CC3333>Es wurden noch keine Bilder in diese Kategorie eingetragen.</td>"; 
				} 
			 } 
			 ?> 
			</table> 
		 </td> 
		</tr> 
	 </table> 
	</td> 
</tr> 
</table> 
</body> 
</html>
 
Zuletzt bearbeitet:
Hallo,

du mir ist das gerade noch was aufgefallen. Ich habe einBild hoch geladen hab dem das Datum 19.07.2005 gegeben und das musste ich sehen, dass er da wieder einen neue Rubrik anglegt hat. Hmm wie kann das sein. Eigentlich sollte das nicht der fall sein, denn er sollte da ja dann nur die Bilder zusammen zählen und dann hinten bei der Anzahl erhöhen und nicht gleich was neues anlegen.

Kannst du mir da noch kurz helfen? Wenn du willst dann kann ich dir auch mla das ganze Script Posten!

Gruß Blümchen

PS: Hier das Bild wie das nun aussieht!
 

Anhänge

  • Unbenannt4.JPG
    Unbenannt4.JPG
    21,3 KB · Aufrufe: 98
Mir ist grad noch ein kleiner Fehler aufgefallen.... ob der sich allerdings auswirkt glaube ich eher nicht, Code ist nochmal editiert.

Dass eine neu Rubrik angelegt wird, steht ganz sicher im zusammenhang mit MySQL.... denn dahin werden die Daten ja übergeben.
Wie Du ja von reptiler seinem Script weisst, habe ich bei dem Script überhaupt dass erste und bisher einzige mal mit MySQL zu tun gehabt.
In PHP stecke ich auch noch in den Anfängen, daher glaube ich nicht dass ich dir bei dem Problem helfen kann.... dass währe eher nur ein rumexperimentiren.
Wenn Du das gesamte Script doch posten willst, dann als ZIP.... denn ich denke dass es ja sicherlich mehrere Dateien sind.
 
Hallo,

hier mal die ganzen Dateien für eine Zip Datei ist das lieder zu groß.

Gruß Blümchen

Datei: db.inc

PHP:
<?php

$host = "localhost";     //Host (meist localhost)
$db   = "xxx"; //Name der Datenbank
$user = "xxx";          //Benutzername (offline meist root)
$pass = "xxx";          //Passwort
?>

Datei: funktionen.inc

PHP:
<?php
//Hier sind die Konfigurationen & Funktionen drin

################################ Konfigurationen ###############################

$path  = "bilder/"; //Pfad zum Bildordner
$kb    = 100;       //max. Größe der Dateien in kb
$breit = 500;       //max. Breite der Bilder
$hoch  = 500;       //max. Höhe der Bilder

if ($cid == "") $cid = $_GET['cid']; //gewählten Bereich festlegen

################################################################################

############################ Funktionen & Variable #############################

$max_size = $kb*1000;
$link;
connectToDB( );

//Db öffnen
function connectToDB( ) {
  global $link;
  @include ("db.inc.php");
  $link =  @mysql_connect( "$host", "$user", "$pass"  );
  if ( ! $link )
      die("Derzeit besteht leider keine Verbindung zur Datenbank.<br>Bitte versuchen Sie es zu einem späteren Zeitpunkt erneut.");
  @mysql_select_db( "$db", $link )
      or die("Die Datenbank kann derzeit nicht geöffnet werden.<br>Bitte versuchen Sie es zu einem späteren Zeitpunkt erneut.");
}

//holen individueller Variablen
function holeDS( $table, $fnm, $fval ) {
  global $link;
  $ergebnis = @mysql_query( "SELECT * FROM $table
              WHERE $fnm='$fval'", $link );
  if ( ! $ergebnis )
      die ( "holeDS fatal error: ".mysql_error() );
  return @mysql_fetch_array( $ergebnis );
}

//nächste Nummer in der Kategorie, an diesem Tag
function getNextNum($kategorie,$datum) {
  global $link;
  $sql = @mysql_query("SELECT * FROM tblbilder WHERE kategorie='$kategorie' AND datum='$datum' ORDER BY id ASC",$link);
  return @mysql_num_rows($sql)+1;
}

//zähle Bilder des Benutzers in einer Kategorie, eines Datums
function countBilder($datum,$cat,$user) {
  global $link;
  $sql = @mysql_query("SELECT * FROM tblbilder WHERE datum='$datum' AND kategorie='$cat' AND benutzer='$user'",$link);
  if (@mysql_num_rows($sql) == 1) $bilder = "1 Bild";
  else $bilder = @mysql_num_rows($sql)." Bilder";
  return $bilder;
}
//Dropdown Benutzer
function listeBenutzer() {
  global $link;
  $sql = @mysql_query("SELECT * FROM tbluser ORDER BY nickname ASC, nachname ASC",$link);
  if (@mysql_num_rows($sql) > 0) {
    print "<select name=\"benutzer\">";
    print "<option value=\"\">- - - Bitte wählen - - -</option>";
    while ($tmp = @mysql_fetch_array($sql)) {
      print "<option value=\"".$tmp[id]."\"";
      if ($_POST['benutzer'] == $tmp[id]) print " SELECTED";
      print ">";
      if ($tmp[nickname] != "") print $tmp[nickname];
      else print $tmp[vorname]." ".$tmp[nachname];
      print "</option>";
    }
    print "</select>";
  }
  else {
    print "<font color=\"#CC3333\">Es wurden noch keine Benutzer angelegt.</font>";
  }
}

//Dropdown Kategorien
function listeKategorien() {
  global $link;
  $sql = @mysql_query("SELECT * FROM tblkategorien ORDER BY kategorie ASC",$link);
  if (@mysql_num_rows($sql) > 0) {
    print "<select name=\"kategorie\">";
    print "<option value=\"\">- - - Bitte wählen - - -</option>";
    while ($tmp = @mysql_fetch_array($sql)) {
      print "<option value=\"".$tmp[id]."\"";
      if ($_POST['kategorie'] == $tmp[id]) print " SELECTED";
      print ">".$tmp[kategorie]."</option>";
    }
    print "</select>";
  }
  else {
    print "<font color=\"#CC3333\">Es wurden noch keine Kategorien angelegt.</font>";
  }
}
?>

Datei: index.php

PHP:
<?php
//Forumular

################################################################################
@include('funktionen.inc.php');  //bindet die Datei für die Funktionen ein
if (isset($_POST['add']) && $_POST['add'] != "") {
  @include('save.inc.php');
}

//Anfang Dokument - Formular
?>
<html>
<head>
<title>Bild-Upload</title>
<script type="text-javascript">
function pressedButton() {
  document.form.button.disabled = true;
}
</script>
<style type="text/css">
body, td, div, a { font-family:Arial; font-size:9pt; color:#000000; }
div { padding:5px; }
input { font-family:Arial; font-size:8pt; }
a:link    { text-decoration:none; }
a:visited { text-decoration:none; }
a:hover   { text-decoration:underline; }
a:active  { text-decoration:none; }
</style>
</head>
<body scroll="auto">
<table border="0" width="100%" cellpadding="0" cellspacing="0">
  <tr>
    <td align="center" valign="top">
      [ <a href="show.php">Übersicht</a> ] &nbsp;&nbsp;&nbsp; [ <a href="?">Bild-Upload</a> ] &nbsp;&nbsp;&nbsp; [ <a href="?cid=user">Benutzer anlegen</a> ] &nbsp;&nbsp;&nbsp; [ <a href="?cid=kategorie">Kategorie anlegen</a> ]
      <br>
      <form name="form" action="?" method="post" enctype="multipart/form-data" onSubmit="pressedButton()">
      <table bgcolor="#ECE9D8" border="0" cellpadding="12" cellspacing="0" style="border:2px outset #C0C0C0">
        <tr>
          <td valign="top">
            <table bgcolor="#FFFFFF" border="0" cellpadding="5" cellspacing="0" style="border:1px solid #C0C0C0">
              <tr>
                <td valign="top">
                  <fieldset style="padding:20px">
                    <?php
                    #################### Bilder hochladen ######################
                    if ($cid == "") {
                      ?>
                      <input type="hidden" name="add" value="bild">
                      <legend>Bild - Upload</legend>
                      <div align="justify">Hier kannst Du die Bilder hochladen. Bedenke, dass ein Bild max. <?= $kb; ?> groß, <?= $breit; ?> breit und <?= $hoch; ?> hoch sein darf.</div>
                      <table width="100%" border="0" cellpadding="4" cellspacing="2">
                        <tr>
                          <td>Benutzer:</td>
                          <td><?php listeBenutzer(); ?></td>
                        </tr>
                        <tr>
                          <td>Kategorie:</td>
                          <td><?php listeKategorien(); ?></td>
                        </tr>
                        <tr>
                          <td>Datum:</td>
                          <td>
                            <input type="text" name="tag" value="<?php if ($tag == "") print "tt"; else print $tag; ?>" onFocus="if (this.form.tag.value=='tt') this.form.tag.value=''" size="4" maxlength="2">
                            <input type="text" name="monat" value="<?php if ($monat == "") print "mm"; else print $monat; ?>" onFocus="if (this.form.monat.value=='mm') this.form.monat.value=''" size="4" maxlength="2">
                            <input type="text" name="jahr" value="<?php if ($jahr == "") print "jjjj"; else print $jahr; ?>" onFocus="if (this.form.jahr.value=='jjjj') this.form.jahr.value=''" size="8" maxlength="4">
                          </td>
                        </tr>
                        <tr>
                          <td>Bild:</td>
                          <td><input type="file" name="userfile" value="" size="25"></td>
                        </tr>
                      </table>
                      <br>
                      <div align="right"><input type="submit" name="button" value="Bild hochladen"></div>
                      <?php
                    }
                    #################### Benutzer anlegen ######################
                    elseif ($cid == "user") {
                      ?>
                      <input type="hidden" name="add" value="benutzer">
                      <legend>Benutzer anlegen</legend>
                      <div align="justify">Beachte, dass derzeit keines der Felder Pflichtfelder sind. Die Felder sind natürlich jederzeit erweiterbar.</div>
                      <table width="100%" border="0" cellpadding="4" cellspacing="2">
                        <tr>
                          <td>Vorname</td>
                          <td><input type="text" name="vorname" value="<?= $vorname; ?>" size="30" maxlength="64"></td>
                        </tr>
                        <tr>
                          <td>Nachname</td>
                          <td><input type="text" name="nachname" value="<?= $nachname; ?>" size="30" maxlength="64"></td>
                        </tr>
                        <tr>
                          <td>Nickname</td>
                          <td><input type="text" name="nickname" value="<?= $nickname; ?>" size="30" maxlength="32"></td>
                        </tr>
                        <tr>
                          <td>Email</td>
                          <td><input type="text" name="email" value="<?= $email; ?>" size="30" maxlength="128"></td>
                        </tr>
                      </table>
                      <br>
                      <div align="right"><input type="submit" name="button" value="Benutzer anlegen"></div>
                      <?php
                    }
                    ################### Kategorien anlegen #####################
                    elseif ($cid == "kategorie") {
                      ?>
                      <input type="hidden" name="add" value="kategorie">
                      <legend>Kategorie anlegen</legend>
                      
                      <div align="justify">Hier kannst Du die Kategorien anlegen. Ich glaube, da gibt es nicht viel zu zu sagen.</div>
                      <table width="100%" border="0" cellpadding="4" cellspacing="2">
                        <tr>
                          <td>Kategorie</td>
                          <td><input type="text" name="kategorie" value="<?= $kategorie; ?>" size="30" maxlength="64"></td>
                        </tr>
                      </table>
                      <br>
                      <div align="right"><input type="submit" name="button" value="Kategorie anlegen"></div>
                      <?php
                    }
                    ############################################################
                    ?>
                  </fieldset>
            </table>
          </td>
        </tr>
      </table>
      </form>
    </td>
  </tr>
</table>
<?php
//Fehler- bzw. Erfolgsmeldungen anzeigen
if ($error != "") {
  print "<script type=\"text/javascript\">alert('".$error."');</script>";
}
?>
</body>
</html>

Datei: picture

PHP:
<?php
//Bild in Originalgröße

################################################################################
@include('funktionen.inc.php');  //bindet die Datei für die Funktionen ein
$ds = holeDS("tblbilder","id",$_GET['b']);
$bild = $ds[bild];
?>
<html>
<head>
<title>Bild in Originalgröße</title>
</head>
<body scroll="no">
<table width="100%" height="100%" border="0">
  <td align="center" valign="middle">
    <img src="<?= $path.$bild; ?>" border="0" alt="" gallerying="no">
  </td>
</table>
</body>
</html>

Datei: save.inc

PHP:
<?php
//Hier werden die einzelnen Bereiche gespeichert

################################################################################

//Bilder
if (isset($_POST['add']) && $_POST['add'] == "bild") {
	$benutzer  = $_POST['benutzer'];
	$kategorie = $_POST['kategorie'];
	$tag       = trim($_POST['tag']);
	$monat     = trim($_POST['monat']);
	$jahr      = trim($_POST['jahr']);
	if ($benutzer == "") {
    $error = "Es wurde kein Benutzer gewählt.";
  }
  elseif ($kategorie == "") {
    $error = "Es wurde keine Kategorie gewählt.";
  }
  elseif (!checkdate($monat,$tag,$jahr)) {
    $error = "Das Datum ist ungültig.";
  }
  elseif (!isset($HTTP_POST_FILES['userfile'])) {
    $error = "Es wurde keine Datei ausgewählt.";
  }
  else {
    $datum = mktime(0,0,0,$monat,$tag,$jahr);
    if (is_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'])) {
      $info = getimagesize($HTTP_POST_FILES['userfile']['tmp_name']);
      $oBreite = $info[0];
      $oHoehe  = $info[1];
      if ($HTTP_POST_FILES['userfile']['size']>$max_size) { 
        $error = "Die Datei darf maximal ".$kb." kb haben.";
      }
      elseif ($oBreite>$breit) { 
        $error = "Die Datei darf maximal ".$breit." px breit sein.";
      }
      elseif ($hoehe>$max_hight) { 
        $error = "Die Datei darf maximal ".$hoch." px hoch sein.";
      }
      elseif (ereg(" ",$HTTP_POST_FILES['userfile']['name']) || eregi("ä|ü|ö",$HTTP_POST_FILES['userfile']['name'])) {
        $error = "Der Datei-Name darf keine Umlaute oder Leerzeichen enthalten.";
      }
      else{
        if (($HTTP_POST_FILES['userfile']['type']=="image/gif") || ($HTTP_POST_FILES['userfile']['type']=="image/pjpeg") || ($HTTP_POST_FILES['userfile']['type']=="image/jpeg") || ($HTTP_POST_FILES['userfile']['type']=="image/png")) {
          $end = substr($HTTP_POST_FILES['userfile']['name'],-3);
          $num = getNextNum($kategorie,$datum);
          $bild = $datum."-".$num.".".$end;
          $res = @copy($HTTP_POST_FILES['userfile']['tmp_name'], $path .$bild);
          if (!is_writable($path)) {
            @clearstatcache();
            @chmod($path,0777);
          }
          if (!$res) {
            $error = "Uploadfehler!\\nPrüfe die Rechte des Ordners.";
          }
          else {
            $error = "Das Bild wurde erfolgreich hochgeladen";
            if (@mysql_query("INSERT INTO tblbilder (benutzer,kategorie,datum,bild) VALUES ('$benutzer','$kategorie','$datum','$bild')",$link)) {
            	@clearstatcache();
              @chmod($path.$bild,0777);
              $error .= "\\n und in die Datenbank eingetragen.";
            	$_POST['benutzer']  = "";
            	$_POST['kategorie'] = "";
            	$tag   = "";
            	$monat = "";
            	$jahr  = "";
            }
            else {
              $error .= ".\\nDer Eintrag in der Datenbank konnte leider nicht vorgenommen werden.";
              $error .= "\\nFehler: ".addslashes(@mysql_error());
            }
          }
        }
        else {
          $error = "Der Dateitype ist nicht zugelassen.";
        }
      }
    }
  }
  $cid = "";
}

//Benutzer
if (isset($_POST['add']) && $_POST['add'] == "benutzer") {
	$vorname  = trim($_POST['vorname']);
	$nachname = trim($_POST['nachname']);
	$nickname = trim($_POST['nickname']);
	$email    = trim($_POST['email']);
	/* Abfragen ausgeschaltet
	if ($vorname == "") {
    $error = "Bitte den Vornamen angeben.";
    $cid = "user";
  }
  elseif ($nachname == "") {
    $error = "Bitte den Nachnamen angeben.";
    $cid = "user";
  }
  elseif ($nickname == "") {
    $error = "Bitte den Nicknamen angeben.";
    $cid = "user";
  }
  elseif ($email == "") {
    $error = "Bitte die Email-Adresse angeben.";
    $cid = "user";
  }
  elseif () {
    $error = "Die Email-Adresse ist ungültig.";
    $cid = "user";
  }
  else {
  */
    if (@mysql_query("INSERT INTO tbluser (vorname,nachname,nickname,email) VALUES ('$vorname','$nachname','$nickname','$email')",$link)) {
      $error = "Der Benutzer wurde hinzugefügt.";
      $cid = "";
    }
    else {
      $error = "Beim Anlegen des Benutzers ist ein Fehler aufgetreten.\\nFehler: ".addslashes(@mysql_error());
      $cid = "user";
    }
  //}
}

//Kategorien
if (isset($_POST['add']) && $_POST['add'] == "kategorie") {
	$kategorie = trim($_POST['kategorie']);
	if ($kategorie == "") {
    $error = "Es wurde keine Kategorie angegeben.";
    $cid = "kategorie";
  }
  else {
    if (@mysql_query("INSERT INTO tblkategorien (kategorie) VALUES ('$kategorie')",$link)) {
      $error = "Die Kategorie wurde hinzugefügt.";
      $cid = "";
    }
    else {
      $error = "Beim Anlegen der Kategorie ist ein Fehler aufgetreten.\\nFehler: ".addslashes(@mysql_error());
      $cid = "kategorie";
    }
  }
}
?>

Datei: show

PHP:
<?php
@include('funktionen.inc.php');  //bindet die Datei für die Funktionen ein
$d = $_GET['d'];
$c = $_GET['c'];
$u = $_GET['u'];
?>
<html>
<head>
<title>Bilder</title>
<script type="text-javascript">
function showPic(i) {
  var win;
  win = window.open("picture.php?b="+i,"bild"+i,"width=550,height=600,scrollbars=no,status=no,toolbar=no");
  win.focus();
}
</script>
<style type="text/css">
body, td, div, a { font-family:Arial; font-size:9pt; color:#000000; }
div { padding:5px; }
input { font-family:Arial; font-size:8pt; }
a:link    { text-decoration:none; }
a:visited { text-decoration:none; }
a:hover   { text-decoration:underline; }
a:active  { text-decoration:none; }
.datum {
font-weight: bold;
text-decoration: underline; }
</style>
</head>
<body scroll="auto">
<table border="0" width="100%" cellpadding="0" cellspacing="0">
  <tr>
    <td align="center" valign="top">
      <table border="0" cellpadding="0" cellspacing="0">
        <tr>
          <td valign="top"><table border="0" cellpadding="4" cellspacing="2">
              <?php
              if ($d == "" || $c == "") {
                $sql = @mysql_query("SELECT * FROM tblbilder ORDER BY datum DESC",$link);
                if (@mysql_num_rows($sql) > 0) {
                  while ($tmp = @mysql_fetch_array($sql)) {
                    $datum = $tmp[datum];
                    print "<tr>";
					print "<td colspan=3 class=\"datum\">".date("d.m.Y",$tmp[datum])."</td>";
                    print "</tr>";
                    $sql1 = @mysql_query("SELECT * FROM tblbilder WHERE datum='$datum' ORDER BY kategorie ASC",$link);
                    if (@mysql_num_rows($sql1) > 0) {
                      while ($tmp1 = @mysql_fetch_array($sql1)) {
                        $kds = holeDS("tblkategorien","id",$tmp1[kategorie]);
                        $cat = $tmp1[kategorie];
                        print "<tr>";
print "<td valign=top><a href=\"?d=".$datum."&c=".$cat."\">".$kds[kategorie]."</a></td>"; 
                        print "<td valign=top>";
                        $sql2 = @mysql_query("SELECT * FROM tblbilder WHERE kategorie='$cat' ORDER BY benutzer",$link);
                        if (@mysql_num_rows($sql2) > 0) {
                        	while ($tmp2 = @mysql_fetch_array($sql2)) {
                        	  $uds = holeDS("tbluser","id",$tmp2[benutzer]);
                        	  $anz = countBilder($datum,$cat,$tmp2[benutzer]);
                        	  if ($anz > 0) {
                              print "";
                              if ($uds[nickname] != "") print $uds[nickname];
                              else print $uds[vorname]." ".$uds[nachname];
                              print "</a>";
                              print " &nbsp; ".$anz."<br>";
                            }
                          }
                        }
                        print "</td>";
                        print "</tr>";
                      }
                    }
                  }
                }
              }
              elseif ($u == "") {
              	$sql = @mysql_query("SELECT * FROM tblbilder WHERE datum='$d' AND kategorie='$c' ORDER BY benutzer ASC",$link);
                if (@mysql_num_rows($sql) > 0) {
                  $x = 0;
                  while ($tmp = @mysql_fetch_array($sql)) {
                    if ( ( ( $x ) %5 ) == 0) {
                      print "</tr><tr>";
                    }
                    print "<td><a href=\"javascript:showPic(".$tmp[id].");\" title=\"Bild anzeigen\">";
                    $info = getimagesize($path.$tmp[bild]);
                    if ($info[0] == "" || $info[0] > 120) print "<img src=\"".$path.$tmp[bild]."\" width=\"120px\" border=\"0\" alt=\"Bild anzeigen\" galleryimg=\"no\">";
                    else print "<img src=\"".$path.$tmp[bild]."\" border=\"0\" alt=\"Bild anzeigen\" galleryimg=\"no\">";
                    print "</a></td>";
                    $x++;
                  }
                }
              }
              else {
                $sql = @mysql_query("SELECT * FROM tblbilder WHERE datum='$d' AND kategorie='$c' AND benutzer='$u' ORDER BY bild ASC",$link);
                print "<tr>";
                print "<td colspan=2>[ <a href=\"?\">zurück zur Übersicht</a> ]</td>";
                print "</tr>";
                if (@mysql_num_rows($sql) > 0) {
                  while ($tmp = @mysql_fetch_array($sql)) {
                    $split = explode("-",$tmp[bild]);
                    $num = substr($split[1],0,-4);
                    $uds = holeDS("tbluser","id",$tmp[benutzer]);
                    if ($uds[nickname] != "") $user = $uds[nickname];
                    else $user = $uds[vorname]." ".$uds[nachname];
                    print "<tr>";
                    print "<td valign=top>Bild ".$num."<br>von ".$user."</td>";
                    print "<td valign=top><a href=\"javascript:showPic(".$tmp[id].");\" title=\"Bild anzeigen\">";
                    $info = getimagesize($path.$tmp[bild]);
                    if ($info[0] == "" || $info[0] > 120) print "<img src=\"".$path.$tmp[bild]."\" width=\"120px\" border=\"0\" alt=\"Bild anzeigen\" galleryimg=\"no\">";
                    else print "<img src=\"".$path.$tmp[bild]."\" border=\"0\" alt=\"Bild anzeigen\" galleryimg=\"no\">";
                    print "</a></td>";
                    print "</tr>";
                  }
                }
                else {
                  print "<td align=center><font color=#CC3333>Es wurden noch keine Bilder in diese Kategorie eingetragen.</td>";
                }
              }
              ?>
            </table>
          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>
</body>
</html>

Datei für: bildergalerie.sql

--
-- Tabellenstruktur für Tabelle `tblbilder`
--

CREATE TABLE `tblbilder` (
`id` int(11) NOT NULL auto_increment,
`benutzer` int(11) NOT NULL default '0',
`kategorie` int(11) NOT NULL default '0',
`datum` int(11) NOT NULL default '0',
`bild` varchar(255) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM;

-- --------------------------------------------------------

--
-- Tabellenstruktur für Tabelle `tblkategorien`
--

CREATE TABLE `tblkategorien` (
`id` int(11) NOT NULL auto_increment,
`kategorie` varchar(64) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM;

-- --------------------------------------------------------

--
-- Tabellenstruktur für Tabelle `tbluser`
--

CREATE TABLE `tbluser` (
`id` int(11) NOT NULL auto_increment,
`vorname` varchar(64) NOT NULL default '',
`nachname` varchar(64) NOT NULL default '',
`nickname` varchar(32) NOT NULL default '',
`email` varchar(128) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM;
 
Hmm, ich habe mal 1 Benutzer und 1 Kategorie angelegt.
Einmal habe ich ein Bild mit Datum 22.07.2005 hinzugefügt und einmal habe ich 2 Bilder mit Datum 23.07.2005 hinzugefügt.
In der Datenbank sind auch 3 Bilder eingetragen worden.
Mir werden auch die korrekte Anzahl an Bilder pro Benutzer angezeigt.
Aber der Rest stimmt irgendwie überhaupt nicht.
Links siehst Du wie es bei mir aussieht, für mein Verständnis müsste es aber wie rechts aussehen.

[edit] Demnach kommt es mir so vor als wenn die Datenbank nicht abgefragt wird ob das Datum und/oder Benutzer schon einen Eintrag hat. [/edit]

[edit2] Auch wird die Datenbank nicht abgefragt ob für das jeweilige Datum evtl. die Katerogie schon existiert. [/edit2]

[edit3] Da die Kategorie nicht mehrfach angelegt wird, wird die Datenbank zwar beim eintragen abgefragt, aber nicht beim auslesen um die Seite zu generieren. [/edit3]
 

Anhänge

  • gallery.jpg
    gallery.jpg
    27,2 KB · Aufrufe: 86
Zuletzt bearbeitet:
Es sei nur mal so am Rande erwaehnt, dass $_HTTP_POST_FILES veraltet ist und nur noch aus Gruenden der Abwaertskompatibilitaet mitgeschleppt wird.
Stattdessen sollte besser $_FILES genutzt werden.

Und eine kleine Frage:
Kann ich Deine Gallerie nutzen wenn ich JavaScript deaktiviert habe?
 
@reptiler, mit $_HTTP_POST_FILES (o.ä.) habe ich garnicht drauf geachtet, evtl. währe es mir aufgefallen wenn ich mir dass in aller Ruhe durchgelesen hätte.
Du weisst ja, bei mir dauert es ja alles noch länger, ggf. muss ich sogar erst nachlesen.
Mein Beitrag hat sich im grunde ja nur auf den HTML Kram beschränkt.

Das Script läuft nur bedingt mit deaktiviertem JS, z.b. kommen keine Allert-Fenster bei fehlerhaften Eingaben (kein Name, kein Datum usw.).
Trotzdem lassen sich Katerogien und Benutzer anlegen, auch lassen sich Bilder uploaden.
Allerdings muss das Script neu aufgerufen werden wenn ein Feld nicht ausgefüllt wurde.

Die Vollbildansicht funktioniert nicht (POP-UP Fenster).
Lässt sich aber ganz leicht ändern (getestet).

[edit] Ob es unter Linux läuft weiss ich nicht, ich kann es wegen MySQL ja nur unter Win testen. Insofern kann ich auch die Rechte nicht prüfen.[/edit]
 
Zuletzt bearbeitet:
Danke fuer die umfangreichen Informationen.

Ich denke es sollte kein Problem sein, dass Script auf einem Linux-Server zu nutzen.
Die Dateisystem-Funktionen sind ja unabhaengig vom Betriebssystem.
Allgemein ist es mit PHP recht schwer OS-abhaengig zu programmieren, es sei denn man arbeitet mit exec() oder aehnlichen Funktionen um Shell-Befehle auszufuehren, dann ist natuerlich die OS-Abhaengigkeit gegeben.

Das die Vollbildansicht in der aktuellen Fassung des Scripts ohne JS nicht laeuft ist natuerlich schon gravierend.
Ich denke Bluemchen sollte da eher neue Fenster mittels HTML (ueber Target) erzeugen anstatt mit JavaScript.

So richtig hab ich die Scripts nicht gelesen, war mir ehrlich gesagt was viel.
Hab nur gesehen, dass da ein Fenster mit JS geoeffnet werden soll und, dass sie in der save.inc mit $HTTP_POST_FILES arbeitet.
 
@reptiler, ich dachte da mehr so an Zugriffsrechte auf den Ordner, Ordner wird per Hand von "User" angelegt, die Bilder werden aber ja per PHP von "wwwrun" in den Ordner gepackt.
Ob da ein CHMOD 0777 langt, kann ich nicht sagen.

Die Vollbildansicht wird über einen ganz normalen Link (mit eingefügter JS Funktion) erreicht, dass ist also absolut kein Problem es zu ändern.

Umständlicher wir es halt das Uploadformular (evtl. auch Benutzer- Katerogieverwaltung) umzuändern, denn hier wird per JS geprüft ob die felder ausgefüllt wurden.
Es wird zwar anscheinend auch per PHP geprüft (denn sonst müssten ja auch unvollständige Angaben in die DB eingetragen werden), aber es wird kein Hinweis ausgegeben und die Seite muss neu aufgerufen werden (F5 langt nicht).

Ich hatte nur in die index.php geguckt, denn dort lag ja ihr ursprüngliches Problem.... und um das Script zum laufen zu bekommen natürlich auch in die db.inc.php.
 
Zurück