En tant que développeur PHP, on me demande parfois de créer une screambox. Si la même chose vous arrive, voici un guide rapide. Évidemment, vous souhaiterez y ajouter votre propre CSS ci-dessus, mais voici l'idée de base.
Nous avons besoin d'une table de base de données MySQL et de trois fichiers PHP.
Tout d'abord, nous avons besoin d'un fichier pour enregistrer les informations de la base de données
---File #1:mysql.inc.php---
<?php
#Simply Shouting-shoutboxexemple
# Nom du fichier : mysql.inc.php
# Description : Un fichier contenant les informations de la base de données.
$hôte = 'localhost';
$user = 'nom_utilisateur_base de données';
$password='database_user_password';
$name = 'nom_base de données';
?>
Créez une table de données avec quatre champs. Nous l'appelons screams. Vous n'avez peut-être pas ce fichier SQL auparavant, créez un fichier PHP "install.php". Après avoir utilisé ce fichier une fois, pensez à le supprimer !
-- Fichier n°2 : install.php --
<?php
#Simply Shouting-shoutboxexemple
# Nom du fichier : install.php
# Description : Crée la table de base de données.
// inclut le fichier d'informations de la base de données.
include("mysql.inc.php");
//Connectez-vous à la base de données
$connection= @mysql_connect($host,$user,$password) ou die(mysql_error());
$db= @mysql_select_db($name,$connection) or die(mysql_error());
//Si nous avons déjà une table nommée "shouts", nous devons d'abord la supprimer
$sql='DROP TABLE SI EXISTE `crie`';
$result= @mysql_query($sql,$connection) or die(mysql_error());
// Assurez-vous maintenant qu'il n'y a pas de table du même nom, créez-la
$sql='CREATE TABLE `crie` (
`id` int(11) NON NULL auto_increment,
`timestamp` TIMESTAMP NON NULL PAR DÉFAUT CURRENT_TIMESTAMP,
`shoutby` varchar(50) NULL par défaut,
`shout` varchar(50) NULL par défaut,
CLÉ PRIMAIRE `id` (`id`)
) TYPE=MonISAM AUTO_INCREMENT=1';
echo'Création de la table : 'cris'....';
// ferme la connexion
$result= @mysql_query($sql,$connection) ou die(mysql_error());?>
<html>
<tête>
<title>Simply Shouting - Installation</title>
</tête>
<corps>
<br />
Votre processus d'installation est terminé. Veuillez supprimer immédiatement tous les fichiers d'installation de votre serveur. Ce programme contient les fichiers d'installation suivants :<br />
<br />
1) install.php<br />
<br />
<br />
<!-- Je pourrais simplement les envoyer automatiquement à index.php, mais ils se demanderaient alors s'il a été créé correctement ou non -->.
Cliquez <a href="index.php">ici</a> pour commencer.</html>
Voici le fichier principal :
--- Fichier n°3 : index.php---
<?
#Simply Shouting-shoutboxexemple
# Nom du fichier : index.php
# Description : Page principale pour afficher nos cris
//Contient les informations de la base de données
.
include_once("mysql.inc.php");
//Se connecter à la base de données
$connection= @mysql_connect($host,$user,$password) ou die(mysql_error());
$db= @mysql_select_db($name,$connection) ou die(mysql_error());
?>
<html>
<tête>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><style type="text/css">
<!--
corps,td,th {
famille de polices : Verdana, Arial, Helvetica, sans-serif ;
taille de police : 12 px ;
}
-->
</style><corps>
<div style="width:500px;height 400px; border:thin groove #519554;">
<?
// Affiche les 10 derniers messages. Tout d'abord, initialisez un compteur.
$counting=0;
// nous avons besoin d'un compteur car je veux afficher nos cris dans l'ordre ASC
// (comme un salon de discussion)
$sql=mysql_query("SELECT * FROM `shouts`");
while($data=mysql_fetch_array($sql)){
//compte chaque ligne
$comptage=$comptage+1 ;
} //end while
// si le compte revient supérieur à 10, alors on sélectionne le dernier
// 10 cris pour l'affichage
if($counting>10){
$countlessten=$counting-9 ;
$sql=mysql_query("SELECT * FROM `shouts` ORDER BY `shouts`.`id` ASC LIMIT $countlessten,10");
}autre{
//sinon ce n'est pas grave, il y en a moins de 10 !
$sql=mysql_query("SELECT * FROM `shouts` ORDER BY `shouts`.`id` ASC LIMIT 10");
}
while($data=mysql_fetch_array($sql)){
//mon champ d'horodatage dans la base de données m'est fondamentalement inutile à moins que
//Je l'analyse. Le code suivant analyse l'horodatage en éléments que je.
//peut utiliser.
$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);
// l'heure est supérieure à 12, nous devons donc revenir à 1-12 et
// ajoute un "mp"
si($nomilitaire>=13){
$nomilitaire=$nomilitaire-12 ;
$newpostedtime=$nomilitaire ;
$newpostedtime.=": ";
$newpostedtime.=substr($postedtime,3,2);
$newpostedtime.=" pm";
}
si($newpostedtime!=""){
$postedtime=$newpostedtime ;
}autre{
$postedtime.=" suis";
}
//maintenant que nous avons le temps, passons au cri et au crieur
$shoutby=$data['shoutby'];
$crier=$données['crier'];
echo$postedmonth."/".$postedday."/".$postedyear." à ".$postedtime." - <strong>".$shoutby." a dit : </strong>".$shout."<br <br>" ;
// ressemble à : 12/1/2008 à 17h02 - Josh a dit : Yo Yo Yo !
}
//ci-dessous se trouve le formulaire HTML pour créer les cris
?>
<form id="newshout" name="newshout" action="newshout.php" method="post"><input name="shoutby" type="text" id="shoutby" onClick="javascript:this.value =''" value="Entrez votre nom ici" size="24" maxlength="50" />
<br><br><input name="crier" type="text" id="crier" onClick="javascript:this.value=''" value="Cliquez et criez!" taille="24" maxlength= "50" />
<br><br><input id="submit" name="submit" type="submit" value="Shout /></form>
</div>
</corps>
</html>
Enfin, nous avons besoin d'un fichier PHP pour gérer le formulaire
-- Fichier n°4 : newsout.php --
<?
#Simply Shouting-shoutboxexemple
# Nom du fichier : newsout.php
# Description : Traite le formulaire HTML sur index.php et redirige
//Récupère le nom de la personne qui a laissé le message.
$shoutby=$_POST['shoutby'];
if($shoutby=="Entrez votre nom ici"||$shoutby==""){
//Si aucun nom n'est saisi
$shoutby="Visiteur";
}
si($_POST['crier']){
// Message
if($_POST['shout'] !="Cliquez et criez !"){
//ils n'ont pas crié la valeur par défaut, alors continuez le traitement
$crier=$_POST['crier'];
//Remplacez "<" et ">" pour arrêter les pirates
$shout=str_replace("<"," ",$shout);
$shout=str_replace(">"," ",$shout);
// Contient des informations sur les données
include_once("dbaccess.php");
//Se connecter à la base de données
$connection= @mysql_connect($host,$user,$password) ou die(mysql_error());
$db= @mysql_select_db($name,$connection) ou die(mysql_error());
//Insérer les informations du message dans la base de données
$sql="INSERT INTO `shouts`(`shoutby`,`shout`) VALUES('$shoutby','$shout')";
//Ferme la connexion
$result= @mysql_query($sql,$connexion);
}
}
?>
<html>
<tête>
</tête>
<body onLoad="window.open('index.php','_self')">
</corps>
</html>