Tutorials

Zufallsbild Tutorial

Einloggen
Benutzername:
Passwort:

Passwort vergessen?
Kostenlos
Anmelden
anzeigen
Zufallsbild


3503 - crushoverrid - 10.12.2006 15:57 Uhr - Version: 1 - - verlinken als BB-Code


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:


1
2
3
4
5
6
7
<?CREATE TABLE `bilder` (

`
bildTEXT NOT NULL ,

`
idINT11 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:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?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:

1
2
3
<?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.


1
<?$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.

1
<?rand(0,10);?>



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


1
<?$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.


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



hier wird das ganze dann (als Bild) ausgegeben.

Nächste Datei:

forumlar.php


Mit folgendem Quelltext:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?<?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();?>





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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?<?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 PM

Mitglieder-Kommentare


#2 von Thomas2500
Bei mir steht bei MySQL:


Fehler

Es scheint einen Fehler in Ihrer MySQL-Abfrage zu geben. Die MySQL-Fehlerausgabe, falls vorhanden, kann Ihnen auch bei der Fehleranalyse helfen.

ERROR: Unbekannte Interpunktion @ 1
STR: <?
SQL: <?CREATE TABLE `bilder` (

`bild` TEXT NOT NULL ,

`id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY

) TYPE = MYISAM ;<?CREATE TABLE `bilder` (

`bild` TEXT NOT NULL ,

`id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY

) TYPE = MYISAM ;<?CREATE TABLE `bilder` (

`bild` TEXT NOT NULL ,

`id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY

) TYPE = MYISAM ;


SQL-Befehl:

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

MySQL meldet: Dokumentation
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '<?CREATE TABLE `bilder` (

`bild` TEXT NOT NULL ,

`id` INT( 11 ) NOT NULL A' at line 1

Was soll ich machen?
#1 von ntmb
Es gibt eine Möglichkeit wie du dir es leichter machen kannst und zwar mit "....ORDER BY RAND()" Smily NR:7

mfg Eugen
Der freundliche Admin aus der Nachbarschaft
Lachecke.de - Dein täglicher Lacher im Internet
Listrank.de - Die ultimative Topliste nach Themen

Nur registrierte Mitglieder könnten einen Kommentar schreiben.

Melde dich doch ganz einfach an, es ist kostenlos. :-)