• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

bilderalbum

Status
Für weitere Antworten geschlossen.

philipp

Neues Mitglied
whoa ich hab schon soviel drüber nachgedacht... es muss doch auch einfach gehen oder? ich will ein photoalbum einbauen auf die homepage. naja nicht nur eins... der erste teil war mal:
dass admins übers CMS alben anlegen können.. dadurch wird ein ordner angelegt und ein paar datenbank einträge. das geht auch schon...
aber beim album an sich hab ich schwierigkeiten.

es sollen die bilddateien, die sich im ordner befinden(name des ordners wird in url übergeben) anzeigen und zwar auf die art:
bild \n
zurück | weiter

klar?

wie kann ich das am besten machen?

und wie ich das mit dem dateiupload machen soll hab ich auch keinen plan--- :(
 
Werbung:
zu 1.: willst du gleich ein beispielscript sehen? du musst nur alle dateien des ordners auslesen, und wenn sie .jpg sind, dann in ein array einlesen... dann noch das aktuelle bild ausgeben
hier ein beispiel:
[php:1:62cd5b4194]<?php
$handle = @opendir("mod_photos/".$_GET['id']);
$i = 0;
while($img = @readdir($handle))
if(substr($img,-4)==".jpg") {
if(is_file("mod_photos/".$_GET['id']."/small/".$img)) {
if($img==$_GET['img'].".jpg")
$ok = $i;
$imgs[]=substr($img,0,-4);
$i++;
}
}
if($ok > 0) $ok1 = $ok - 1; else $ok1 = count($imgs) - 1;
if($ok + 1 < count($imgs)) $ok2 = $ok + 1; else $ok2 = 0;
echo "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
<link rel="stylesheet" type="text/css" href="../css/style.css" />
<link rel="stylesheet" type="text/css" href="../css/design.css" />
<title>Jungwacht B&uuml;lach</title>
<meta name="author" content="Marc Schmid" />
<meta name="description" content="Website der Jungwacht B&uuml;lach" />
</head>
<body>
<div style="background-color:#B4CDC8;width:640px;height:680px;vertical-align:middle;text-align:center;">
<?php
if(is_file("mod_photos/".$_GET['id']."/".$_GET['img'].".jpg"))
echo "<img src=\"mod_photos/".$_GET['id']."/".$_GET['img'].".jpg\" alt=\"\" />\n";
else
echo "bild nicht gefunden!";
?>
<hr>
<table style="width:640px;">
<tr>
<td style="width:213px;text-align:center;">">zur&uuml;ck</td>
<td style="width:214px;text-align:center;">fenster schliessen</td>
<td style="width:213px;text-align:center;">">weiter</td>
</tr>
</table>
</div>
</body>
</html>[/php:1:62cd5b4194]

zu 2.: zb
http://www.webmaster-resource.de/tricks/php/dateien-mit-php-hochladen.php
http://www.informationsarchiv.net/foren/beitrag-12423.html
und und und
http://www.google.ch/search?hl=de&q=php+dateiupload

mfg, fätzminator

PS: ich gebe normalerweise auch keine ganzen scripts, aber wenn ich es nunmal schon lauffähig habe...;)
 
ich wollt nur wissen wie es geht und wie die befehle heissen... danke jetzt könnt ich es schaffen. mal sehn

edit -> na i versteh da leider sogut wie garnix
 
Werbung:
opendir($var) --> verzeichnis öffnen
readdir($var) --> verzeichnis lesen (am besten mit while)
if(is_file($var)) --> wenn datei
if(is_dir($var)) --> wenn ordner
count($var) --> anzahl einträge eines arrays
 
4 wochen, oder?
ehrlich man... respekt... ^^ ich bin grad dabei das ganz anders zu lösen.
beim anlegen wird ne datenbank UND ein ordner gemacht... viel komplizierter, aber naja...
 
das mit der datenbank ist nur wegen der namen und der daten und so... und dies ist schon direkt das popup und es hat keine namen oä... (es wird nur der jeweilige ordner geöffnet)
 
Werbung:
bei mir wird eben die jeweilige tabelle geöffnet :D
beim anlegen wird ne tabelle UND ein ordner erstellt und (sollte alles so sein, wenn fertig) beim abrufen werden die ordner und tabellennamen durch die im GET mitgegebene variable ersetzt
 
aber der ordner ist schon nicht der eintragsname, sondern die id (sonst könnte es probleme mit leerzeichen, grosskleinschreibung, sonderzeichen, ... geben)?
 
ich würds ja gern so machen wie du, aber ich will dabei auch was lernen und muss das alles verstehen. jeden tag komm ich mehr drauf wie wenig ich kann :D. so ein lehrer wär was feines, aber ich bin hier der einzige der was mit web zu tun hat..
 
Werbung:
ich habe mir bei beispielen auch schon gedacht, dass ich es anderst machen sollte... das problem ist nur, dass sie meistens perfekt sind, und ich höchstens ne schlimmere version davon proggen könnte... ;)
 
