Je vous mets ici le fichier livredor.php qui appelle le fichier livredor.dat qui lui contient les messages... J'ai regardé le timestamp unix, ça ne correspond pas, quant à l'affichage de la date en clair, j'vois pas trop comment faire puisqu'il faudrait convertir le format bizarre de livredor.dat, et c'est justement ce que je cherche à faire mais dans l'autre sens (convertir une date du format "date" au format "bizarre") :
<h1>Livre d'or</h1>
<?php
define('ADMIN_USER', '**************');
define('ADMIN_PASS', '**************');
define('GB_FILE', './phpscripts/livredor.dat');
define('DATE_FORMAT', 'j/m/Y à H:i');
define('MAX_PER_PAGE', 10);
define('MAX_NAME_LEN', 32);
define('MIN_MESG_LEN', 3);
define('MAX_MESG_LEN', 600);
define('POST_TIME', 60);
define('ALLOW_URLS', false);
define('SELF', "http://www.denvercountryclub.1k.fr/index.php?page=livredor");
define('FUNC', isset($_GET['func']) ? $_GET['func'] : NULL);
define('P', isset($_GET['p']) ? (int) $_GET['p'] : 1);
if (FUNC == 'logout') {
echo '<p>Vous venez d\'être déconnecté.</p>';
setcookie ('password', '');
unset($_COOKIE['password'], $password);
}
if (isset($_POST['password'])) {
$password = md5($_POST['password']);
if ($password == md5(ADMIN_PASS)) {
setcookie('password', $password);
}
} else {
$password = isset($_COOKIE['password']) ? $_COOKIE['password'] : NULL;
}
ob_end_flush();
echo '<p style="text-align: center;"><a href="'.SELF.'">Voir les messages</a> | <a href="'.SELF.'&func=sign">Signer le livre d\'or</a></p>';
echo '<hr />';
switch (FUNC)
{
/*================================*\
-- default --
\*================================*/
default:
if (!$fp = @fopen(GB_FILE, 'r')) {
echo '<p>Échec à l\'ouverture de '.GB_FILE.'</p>';
break;
}
$i = 0;
$data = NULL;
$to_show = (P * MAX_PER_PAGE) - MAX_PER_PAGE;
if (P > 1) echo '<p><b>Page '.P.'</b></p>';
while (!feof($fp)) {
$i++;
if ($i > ($to_show + MAX_PER_PAGE)) break;
$data = fgets($fp, 4096);
if (empty($data)) break;
if ($i > $to_show) {
list ($date, $name, $mesg, $ip) = str_replace('\|', '|', preg_split('/(?<!\\\)(\|)/', $data));
echo ("\n<p><span style='font-weight: bold; text-transform: capitalize;'>$name</span> <span style='font-style: italic;'>le ".date(DATE_FORMAT, $date)."</span></p><blockquote>$mesg</blockquote>");
}
}
echo '<hr />';
if ($i > MAX_PER_PAGE) {
$line_count = substr_count(fread($fp, filesize(GB_FILE)), "\n") + $i;
$line_count = ceil($line_count / MAX_PER_PAGE);
$s = 1;
$f = $line_count + 1;
echo "\n".'<p style="text-align: center;">Page : ';
if ($line_count > MAX_PER_PAGE) {
if (P < 6) {
$s = 1;
$f = 10;
} elseif (($line_count-P) < 6) {
$s = $line_count - 8;
$f = $line_count;
} else {
$s = P -3;
$f = $s + 8;
}
echo (P > 5) ? ' <a href="'.SELF.'">1</a>-' : NULL;
}
for ($k=$s; $k<$f; $k++) {
echo ($k == P) ? "$k " : "<a href=\"".SELF."&p=$k\">$k</a> ";
}
echo ($k <= $line_count) ? "de <a href=\"".SELF."&p=$line_count\">$line_count</a></p>" : '</p>';
}
echo '<p style="text-align: center;"><a href="'.SELF.'">Voir les messages</a> | <a href="'.SELF.'&func=sign">Signer le livre d\'or</a></p>';
fclose($fp);
break;
/*================================*\
-- sign --
\*================================*/
case 'sign':
$name = (isset($_POST['name'])) ? strip_chars($_POST['name']) : NULL;
$mesg = (isset($_POST['mesg'])) ? strip_chars($_POST['mesg']) : NULL;
if (isset($_POST['submit'])) {
$errors = NULL;
$now = time();
$name_len = strlen($name);
$mesg_len = strlen($mesg);
if ($name) {
if ($name_len > MAX_NAME_LEN) {
$errors = '- Le nom est trop long, '.$name_len.' (Max : '.MAX_NAME_LEN.')<br />';
}
} else {
$errors = '- Veuillez introduire votre nom !<br />';
}
if ($mesg) {
if ($mesg_len > MAX_MESG_LEN) {
$errors.= '- Le message est trop long, '.$mesg_len.' (Max : '.MAX_MESG_LEN.')<br />';
} elseif ($mesg_len < MIN_MESG_LEN) {
$errors.= '- Le message est trop court (Min : '.MIN_MESG_LEN.')<br />';
}
} else {
$errors.= '- Veuillez introduire un message !<br />';
}
if (!$fp = @fopen(GB_FILE, 'r')) {
echo 'Impossible de lire le fichier contenant les messages. Vérifiez son emplacement et ses droits en lecture !';
break;
}
list($date, , , $ip) = fgetcsv($fp, 4096, '|');
fclose($fp);
if ($_SERVER['REMOTE_ADDR'] == $ip && $now < $date+POST_TIME) {
$errors.= '- Vous venez déjà de poster un message !';
}
if ($errors) {
echo '<p>'.$errors.'</p>';
} else {
if ($name == ADMIN_USER) {
if (@$_POST['pass'] != ADMIN_PASS && $password != md5(ADMIN_PASS)) {
echo '<p>Ce nom d\'utilisateur requiert un mot de passe !</p>';
echo '<form method="post" action="'.SELF.'&func=sign"><p><input input class="textbox" type="password" name="pass" size="20" /> <input type="submit" value="Envoyer" name="submit" class="bouton" /><input class="textbox" type="hidden" name="name" value="'.$name.'" /><input class="textbox" type="hidden" name="mesg" value="'.$mesg.'" /></p></form>';
break;
}
}
$filesize = filesize(GB_FILE);
$filesize = (empty($filesize)) ? 1024 : $filesize;
if (!$fp = @fopen(GB_FILE, 'r+')) {
echo 'Impossible de lire le fichier contenant les messages et d\'écrire dedans. Vérifiez son emplacement et ses droits en lecture et écriture !';
break;
}
$data = fread($fp, $filesize);
rewind($fp);
fwrite($fp, "$now|".str_replace("\n", NULL, str_replace('|', '\|', $name)).' |'.str_replace("\n", '<br />', bbcode($mesg)).' |'.$_SERVER['REMOTE_ADDR'].'|');
if (! empty($data)) fwrite($fp, "\n". $data);
fclose($fp);
echo '<p>Votre message a bien été ajouté !<br />Retournez sur <a href="'.SELF.'">la page principale</a> pour le voir...</p>';
break;
}
}
echo "\n".'<form method="post" action="'.SELF.'&func=sign"><p><label for="name">Votre identité :</label><br /><input class="textbox" type="text" name="name" id="name" value="'.$name.'" size="24" /><br /><label for="mesg">Votre message :</label><br /><textarea class="textbox" name="mesg" id="mesg" cols="20" rows="4">'.$mesg.'</textarea></p><p style="text-align: right;"><input type="submit" name="submit" value="Envoyer" class="bouton" /></p></form>';
break;
/*================================*\
-- admin --
\*================================*/
case 'admin':
if ($password == md5(ADMIN_PASS)) {
if (isset($_GET['d'])) {
/*================================*\
-- admin delete --
\*================================*/
if (isset($_GET['c'])) {
if (!$fp = @fopen(GB_FILE, 'r')) {
echo 'Impossible de lire le fichier contenant les messages. Vérifiez son emplacement et ses droits en lecture !';
break;
}
$output = '';
while (!feof($fp)) {
$line = fgets($fp, 4096);
if (substr($line, 0, 10) == $_GET['d']) {
$output .= fread($fp, filesize(GB_FILE));
fclose($fp);
if (!$fp = @fopen(GB_FILE, 'w')) {
echo 'Impossible d\'écrire dans le fichier contenant les messages. Vérifiez son emplacement et ses droits en écriture !';
break;
}
fwrite($fp, $output);
fclose($fp);
echo '<p>Le message a été <b>supprimé</b> !<br />Retour à la <a href="'.SELF.'&func=admin">page d\'administration</a>...<br /></p>';
break 2;
} else {
$output .= $line;
}
}
fclose($fp);
echo '<p>Une erreur est survenue pendant la suppression de ce message.<br />Retournez à la <a href="'.SELF.'&func=admin">page d\'administration</a> et réessayez !</p>';
}
if (!$fp = @fopen(GB_FILE, 'r')) {
echo 'Impossible de lire le fichier contenant les messages. Vérifiez son emplacement et ses droits en lecture !';
break;
}
while (!feof($fp)) {
$line = fgets($fp, 4906);
if (substr($line, 0, 10) == $_GET['d']) {
list($date, $name, $mesg) = explode ('|', $line);
echo '<p>Êtes-vous certain de vouloir supprimer ce message ?</p>';
echo '<p><b>'.$name.'</b> - le '.date(DATE_FORMAT, $date).'<br />'.$mesg.'</p>';
echo '<p><a href="'.SELF.'&func=admin&d='.$_GET['d'].'&c=1">Oui</a> | <a href="'.SELF.'&func=admin">Non</a></p>';
break 2;
}
}
fclose($fp);
echo '<p>Une erreur est survenue pendant l\'ouverture de ce message.<br />Retournez à la <a href="'.SELF.'?func=admin">admin</a> page and try again</p>';
} elseif (isset($_GET['e'])) {
/*================================*\
-- admin edit --
\*================================*/
if (isset($_GET['c'])) {
$name = (isset($_POST['name'])) ? strip_chars($_POST['name']) : NULL;
$mesg = (isset($_POST['mesg'])) ? strip_chars($_POST['mesg']) : NULL;
$errors = NULL;
$name_len = strlen($name);
$mesg_len = strlen($mesg);
if ($name) {
if ($name_len > MAX_NAME_LEN) {
$errors = '- Name is too long, '.$name_len.' (Max: '.MAX_NAME_LEN.')<br />';
}
} else {
$errors = '- Name field is empty<br />';
}
if ($mesg) {
if ($mesg_len > MAX_MESG_LEN) {
$errors.= '- Message is too long, '.$mesg_len.' (Max: '.MAX_MESG_LEN.')<br />';
} elseif ($mesg_len < MIN_MESG_LEN) {
$errors.= '- Message is too short (Min: '.MIN_MESG_LEN.')<br />';
}
} else {
$errors.= '- Message field is empty<br />';
}
if ($errors) {
echo '<p>'.$errors.'</p>';
} else {
if (!$fp = @fopen(GB_FILE, 'r')) {
echo 'Unable to open guestbook file for reading, check location and file permissions.';
break;
}
$output = '';
while (!feof($fp)) {
$line = fgets($fp, 4096);
if (substr($line, 0, 10) == $_GET['e']) {
list($date, , , $ip) = str_replace('\|', '|', preg_split("/(?<!\\\)(\|)/", $line));
$output .= $date.'|'.str_replace("\n", NULL, str_replace('|', '\|', $name)).' |'.str_replace("\n", '<br />', bbcode($mesg)).' |'.$ip."|\n".fread($fp, filesize(GB_FILE));
fclose($fp);
$fp = @fopen(GB_FILE, 'w');
fwrite($fp, $output);
fclose($fp);
echo '<p>Message has been <b>edited</b>.<br />Go back to the <a href="'.SELF.'?func=admin">admin</a> page<br /></p>';
break 2;
} else {
$output .= $line;
}
}
fclose($fp);
echo '<p>There was an error finding this post, it doesn\'t seem to exist<br />Go back to the <a href="'.SELF.'?func=admin">admin</a> page and try again</p>';
}
}
if (isset($_POST['submit'])) {
echo "\n".'<form method="post" action="'.SELF.'?func=admin&e='.$_GET['e'].'&c=1"><p><label for="name">Name:</label><br /><input type="text" name="name" id="name" value="'.$name.'" size="24" /><br /><label for="mesg">Message:</label> <a href="'.SELF.'?func=bbcode">BBCode</a><br /><textarea name="mesg" id="mesg" cols="20" rows="4">'.$mesg.'</textarea><br /><input type="submit" name="submit" value="Edit" /></p></form>';
break;
}
if (!$fp = @fopen(GB_FILE, 'r')) {
echo 'Unable to open guestbook file for reading, check location and file permissions.';
break;
}
while (!feof($fp)) {
$line = fgets($fp, 4906);
if (substr($line, 0, 10) == $_GET['e']) {
list(, $name, $mesg) = str_replace('\|', '|', preg_split("/(?<!\\\)(\|)/", $line));
$mesg = preg_replace("(\<b\>(.+?)\<\/b>)is", "[b]$1[/b]", $mesg);
$mesg = preg_replace("(\<i\>(.+?)\<\/i\>)is", "[i]$1[/i]", $mesg);
$mesg = preg_replace("(\<u\>(.+?)\<\/u\>)is", "[u]$1[/u]", $mesg);
$mesg = preg_replace("(\<del\>(.+?)\<\/del\>)is", "[s]$1[/s]", $mesg);
$mesg = str_replace('<br />', "\n", $mesg);
$mesg = strip_tags($mesg);
echo "\n".'<form method="post" action="'.SELF.'?func=admin&e='.$_GET['e'].'&c=1"><p><label for="name">Name:</label><br /><input type="text" name="name" id="name" value="'.$name.'" size="24" /><br /><label for="mesg">Message:</label> <a href="'.SELF.'?func=bbcode">BBCode</a><br /><textarea name="mesg" id="mesg" cols="20" rows="4">'.$mesg.'</textarea><br /><input type="submit" name="submit" value="Edit" /></p></form>';
break 2;
}
}
fclose($fp);
echo '<p>There was an error finding this post, it doesn\'t seem to exist<br />Go back to the <a href="'.SELF.'?func=admin">admin</a> page and try again</p>';
}
else
{
/*================================*\
-- admin default --
\*================================*/
$gb_size = filesize(GB_FILE);
echo '<p>======================<br />';
echo 'file size: '.round($gb_size / 1024, 1).'KB<br />';
echo 'version this/latest: <a><b>3.0.3</b></a>/<script src="http://flumpcakes.co.uk/php/guestbook/guestbook.js" type="text/javascript"></script><noscript><a href="http://flumpcakes.co.uk/php/guestbook/"><b>latest</b></a></noscript>';
echo '<br />======================</p>';
if (!$fp = @fopen(GB_FILE, 'r')) {
echo 'Unable to open guestbook file for reading and writing, check location and file permissions.';
break;
}
$i = 0;
$data = NULL;
$to_show = (P * MAX_PER_PAGE) - MAX_PER_PAGE;
if (P > 1) echo '<p><b>Page '.P.'</b></p>';
while (!feof($fp)) {
$i++;
if ($i > ($to_show + MAX_PER_PAGE)) break;
$data = fgets($fp, 4096);
if (empty($data)) break;
if ($i > $to_show) {
list ($date, $name, $mesg, $ip) = str_replace('\|', '|', preg_split("/(?<!\\\)(\|)/", $data));
echo ("\n<p><a href=\"".SELF."?func=admin&e=$date\">[edit]</a> <a href=\"".SELF."?func=admin&d=$date\">[delete]</a> <a href=\"http://whois.sc/$ip\">[whois]</a><br /><span><b>$name</b> on ".date(DATE_FORMAT, $date)."</span><br />$mesg</p>");
}
}
if ($i > MAX_PER_PAGE) {
$line_count = substr_count(fread($fp, $gb_size), "\n") + $i;
$line_count = ceil($line_count / MAX_PER_PAGE);
$s = 1;
$f = $line_count + 1;
echo "\n".'<p>Page: # ';
if ($line_count > MAX_PER_PAGE) {
if (P < 6) {
$s = 1;
$f = 10;
} elseif (($line_count-P) < 6) {
$s = $line_count - 8;
$f = $line_count;
} else {
$s = P -3;
$f = $s + 8;
}
echo (P > 5) ? ' <a href="'.SELF.'?func=admin">1</a>-' : NULL;
}
for ($k=$s; $k<=$f; $k++) {
echo ($k == P) ? "$k " : "<a href=\"".SELF."?func=admin&p=$k\">$k</a> ";
}
echo ($k <= $line_count) ? "of <a href=\"".SELF."?func=admin&p=$line_count\">$line_count</a></p>" : '</p>';
}
fclose($fp);
}
} else {
if (isset($_POST['submit'])) echo '<p>Sorry wrong password</p>';
echo "\n".'<form method="post" action="'.SELF.'?func=admin"><p><input type="password" name="password" size="20" /> <input type="submit" value="Login" name="submit" /></p></form>';
}
break;
/*================================*\
-- BBCode --
\*================================*/
case 'bbcode':
echo '
<p>BBCode is a way of putting special effects into your text. The allowed BBCode is:</p>
<ul>
<li>[b]<b>bold</b>[/b]</li>
<li>[i]<i>italic</i>[/i]</li>
<li>[u]<u>underline</u>[/u]</li>
<li>[s]<del>strikethrough</del>[/s]</li>
</ul>
<p>For example: to make <b>this</b> bold. when posting a message add the tags [b] and [/b] around the text (as seen above).</p>
';
break;
}
/*================================*\
-- functions --
\*================================*/
function strip_chars($var) {
return trim(str_replace("\r", NULL, htmlspecialchars(stripslashes(strip_tags($var)), ENT_QUOTES)));
}
function bbcode($var) {
if (ALLOW_URLS == true)
$var = preg_replace('/http:\/\/[\w]+(.[\w]+)([\w\-\.,@?^=%&:\/~\+#]*[\w\-\@?^=%&\/~\+#])?/i', '<a href="$0">$0</a>', $var);
$var = preg_replace('(\[b\](.+?)\[\/b\])is', '<b>$1</b>', $var);
$var = preg_replace('(\[i\](.+?)\[\/i\])is', '<i>$1</i>', $var);
$var = preg_replace('(\[u\](.+?)\[\/u\])is', '<u>$1</u>', $var);
$var = preg_replace('(\[s\](.+?)\[\/s\])is', '<del>$1</del>', $var);
return trim(str_replace('|', '\|', $var));
}
/*================================*\
-- end functions --
\*================================*/
// echo "\n".'<p><span><a href="'.SELF.'?func=admin">Admin Area</a>';
// if (!empty($password)) echo ' <a href="'.SELF.'?func=logout">Logout</a>';
// echo '</span></p>';
?>
Ci dessous c'est un exemple de message du fichier livredor.dat :
1169227255|SolykZ |Ceci est un message...<br /><br />Comment le trouvez-vous ? |213.219.160.99|
J'pense qu'avec ça vous pourrez voir plus clair... J'ai tenté de contacter le gars qui a fait ce livre d'or, il a viré son formulaire de contact car il se faisait spammer... J'ai bien eu envie de lui proposer le mien mais vu que je ne peux pas le contacter, ça risque d'être dur !