Geschrieben von benutzernaemelchen am 20.04.2006, 19:05

hoi :wink:

Heute erkläre ich euch, wie wir ein Zufallsbild per PHP ausgeben.
folgende Features sind enthalten:

-MySQL-Db anbindung
-einfügen von Bild-URL's einfach per knopfdruck
-Admin-login
-unendlich viele Bild URL's einfügbar

Und das wird gebraucht:

-einige, wenige PHP kenntnisse
-Zeit
-MySQL-DB
-PHP fähiger Webspace

Los geht's !

Also: erstmal erstellen wir in unserer MySQL-Datenbank folgende Tabelle:


CREATE TABLE `bilder` (
`bild` TEXT NOT NULL ,
`id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY
) TYPE = MYISAM ;

Die Zeile " bilder" speichern wir als Text ab, da manche URL'S elend lang sind. So kann man auch die längsten problemlos abspeichern.

Dann erstellen wir mit unserem beliebigen Editor eine Neue Datei:


show_pics.php

Welche Folgenden COde enthält:

mysql_connect('localhost','root',''); //gib hier deine Daten an
mysql_select_db('test'); //hier auch
$query_rand = mysql_query('SELECT * FROM bilder ORDER BY id DESC');
$fetch_rand = mysql_fetch_array($query_rand);

$query = mysql_query('SELECT * FROM bild WHERE id="'.(rand(1,$fetch_rand['id'])).'"') or die (mysql_error());
if(mysql_num_rows($query)==0)
{
echo 'Es wurden noch keine Bilder in die Datenbank eingetragen.';
}
$fetch = mysql_fetch_array($query);

echo '<img src="'.$fetch['bild'].'" alt="*quiek*">';

Jetzt die Code-Erläuterung:
mysql_connect('localhost','root',''); //gib hier deine Daten an
mysql_select_db('test'); //hier auch

hier wird zu deiner Datanbank connected, damit die Bilder auch abgerufen werden können.


$query = mysql_query('SELECT * FROM bild WHERE id="'.(rand(1,2)).'"') or die (mysql_error());

die funktion rand() erzeugt eine Zufallszahl(englisch random=zufall) zwischen den beiden angegebenen Parametern.

rand(0,10);

Beispielsweise würde eine Zufallszahl zwischen 0 und 10 erzeugen.


$query = mysql_query('SELECT * FROM bild WHERE id="'.(rand(1,$fetch_rand['id'])).'"') or die (mysql_error());

hier wird also alles aus der DB herausgeholt, dass eine id zwischen 1 und der höchsten id in der Db besitzt.

echo '<img src="'.$fetch['bild'].'" alt="*quiek*">';

hier wird das ganze dann (als Bild) ausgegeben.

Nächste Datei:

forumlar.php

Mit folgendem Quelltext:

<?php ob_start(); ?>
<form method="POST" >
<input type="password" name="pwd" /> Geben sie bitte ihr Passwort ein, um ein neues Bild hinzuzufügen.
<input type="submit" name="send" value="GO!" />
</form>

<?php

if($_POST['send'])
{
if($_POST['pwd']) == 'deinGewaehltesPasswort')
{
header ('Location: admin.php?m=yes');
}
else
{
echo 'Falsche Zugangsdaten';
}
}

ob_end_flush();

Hierzu werde ich wohl nicht so viel erläutern müssen. Wenn doch, schickt mir bitte eine PN.

admin.php
Die datei admin.php wird nun mit folgendem Quelltext angelegt:

<?php

if($_GET['m']=='yes')
{
?>
<h2>Neues bild hinzufügen</h2>

<form method="post">
<input type="text" name="new_pic" /><br>
<input type="submit" name="send" value="Bild speichern" />
</form>

<?php
mysql_connect('localhost','root',''); //gib hier deine Daten an
mysql_select_db('test'); //hier auch

if($_POST['send'])
{
$sql = 'INSERT INTO bilder (bild) VALUES ("'.$_POST['new_pic'].'")';
if(! mysql_query($sql))
{
echo 'Das Bild konnte nicht gespeichert werden.';
}
else
{
echo 'Bild wurde gespeichert.<a href="show_pics.php">Hier können sie das Bild abrufen</a>';
}
}

}
else
{
echo 'Sie haben leider nur als Administrator Zutritt';
}

So. ICH hoffe es war hilfreich, und wenn irgendwie Probleme bestehen, dann schreibt mir doch bitte eine PN :wink:

Bewertung Anzahl
6
42,9 %
3 Bewertungen
5
42,9 %
3 Bewertungen
4
14,3 %
1 Bewertungen