ich hab heut keinen geist mehr für php, mysql, html, css oder sonsteinen scheiss :(

ich find nichtmal hier drinn den fehler.. muss in der sql sein

[php:1:c899e85590]<?php ....
$name = $_GET['name'];
$sql = mysql_query('SELECT '.$name.'_url, COUNT('.$name.'_url) AS anzahl FROM '.$name);
while ($row = mysql_fetch_array($sql)) {.... ?>
[/php:1:c899e85590]
 
Werbung:
tabelle schon selected??
naja auf jeden fall solltest du beim from den richtigen tabellen namen hinschreiben und das $name wegnehmen
(und $name vorher mit mysql_real_escape_string() behandeln...)
 
man kann doch tabellen wie mans mit der db macht, schon "vorselektieren"!?
warum $name wegnehmen... es kann ja sein, dass er die felder 1_url bis 5_url hat (oä)
 
aber doch nicht die tabellen 1 bis 5 ?
das waere n bischen krank ;ugl
 
Werbung:
bilderalbum hab ich nun geschafft... sehr kompliziert aber is funktioniert gut ^^

Code:
<?php
//Verbinden mit MYSQL
include 'connect.inc.php';
$name = $_GET['name'];
	if (isset($_GET['bild'])) {
	$bild = $_GET['bild'];
	} else {
	$bild = 1;
	}
echo '<div align="center">[img]alben/'.$name.'/'.$bild.'.jpg[/img]</div> 
';
//Maximalen Wert fuer Link herausfinden
$sql = "SELECT ".$name."_url AS max FROM ".$name." ORDER BY ".$name."_url DESC LIMIT 1";
$res = @mysql_query($sql);
$maxval = mysql_fetch_array($res);
$maxval = $maxval['max'];
echo '<div align="center">';
	if ($bild >= 2) {
	echo "<a href=\"album.php?name=".$name."&amp;bild=".($bild-1)."\">";
	}
	echo 'zur&uuml;ck';
	if ($bild >= 2) {
	echo "</a>";
	}
	echo "| \n";
	if ($bild < $maxval) {
	echo "<a href=\"album.php?name=".$name."&amp;bild=".($bild+1)."\">";
	}
	echo 'n&auml;chstes';
	if ($bild < $maxval) {
	echo "</a>";
	}
echo '</div>';		
?>

und das eingabeformular
Code:
<?php
//Verbinden mit MYSQL
include 'connect.inc.php';
//Pruefen ob eingaben gemacht wurden
if (isset($_POST['album'])) {
	if ($_FILES['bild1']['tmp_name']) {
	//Wenn Bild zu gross ist
	$size = (int)($_FILES['bild1']['size']/1024);
		if ($size > 200) {
		echo "

Fehler: Das Bild darf nicht gr&ouml;%szlig;er sein als 200KB</p>"; 
		} else {
		echo "

Das eingereichte Bild(&quot;".
		$_FILES['bild1']['name'].
		"&quot;) ist ".
		$size.
		" KB groß. 
 \n
		Bild wird hochgeladen...</p>";
		//Bildname definieren
		$album = $_POST['album'];
		$sql = "SELECT COUNT(".$album."_ID) AS anzahl FROM ".$album." ";
		$res = mysql_fetch_array(@mysql_query($sql));
		//Wenn noch kein Bild im Album ist
		//Dann wird das neue Bild mit 1 benannt
		//Sonst mit der gesammtzahl der Bilder im Album + 1
			if ($res['anzahl'] < 1) {
			$bild = 1;
			} else {
			$bild = ($res['anzahl'] + 1);
			}
		//hochladen der Datei
		//und registrieren der Datei
		move_uploaded_file($_FILES['bild1']['tmp_name'], "alben/".$album."/".$bild.".jpg");
		$sql = "INSERT INTO ".$album." SET ".$album."_url = '".$bild."'";
		@mysql_query($sql) or die("

Datenbankfehler. Upload abgebrochen</p>");
		//Pruefen ob Upload erfolgreich war
			if (is_file("alben/".$_POST['album']."/".$bild.".jpg")) {
			echo '

Datei raufgeladen

					<a onmouseover="this.style.cursor=\'hand\'" onclick="history.back()">Zur&uuml;ck</a></p>';
			} else {	
				echo '

Dateiupload fehlerhaft</p>';
			}
		}
	} else {
	echo '

Fehler beim hochladen der Datei</p>';
	}
} else {
//Wenn keine Datei uebermittelt wurde

?>
<fieldset>
	<legend>Bild hochladen</legend>
<form action="index.php?go=intern&amp;sys=picupload2" method="post" enctype="multipart/form-data">


In welches Album wollen sie das bild speichern?</p>
<?php
//Liste der Alben holen
$sql = "SELECT alben_name FROM alben";
$res = @mysql_query($sql);
?>
<select name="album">
<?php
while ($row = mysql_fetch_array($res)) {
echo "<option value=\"".$row['alben_name']."\">".$row['alben_name']."</option> \n";
}
?>
</select>


w&auml;hlen sie das Bild aus, dass sie hinaufladen wollen</p>
<input name="bild1" type="file" />

<input type="submit" value="hinaufladen" />
</form>
</fieldset>
<?php } ?>
 
Werbung:
Status
Für weitere Antworten geschlossen.
Zurück
Oben