<?php

// ------------------------------------------------------------------------- //
// Forum                                                                     //
// ------------------------------------------------------------------------- //
// Auteur: Bruno Castagné <ccrealink@aol.com>                                //
// Web:    http://www.net16annonce.com                                       //
// ------------------------------------------------------------------------- //

/*
Voici un forum qui ne tient que sur un seul fichier. Ultra rapide, simple a
mettre en place. Les urls sont cliquables, la personne qui pose une question
peut recevoir directement un mel pour chaque reponse, vous pouvez envoyer un mel
directement a une personne. Les message sont nettoyer tous les 60 jours. Vous
avez besoin d'une base Mysql. On peut déposer du code php sans risque.

Pour ceux et celles qui débutent et qui n'ont vraiment pas envie de se prendre
la tête avec un forum voici ce que je vous propose...
Simple et rapide d'exécution, il ne tient que sur un fichier. Creer 2 tables
dans votre base de données comme suit:

CREATE TABLE faq_question (
  id varchar(8) NOT NULL default '',
  texte longtext NOT NULL,
  auteur varchar(50) NOT NULL default '',
  date varchar(10) NOT NULL default '',
  mail varchar(100) NOT NULL default '',
  sujet varchar(100) NOT NULL default '',
  envoi char(3) NOT NULL default '',
  date_reelle datetime NOT NULL default '0000-00-00 00:00:00',
  UNIQUE KEY id (id),
  KEY auteur (auteur)
) TYPE=MyISAM;

CREATE TABLE faq_reponse (
  id varchar(8) NOT NULL default '',
  texte longtext NOT NULL,
  auteur varchar(50) NOT NULL default '',
  date varchar(10) NOT NULL default '',
  mail varchar(100) NOT NULL default '',
  date_reelle datetime NOT NULL default '0000-00-00 00:00:00'
) TYPE=MyISAM;

    intituler votre fichier forum.php3.
        
        Les adresses internet sont cliquables !!!!!!!!.
        On peut déposer du code php sans risques...
        Envoyer un e-mail directement à une personne.
        Recevoir un email pour chaque réponse..
*/
?>

