Als PHP-Entwickler werde ich manchmal gebeten, eine Shoutbox zu erstellen. Wenn Ihnen das Gleiche passiert, finden Sie hier eine Kurzanleitung. Natürlich möchten Sie oben Ihr eigenes CSS hinzufügen, aber hier ist die Grundidee.
Wir benötigen eine MySQL-Datenbanktabelle und drei PHP-Dateien.
Zuerst benötigen wir eine Datei zum Speichern von Datenbankinformationen
---Datei #1:mysql.inc.php---
<?php
#Simply Shouting-shoutboxexample
# Dateiname:mysql.inc.php
# Beschreibung: Eine Datei zum Speichern von Datenbankinformationen.
$host ='localhost';
$user ='database_user_name';
$password='database_user_password';
$name ='Datenbankname';
?>
Erstellen Sie eine Datentabelle mit vier Feldern. Möglicherweise haben Sie diese SQL-Datei noch nicht. Denken Sie daran, diese Datei nach einmaliger Verwendung zu löschen.
-- Datei Nr. 2: install.php --
<?php
#Simply Shouting-shoutboxexample
# Dateiname: install.php
# Beschreibung: Erstellt die Datenbanktabelle
// einschließlich der Datenbank-Infodatei
include("mysql.inc.php");
//Mit der Datenbank verbinden
$connection= @mysql_connect($host,$user,$password) or die(mysql_error());
$db= @mysql_select_db($name,$connection) or die(mysql_error());
//Wenn wir bereits eine Tabelle mit dem Namen „shouts“ haben, müssen wir sie zuerst löschen
$sql='DROP TABLE IF EXISTS `shouts`';
$result= @mysql_query($sql,$connection) or die(mysql_error());
// Stellen Sie nun sicher, dass es keine Tabelle mit demselben Namen gibt, und erstellen Sie sie
$sql='CREATE TABLE `shouts` (
`id` int(11) NOT NULL auto_increment,
„timestamp“ TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
`shoutby` varchar(50) Standard NULL,
`shout` varchar(50) Standard NULL,
PRIMÄRSCHLÜSSEL `id` (`id`)
) TYPE=MyISAM AUTO_INCREMENT=1';
echo'Tabelle wird erstellt: 'shouts'....';
// Verbindung schließen
$result= @mysql_query($sql,$connection) oder die(mysql_error());?>
<html>
<Kopf>
<title>Simply Shouting - Installation</title>
</head>
<Körper>
<br />
Ihr Installationsvorgang ist abgeschlossen. Bitte löschen Sie alle Installationsdateien sofort von Ihrem Server. Dieses Programm enthält die folgenden Installationsdateien:<br />
<br />
1) install.php<br />
<br />
<br />
<!-- Ich könnte sie einfach automatisch an index.php senden, aber dann würden sie sich fragen, ob es korrekt erstellt wurde oder nicht -->
Klicken Sie <a href="index.php">hier</a>, um zu beginnen.</html>
Dies ist die Hauptdatei:
--- Datei Nr. 3: index.php---
<?
#Simply Shouting-shoutboxexample
# Dateiname: index.php
# Beschreibung: Hauptseite zur Anzeige unserer Shouts.
//Enthält Datenbankinformationen
include_once("mysql.inc.php");
//Mit Datenbank verbinden
$connection= @mysql_connect($host,$user,$password) or die(mysql_error());
$db= @mysql_select_db($name,$connection) or die(mysql_error());
?>
<html>
<Kopf>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><style type="text/css">
<!--
body,td,th {
Schriftfamilie: Verdana, Arial, Helvetica, serifenlos;
Schriftgröße: 12px;
}
->
</style><body>
<div style="width:500px;height 400px; border:thin Groove #519554;">
<?
// Die letzten 10 Nachrichten anzeigen. Initialisieren Sie zunächst einen Zähler
$counting=0;
// wir brauchen einen Zähler, weil ich unsere Shouts in ASC-Reihenfolge anzeigen möchte
// (wie ein Chatroom)
$sql=mysql_query("SELECT * FROM `shouts`");
while($data=mysql_fetch_array($sql)){
//zählt jede Zeile
$counting=$counting+1;
} //end while
// wenn die Anzahl größer als 10 ist, wählen wir den letzten aus
// 10 Rufe zur Anzeige
if($counting>10){
$countlesssten=$counting-9;
$sql=mysql_query("SELECT * FROM `shouts` ORDER BY `shouts`.`id` ASC LIMIT $countlesssten,10");
}anders{
//sonst ist es egal, es sind weniger als 10!
$sql=mysql_query("SELECT * FROM `shouts` ORDER BY `shouts`.`id` ASC LIMIT 10");
}
while($data=mysql_fetch_array($sql)){
//Mein Zeitstempelfeld in der Datenbank ist für mich grundsätzlich nutzlos, es sei denn
//Ich analysiere es. Der folgende Code analysiert den Zeitstempel in Dinge, die ich
//kann verwenden.
$timestamp=$data['timestamp'];
$postedyear=substr($timestamp,0,4);
$postedmonth=substr($timestamp,5,2);
$postedday=substr($timestamp,8,2);
$postedtime=substr($timestamp,11,5);
$newpostedtime="";
$nomilitary=substr($postedtime,0,2);
// die Stunde ist größer als 12, also müssen wir zurück zu 1-12 wechseln und
// ein „pm“ hinzufügen
if($nomilitary>=13){
$nomilitary=$nomilitary-12;
$newpostedtime=$nomilitary;
$newpostedtime.=":";
$newpostedtime.=substr($postedtime,3,2);
$newpostedtime.=" pm";
}
if($newpostedtime!=""){
$postedtime=$newpostedtime;
}anders{
$postedtime.=" am";
}
//Jetzt, wo wir die Zeit haben, lasst uns den Shout und den Shouter machen
$shoutby=$data['shoutby'];
$shout=$data['shout'];
echo$postedmonth.“/“.$postedday.“/“.$postedyear.“ um „.$postedtime.“ – <strong>“.$shoutby.“ sagte: </strong>“.$shout.“<br ><br>";
// sieht aus wie: 01.12.2008 um 17:02 Uhr – Josh sagte: Yo Yo Yo!
}
//unten ist das HTML-Formular zum Erstellen der Shouts
?>
<form id="newshout" name="newshout" action="newshout.php" method="post"><input name="shoutby" type="text" id="shoutby" onClick="javascript:this.value =''" value="Geben Sie hier Ihren Namen ein" size="24" maxlength="50" />
<br><br><input name="shout" type="text" id="shout" onClick="javascript:this.value=''" value="Click & Shout!" size="24" maxlength= „50“ />
<br><br><input id="submit" name="submit" type="submit" value="Shout!" /></form>
</div>
</body>
</html>
Schließlich benötigen wir eine PHP-Datei, um das Formular zu verarbeiten
– Datei Nr. 4: newsout.php –.
<?
#Simply Shouting-shoutboxexample
# Dateiname: newsout.php
# Beschreibung: Verarbeiten Sie das HTML-Formular auf index.php und leiten Sie es weiter.
//Den Namen der Person abrufen, die die Nachricht hinterlassen hat
$shoutby=$_POST['shoutby'];
if($shoutby=="Geben Sie hier Ihren Namen ein"||$shoutby==""){
//Wenn kein Name eingegeben wird
$shoutby="Besucher";
}
if($_POST['shout']){
// Nachricht
if($_POST['shout'] !="Klicken und schreien!"){
//Sie haben die Standardeinstellung nicht gerufen, also fahren Sie mit der Verarbeitung fort
$shout=$_POST['shout'];
//Ersetzen Sie „<“ und „>“, um Hacker zu stoppen
$shout=str_replace("<"," ",$shout);
$shout=str_replace(">"," ",$shout);
// Enthält Dateninformationen
include_once("dbaccess.php");
//Mit Datenbank verbinden
$connection= @mysql_connect($host,$user,$password) or die(mysql_error());
$db= @mysql_select_db($name,$connection) or die(mysql_error());
//Nachrichteninformationen in die Datenbank einfügen
$sql="INSERT INTO `shouts`(`shoutby`,`shout`) VALUES('$shoutby','$shout')";
//Verbindung schließen
$result= @mysql_query($sql,$connection);
}
}
?>
<html>
<Kopf>
</head>
<body onLoad="window.open('index.php','_self')">
</body>
</html>