error_reporting(7);
$debug = 0;
require "./inc.php3";
require "./vars.php3";
if (isset($buscar_x)) $buscar = 1;
function fi($text = '') {
global $debug;
if ($debug) {
while (list($k, $v) = each($GLOBALS)) {
echo "$k = $v", br;
if (is_array($v)) {
while(list($k1, $v1) = each($v)) {
echo " $k1 = $v1", br;
}
}
}
}
if ($e = mysql_error()) die('MySQL error : ' . mysql_errno() . " $e\n$text");
die($text);
}
mysql_connect($mysqlhost, $usuari, $clau) or fi('Error al conectar amb el servidor MySQL');
mysql_select_db($database) or fi("No trobo la base de dades `efesta' del MySQL");
if ($show_foto) {
$query = "select foto_nom, unix_timestamp(alta) as alta, directe from forum where id=$show_foto";
$result = mysql_query($query) or die();
$foto = mysql_result($result, 0, "foto_nom");
$alta = mysql_result($result, 0, "alta");
$directe = mysql_result($result, 0, "directe");
$escriure = 0;
$llegit = -1;
if ($foto and file_exists($foto)) {
$h = fopen($foto, 'r');
}
else {
$h = fopen("$fotophp3?alta=$alta&directe=$directe&time=" . time(),'r');
if ($h) {
$status = fgets($h, 1024);
//echo "status = $status
";
if (substr($status, 0, 1) == '+') {
$foto = substr($status, 2, -1);
$size = substr(fgets($h, 1024), 0, -1);
//echo "size = $size
";
$escriure = 1;
$llegit = 0;
}
else {
fclose($h);
$h = 0;
}
}
}
if (! $h) {
if ($directe) {
$foto = ($act_dosmil ? './grafics/cara2.jpg' : './grafics/cara1.jpg');
}
else {
$foto = ($act_dosmil ? './grafics/calisay2.jpg' : './grafics/calisay1.jpg');
}
$h = fopen($foto, 'r');
}
$type = strtolower(substr(strrchr($foto,'.'), 1));
header("Content-type: image/$type");
if ($escriure) {
//$mini = "./fotos/mini$show_foto.gif";
$foto = "./fotos/foto$show_foto.$type";
if (! $wh = fopen($foto, 'w+')) {
$escriure = 0;
}
}
else {
$size = filesize($foto);
}
if ($escriure) {
while (! feof($h)) {
$read = fread($h, 1024);
echo $read;
fwrite($wh, $read);
$llegit += strlen($read);
}
fclose($h);
fclose($wh);
}
else {
fpassthru($h);
}
if ($escriure) {
if ($llegit == $size) {
$query = "update forum set foto_nom='$foto' where id=$show_foto";
$result = mysql_query($query);
/* if ($gran = imagecreatefromgif($foto)) {
$act = getimagesize($foto);
$alt = round($act[1] / ($act[0] / 50), 0);
$peti = imagecreate(50, $alt);
imagecopyresized($peti, $gran, 0,0,0,0, 50, $alt, $act[0], $act[1]);
imagegif($peti, $mini);
$query = "update forum set mini_nom = $mini";
$result = mysql_query($query);
} */
}
}
exit;
}
function crea_radio($opt, $nom) {
global $$nom;
$set = $$nom;
while (list($k1, $o) = each($opt)) {
$check = ($o == $set ? 'checked' : '' );
global $$o;
$$o = "";
}
}
function crea_checkbox($opt, $nom) {
global $$nom;
$set = $$nom;
while (list($k1, $o) = each($opt)) {
$check = (in_array($o, $set) ? 'checked' : '' );
global $$o;
$$o = "";
}
}
function urlmes($list) {
$ret = '';
while (list($k, $v) = each($list)) {
if (is_array($GLOBALS[$v])) {
while (list($k2, $v2) = each($GLOBALS[$v])) {
$ret .= "&$v" . "[]=" . urlencode($v2) ;
}
}
else {
$ret .= "&$v=" . urlencode($GLOBALS[$v]);
}
}
return $ret;
}
function forum_dades($id_miss) {
$query = "select * from forum where id=$id_miss";
$result = mysql_query($query) or fi();
$dades = mysql_fetch_array($result, MYSQL_ASSOC);
global $url;
global $id;
global $nom, $titol, $missatge;
global $directe, $extern, $correu, $mobil;
global $foto_nom, $foto_url;
global $alta;
global $any, $mes, $dia, $hora, $minut, $segon;
global $data_dma, $hora_hm, $hora_hms;
global $mis_dosmil, $mis_milnou;
global $diad_horah;
$id = $dades[id];
$nom = stripslashes($dades[nom]);
$titol = stripslashes($dades[titol]);
$missatge = ereg_replace("\n", "
", stripslashes($dades[missatge]));
$directe = $dades[directe];
$extern = $dades[extern];
$correu = $dades[correu];
$mobil = $dades[mobil];
$foto_nom = $dades[foto_nom];
$foto_url = "$url?show_foto=$id";
$alta = $dades[alta];
list($any, $mes, $dia, $hora, $minut, $segon) = split('[: \-]', $alta);
$data_dma = "$dia-$mes-$any";
$hora_hm = "$hora:$minut";
$hora_hms = "$hora:$minut:$segon";
$mis_dosmil = ("$any-$mes-$dia $hora:$minut:$segon" >= $diad_horah);
$mis_milnou = ("$any-$mes-$dia $hora:$minut:$segon" < $diad_horah);
return 1;
}
function loop_talatal() {
global $lin_parell, $col_parell;
$col_parell = ! $col_parell;
global $arr_talatal, $pagina, $num_talatal;
global $de_talatal, $a_talatal, $talatal, $act_talatal, $url_talatal;
global $tr_talatal, $limit_talatal;
global $url, $mes_buscar;
if (! $talatal = next($arr_talatal)) {
reset($arr_talatal);
$num_talatal = 0;
return 0;
}
if ($num_talatal % $tr_talatal == 0) {
$limit_talatal = 1 ;
$lin_parell = ! $lin_parell ;
}
else {
$limit_talatal = 0;
}
$act_talatal = ($pagina == ++$num_talatal);
$url_talatal = $url . "?pagina=$num_talatal" . $mes_buscar;
$a_talatal = a($url_talatal, $talatal);
$bo_talatal = submit('',$talatal) . hidden('pagina',$num_talatal) . $hid_buscar;
return 1;
}
function loop_llistar() {
global $llistarmax, $llistarcount, $result;
if (++$llistarcount > $llistarmax) return 0;
global $lin_parell;
$lin_parell = ! $lin_parell;
if (! $row = mysql_fetch_array($result)) return 0;
forum_dades($row[id]);
global $bo_borrarmissatge;
global $url_veuremissatge, $bo_veuremissatge;
global $id, $url;
$bo_borrarmissatge = start_form() .
submit("", "Borrar") .
hidden('borrarmissatge', $id) .
end_form();
$url_veuremissatge = "$url?veuremissatge=$id";
$a_veuremissatge = a($url_veuremissatge, 'Veure Missatge');
$bo_veuremissatge = start_form() .
submit("", "Missatge") .
hidden('veuremissatge', $id) .
end_form();
return 1;
}
function quote($str) {
return ($str = "'" . addslashes($str) . "'");
}
function str2time($str) {
list($any, $mes, $dia, $hora, $minut, $segon) = split('[: \-]', $str);
return mktime($hora, $minut, $segon, $mes, $dia, $any);
}
function data2ascii($data, $hora = '') {
$ts = data2ts($data, $hora);
return date('Y-m-d H:i:s', $ts);
}
function data2ts($data, $hora = '') {
if ($hora == '') {
list($d, $m, $a, $h, $i, $s) = split('[^0-9]', $data);
}
else {
list($d, $m, $a) = split('[^0-9]', $data);
list($h, $i, $s) = split('[^0-9]', $hora);
}
if (checkdate($m, $d, $a)) {
return mktime($h, $i, $s, $m, $d, $a);
}
else {
return mktime(0,0,0,0,0,0);
}
}
function restadata($ts1, $ts2) {
$s = abs($ts1 - $ts2);
$d = floor($s / 86400);
$s %= 86400;
$h = floor($s / 3600);
$s %= 3600;
$m = floor($s / 60);
$s %= 60;
return array($d, $h, $m, $s);
}
/////////////////////////////////////////////////////////////////////////////
$url = $PHP_SELF;
$lin_parell = 0;
$col_parell = 0;
$act_directe = (getenv('REMOTE_ADDR') == $ipdirecte);
$t = time();
$act_dia = date('d-m-Y', $t);
$act_hora = date('H:i:s', $t);
$act_dosmil = (date('Y-m-d H:i:s', $t) >= $diad_horah);
$act_milnou = (date('Y-m-d H:i:s', $t) < $diad_horah);
$t2000 = str2time($diad_horah);
list($dif_d, $dif_h, $dif_m, $dif_s) = restadata($t, $t2000);
$arr = segons_text(abs($t - $t2000));
$dif_d_t = $arr['d'];
$dif_h_t = $arr['h'];
$dif_m_t = $arr['m'];
$dif_s_t = $arr['s'];
unset($arr);
$inici_form = start_form();
$fi_form = end_form();
$bo_reset = reset_();
$url_llistar = "$url?llistar=1";
$bo_llistar = submit('llistar', 'Últims Missatges');
$a_llistar = a($url_llistar, '');
$url_cercador = "$url?cercador=1";
$bo_cercador = submit('cercador', 'Cercar Missatges');
$a_cercador = a($url_cercador, '');
$url_feralta = "$url?feralta=1";
$bo_feralta = submit('feralta',"Escriu un Missatge !");
$a_feralta = a($url_feralta, '');
$url_aleatori = "$url?aleatori=1";
$bo_aleatori = submit('aleatori',"Missatge Qualsevol");
$a_aleatori = a($url_aleatori, '');
////////////////////
// autentificació //
////////////////////
function entrar_clau() {
Header("WWW-Authenticate: Basic realm=\"eFesta2000\"");
Header("HTTP/1.0 401 Unauthorized");
echo "Autentificació cancel.lada\n
";
echo "Tornar a l'efesta2000";
exit;
}
if (isset($buscar) and $bu_nom == 'fer') {
if ($bu_titol == 'login') {
$login = 1;
unset($buscar);
}elseif ($bu_titol == 'logout') {
$logout = 1;
unset($buscar);
}
}
$es_pot_esborrar = false;
if (isset($PHP_AUTH_USER) and isset($PHP_AUTH_PW)) {
if ($PHP_AUTH_USER == $usuari and $PHP_AUTH_PW == $clau) {
if (isset($logout)) {
entrar_clau();
}else{
$es_pot_esborrar = true;
}
} elseif (isset($login)) {
entrar_clau();
}
}elseif (isset($login)) {
entrar_clau();
}
//////////////////////////////
// Dades pel cercaform.html //
//////////////////////////////
if ($bu_hora1 == '') $bu_hora1 = '00:00:00';
if ($bu_hora2 == '') $bu_hora2 = '23:59:59';
if ($bu_data1 == '') $bu_data1 = '01-01-1999';
if ($bu_data2 == '') $bu_data2 = '31-12-2000';
$f_bu_nom = text_field('bu_nom', $bu_nom, 21, 50);
$f_bu_titol = text_field('bu_titol', $bu_titol, 21, 50);
$f_bu_missatge = text_field('bu_missatge', $bu_missatge, 21, 50);
$f_bu_data1 = text_field('bu_data1', $bu_data1, 11, 11);
$f_bu_data2 = text_field('bu_data2', $bu_data2, 11, 11);
$f_bu_hora1 = text_field('bu_hora1', $bu_hora1, 8, 8);
$f_bu_hora2 = text_field('bu_hora2', $bu_hora2, 8, 8);
$opt_tipus = array('f_bu_directe','f_bu_extern','f_bu_correu','f_bu_mobil');
if (! isset($set_tipus)) $set_tipus = $opt_tipus;
crea_checkbox($opt_tipus, 'set_tipus');
$opt_ordre = array('f_or_alta','f_or_nom','f_or_titol');
if (! isset($set_ordre)) $set_ordre = 'f_or_alta';
crea_radio($opt_ordre, 'set_ordre');
$f_or_invers = '' : '>');
$bo_buscar = submit('buscar', 'Buscar');
///////////////////////////////////////////////////////////////////
if (isset($buscar)) {
$hid_buscar = hidden('buscar', 1);
$mes_buscar = urlmes(array('buscar','ord_invers','set_ordre','set_tipus',
'bu_nom','bu_titol','bu_missatge',
'bu_data1','bu_data2','bu_hora1','bu_hora2'));
}
else {
$mes_buscar = $hid_buscar = '';
}
if (isset($altafeta)) {
$nom = htmlspecialchars(stripslashes($nom));
$titol = htmlspecialchars(stripslashes($titol));
$missatge = htmlspecialchars(stripslashes($missatge));
if ($nom == '' or $titol == '' or $missatge == '') {
$feralta = 1;
$err_blanc = 1;
$altafeta = 0;
}
else {
$err_blanc = 0;
quote(&$nom);
quote(&$titol);
quote(&$missatge);
$query = "insert into forum set alta=now(),nom=$nom,titol=$titol,missatge=$missatge";
$query .= ($act_directe ? ",directe=1" : ",extern=1");
$result = mysql_query($query);
$nom = $titol = $missatge = '';
$veuremissatge = mysql_insert_id();
}
}
if (isset($feralta) and $feralta) {
echo "
L'Alta de nous misstges no està disponible
Tornar a l'Efesta
";
fi();
$bo_altafeta = submit('altafeta', 'Enviar');
$f_nom = text_field('nom', $nom, 45, 45);
$f_titol = text_field('titol', $titol, 45, 60);
$f_missatge = textarea('missatge', $missatge, 8, 50);
include incl_tmpl("./alta.html");
fi();
}
if (isset($borrarmissatge) and $es_pot_esborrar) {
$query = "delete from forum where id=$borrarmissatge";
$result = mysql_query($query) or fi();
echo "