<html><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>FORUM</title><meta name="keywords" content=""><meta name="author" content="Bruno Castagné"></head>
<STYLE type="text/css">
BODY {scrollbar-face-color: #FFCC33; scrollbar-shadow-color: #000000;
scrollbar-highlight-color: #FFCC33; scrollbar-3dlight-color: #000000;
scrollbar-darkshadow-color: #000000; scrollbar-track-color: #000000;
scrollbar-arrow-color: #990000;}
.tab1 { font-weight:bold; color:#ffffff; font-size:13px;font-family:tahoma }
.tabr {font-weight:bold; color:#000000; font-size:10px;font-family:verdana }
A {color:#99FF99; }
input {background-color:#FFCC33;color:#990000;font-weight:bold }
textarea {background-color:#FFCC33;color:#990000;font-weight:bold }
</STYLE>
<body bgcolor="#ffffcc" text="#9966ff" link="#0000ff" vlink="#800080" alink="#ff0000">
<form name="f" action="forum.php3" method="post">
<?
//// A MODIFIER SUIVANT VOS PARAM.....
$host="127.0.0.1";
$user="root";
$pw="";
$db="forum";// ou votre base de données....
//////// ***********
$my_sql=mysql_connect($host,$user,$pw) or die(mysql_error());mysql_select_db("$db") or die(mysql_error());
$an=date("Y");$mois=date("m");$jours=date("j");$heure=date("H");$minute=date("i");
if(
$jours < 10){$date=date("Y-m-0j");}else{$date=date("Y-m-j");}
$dateconnect=date("Y-m-j H:i:00",mktime($heure,$minute,0,$mois,$jours,$an));
print(
"<table><tr bgcolor=#000000><td><b>$dateconnect</b></td></table>");
print(
"<center><h2>FOIRE AUX QUESTIONS</h2><hr width=76% color=#cccc99>");
print(
"<input type=button value=\"NOUVEAU SUJET\" onclick=\"question()\">");
print(
"<hr width=76% color=#cccc99>");
//efface les questions et les réponses de plus de 60 jours
$my_question="delete from faq_question WHERE TO_DAYS(NOW()) - TO_DAYS(date_reelle) >= 60";mysql_query($my_question);
$my_reponse="delete from faq_reponse WHERE TO_DAYS(NOW()) - TO_DAYS(date_reelle) >= 60";mysql_query($my_reponse);
// envoi d'un mel perso..
if($ok){print("<hr width=76% color=#cccc99>");
print(
"J'envoie cet email directement à <u>$envoi_mel_perso</u>. Il ne sera pas visible sur le forum.<input type=hidden name=\"id\" value=\"$envoi_mel_perso\"><p>");
print(
"<table><tr><td>Votre texte:</td><td><textarea cols=50 rows=3 name=\"texte\"></textarea></td></tr>");
print(
"<tr><td>De la part de:</td><td><input type=text size=25 name=\"part\"></td><tr>");
print(
"<tr><td colspan=2 align=center><input type=button value=\"ENVOYER\"  onclick=\"envoi_perso()\">&nbsp;<input type=button  value=\"ANNULER\" onclick=\"annule()\"></td></tr></table>");
print(
"<hr width=76% color=#cccc99>");}
if(
$mel_perso){
$texte=htmlentities(stripslashes($texte));
print(
"<b>est envoyer à $id; de la part de  $part</b>");
print(
"<b>$texte</b>");
$mailTo="$id";$mailSubject="Reponse du forum.\n";$mailBody="$texte\n";$mailHeaders="$part";$ok=mail($mailTo, $mailSubject, $mailBody, $mailHeaders);
}
//reponde à une question....
if($resp){
print(
"<p>$rep<br>");
$my="select * from faq_question where id like '$valeur' ";
$res=mysql_query($my);
print(
"<table width=600><tr bgcolor=#000000>");
while(
$row=mysql_fetch_array($res)){$id=$row[id];
if(
$row[envoi]=='oui'){$retour_mail=$row[mail];}else{$retour_mail="";}
print(
"<td colspan=2>SUJET: <b>$row[sujet]</b></td></tr><tr>");
print(
"<td colspan=2><b><u>$row[auteur] demande:</u>&nbsp;");
//// rend cliquable un lien dans le sujet...
$text1=stripslashes(htmlentities($row[texte]));
$chaine = eregi_replace("([[:alnum:]]+)://([^[:space:]]*)([[:alnum:]#?/&=])",
"<A HREF=\"\\1://\\2\\3\" TARGET=\"_blank\"><font color=#006600>\\1://\\2\\3</font></A>",$text1);
print(
$chaine);

// FIN......
}
$my_2="select * from faq_reponse where id like '$valeur'"; $res2=mysql_query($my_2);
$color1="#ffffff";$color2="#D0D0D0";$coul=$color1;
while(
$row1=mysql_fetch_array($res2)){
print(
"<tr bgcolor=$coul><td colspan=2><font color=#000099><b>$row1[auteur] a répondu le $row1[date]:</b><br>");
//// determine les liens http pour les rendre cliquables...
$text=stripslashes(htmlentities($row1[texte]));
$chaine = eregi_replace("([[:alnum:]]+)://([^[:space:]]*)([[:alnum:]#?/&=])",
"<A HREF=\"\\1://\\2\\3\" TARGET=\"_blank\"><font color=#006600>\\1://\\2\\3</font></A>",$text);
print(
$chaine);


// FIN....
print("</font></td></tr>");
print(
"<tr><td colspan=2></td></tr>");
if(
$coul == $color1){$coul=$color2;}else{$coul=$color1;}
}
print(
"<input type=hidden value=\"$id\" name=\"id\"><input type=hidden value=\"$retour_mail\" name=\"retour_mail\">");
print(
"<tr><td colspan=2 align=center><b><font color=#ff3333>REPONDRE</font></td><tr>");
print(
"<td align=right><b>AUTEUR :</b></td><td><input type=text name=\"auteur\"></td></tr><tr>");
print(
"<td align=right><b>ADRESSE :</b></td><td><input type=text name=\"adresse\"></td></tr><tr align=center>");
print(
"<td colspan=2><b>Developper votre réponse ci-dessous.</b></td></tr><tr align=center>");
print(
"<td colspan=2><textarea cols=60 rows=17 name=\"texte\"></textarea></td></tr></table><br>");
print(
"<input type=\"button\" value=\"POSTER\"  onclick=\"poste_reponse()\">&nbsp;");
print(
"<input type=\"button\" value=\"RETOUR\"  onclick=\"annule()\">");
print(
"<hr width=\"50%\" color=\"#cccc99\"><p>");
}       
if(
$quest_reponse){if($retour_mail){
$mailTo="$retour_mail";$mailSubject="Reponse du forum.";$mailBody="$auteur vous répond:\n";$mailBody.="$texte\n";$mailBody.="$adresse";$ok=mail($mailTo, $mailSubject, $mailBody);
}else{}
$date=date("d-m-Y");

$my="insert into faq_reponse (date_reelle,id,date,auteur,mail,texte) values (\"$dateconnect\",\"$id\",\"$date\",\"$auteur\",\"$adresse\",\"$texte\")";
mysql_query($my);}
if(
$quest){print("<table><tr>");
print(
"<td align=right><b>SUJET :</b></td><td><input type=text name=\"sujet\"></td></tr><tr>");
print(
"<td  align=right><b>AUTEUR :</b></td><td><input type=text name=\"auteur\"></td></tr><tr>");
print(
"<td  align=right><b>ADRESSE :</b></td><td><input type=text name=\"adresse\"></td></tr><tr>");
print(
"<td colspan=2><b>Developper votre question ci-dessous.</b></td></tr><tr>");
print(
"<td colspan=2><textarea cols=50 rows=15 name=\"texte\"></textarea></td></tr></table><br>");
print(
"Je souhaite recevoir un email pour chaque réponses :<input type=\"checkbox\" name=\"envoi_mel\"><br>");
print(
"<input type=\"button\" value=\"Poster\" style=\"background-color:#FFCC33;color:#990000\" onclick=\"poste()\">&nbsp;");
print(
"<input type=\"button\" value=\"Annuler\" style=\"background-color:#FFCC33;color:#990000\" onclick=\"annule()\">");
print(
"<hr width=\"50%\" color=\"#cccc99\"><p>");}
if(
$enr){if($envoi_mel){$envoi="oui";}else{$envoi="non";}
$id=(uniqid(''));$id=substr($id, 4, 8); $date=date("d-m-Y");
$my="insert into faq_question (date_reelle,id,date,sujet,auteur,mail,texte,envoi) values (\"$dateconnect\",\"$id\",\"$date\",\"$sujet\",\"$auteur\",\"$adresse\",\"$texte\",\"$envoi\")";
mysql_query($my);}
print(
"</center>");
$my_num="select * from faq_question order by date_reelle desc"; $res1=mysql_query($my_num);
$tot=mysql_num_rows($res1);mysql_free_result($res1);

$page_tot=ceil($tot/10);

if(
$tot<=1){$question="question";}else{$question="questions";}
if(
$page_tot<=1){$page_ecran="page";}else{$page_ecran="pages";}
if(
$page_tot == 0){$page_tot=1;}else{$page_tot=$page_tot;}
print(
"</center><font color=#993333><u><b>Il y a $tot $question sur $page_tot $page_ecran.</u></b></font><p><center>");

// interoge la table question ....
print("<table cellspacing=0 cellpadding=0>");
if(!
$x){$x=0;}else{$x=$x;}
if(!
$page){$page=1;}else{$page=$page;}
$color1="##000000";$color2="#868686";$coul=$color1;
$my_1="select * from faq_question order by date_reelle desc limit $x,10"; $res1=mysql_query($my_1);
while(
$row=mysql_fetch_array($res1)){$id=$row[id];
//interroge la table réponse sur le nombre de réponses...
print("<tr bgcolor=$coul class=\"tab1\"><td>$row[date]:</td>");
print(
"<td width=300><a href=\"javascript:repondre('$row[id]')\">&nbsp;$row[sujet]....</a></td>");
print(
"<td width=150>auteur :&nbsp;$row[auteur]</td>");
$my_2="select * from faq_reponse where id='$id'"; $res2=mysql_query($my_2);
$rep=mysql_num_rows($res2);
if(
$coul == $color1){$coul=$color2;}else{$coul=$color1;}
if(
$rep<=1){$reponse="réponse";}else{$reponse="réponses";}
print(
"<td><b>($rep $reponse</b>)</td><td></td></tr><tr>");
if(
$rep > 0 ){
$col1="#99CCFF";$col2="#749BC2"; $coul1=$col1;
while(
$row=mysql_fetch_array($res2)){
print(
"<td></td><td colspan=2 bgcolor=\"$coul1\" class=\"tabr\">$row[auteur]&nbsp;a répondu.<a href=\"javascript:envoi_le_perso('$row[mail]')\">&nbsp;<font color=#FFFFCC>$row[mail]</font></a>&nbsp;&nbsp;[$row[date_reelle]]</td></tr>");
if(
$coul1 == $col1){$coul1=$col2;}else{$coul1=$col1;}
}}}
print(
"</table><p>");
print(
"<center><table><tr><td><input type=button value=\"<<<\" $style onclick=\"moins()\"></td><td><input type=text value=\"PAGE: $page\" readonly style=\"background-color:#000000;color:#99FF66;text-align:center;font-weight:bold\" size=10></td><td><input type=button value=\">>>\" $style onclick=\"plus()\"></td></tr>");

print(
"<tr><td colspan=3 align=center><input type=button value=\"QUITTER\" $style onclick=\"window.close()\"></td></tr>");
print(
"</table><center>");

print(
"<input type=hidden name=\"x\" value=\"$x\"><input type=hidden name=\"total\" value=\"$tot\"><input type=hidden name=\"page\" value=\"$page\">");
?>
<input type="hidden" name="quest"><input type="hidden" name="enr"><input type="hidden" name="valeur"><input type="hidden" name="resp">
<input type="hidden" name="quest_reponse"><input type="hidden" name="intro"><input type="hidden" name="mel_perso">
<input type="hidden" name="ok"><input type="hidden" name="envoi_mel_perso">
<script language="javascript">
var x;var y;var xpage;
function question(){document.f.quest.value='oui';f.submit();}
function poste(){
if(document.f.sujet.value=="" || document.f.texte.value==""){alert('Votre question n\'a pas été posée  ou\n vous n\'avez pas développer votre question ²!');return true;}else
{document.f.enr.value='oui';f.submit();}}
function annule(){f.submit();}
function repondre(a){document.f.valeur.value=a;document.f.resp.value='oui';f.submit();}
function poste_reponse(){
if(document.f.texte.value==""){alert('Vous devez écrire une réponse, ou alors cliquez sur retour !');return true;}else
{document.f.quest_reponse.value='oui';f.submit();}}
function plus(){var ytot=document.f.total.value;y = Math.abs(document.f.x.value);y+=10;if(y>=ytot){}
        else{xpage=Math.abs(document.f.page.value);xpage++;document.f.page.value=xpage;document.f.x.value=y;f.submit();}}
function moins(){y=Math.abs(document.f.x.value);y=y-10;if(y<0){y=0;}
  else{xpage=Math.abs(document.f.page.value);xpage--;document.f.page.value=xpage;document.f.x.value=y;f.submit();}}
function envoi_perso(){document.f.intro.value='oui';document.f.mel_perso.value='oui';f.submit();}
function envoi_le_perso(m){document.f.intro.value='oui';document.f.ok.value='oui';document.f.envoi_mel_perso.value=m;f.submit();}
</script></form></body></html>