X-Git-Url: https://mop.ddnsfree.com/gitweb/?a=blobdiff_plain;f=web%2Findex_wr.php;h=bdf0cb99b22bccfa7a5b9fd69053aaf364d552a3;hb=0b7233416fd5e2ef879170f5a49ff936ff27deef;hp=60c9af921a89bdeccb5078b085ace52764236f2b;hpb=4f18d0e24bd1c4c2895bfa13c9d164e2ddd22d47;p=brisk.git
diff --git a/web/index_wr.php b/web/index_wr.php
index 60c9af9..bdf0cb9 100644
--- a/web/index_wr.php
+++ b/web/index_wr.php
@@ -2,7 +2,7 @@
/*
* brisk - index_wr.php
*
- * Copyright (C) 2006-2008 Matteo Nastasi
+ * Copyright (C) 2006-2009 Matteo Nastasi
* mailto: nastasi@alternativeoutput.it
* matteo.nastasi@milug.org
* web: http://www.alternativeoutput.it
@@ -52,7 +52,7 @@ if (array_search($_SERVER['REMOTE_ADDR'], $G_black_list) !== FALSE) {
$is_spawn = FALSE;
-log_wr('COMM: '.$mesg);
+log_wr('COMM: '.xcapemesg($mesg));
$sem = Room::lock_data();
if (($room = &Room::load_data()) == FALSE) {
@@ -63,7 +63,7 @@ if (($room = &Room::load_data()) == FALSE) {
}
if (($user = &$room->get_user($sess, &$idx)) == FALSE) {
Room::unlock_data($sem);
- $argz = explode('|', $mesg);
+ $argz = explode('|', xcapemesg($mesg));
if ($argz[0] == 'getchallenge') {
GLOBAL $cli_name;
@@ -107,6 +107,9 @@ if (($user = &$room->get_user($sess, &$idx)) == FALSE) {
else if ($argz[0] == 'about') {
echo show_notify(str_replace("\n", " ", $G_room_about), 0, "torna ai tavoli", 400, 200);
}
+ else if ($argz[0] == 'passwdhowto') {
+ echo show_notify(str_replace("\n", " ", $G_room_passwdhowto), 0, "torna ai tavoli", 400, 200);
+ }
else if ($argz[0] == 'roadmap') {
echo show_notify(str_replace("\n", " ", $G_room_roadmap), 0, "torna ai tavoli", 400, 200);
}
@@ -119,7 +122,7 @@ if (($user = &$room->get_user($sess, &$idx)) == FALSE) {
}
exit;
}
-$argz = explode('|', $mesg);
+$argz = explode('|', xcapemesg($mesg));
log_wr('POSTSPLIT: '.$argz[0]);
@@ -186,6 +189,13 @@ else if ($argz[0] == 'mesgtoadm') {
log_wr("INFO:SKIP:argz == mesgtoadm name: [".$cli_name."] AUTH: ".($user->flags & USER_FLAG_AUTH));
if ($user->flags & USER_FLAG_AUTH) {
if (($wa_lock = Warrant::lock_data()) != FALSE) {
+ $userdb = new LoginDB();
+
+ if (($ema = $userdb->getmail($user->name)) != FALSE) {
+ // mail("brisk@alternativeoutput.it",
+ mail("nastasi", urldecode($cli_subj), urldecode($cli_mesg), sprintf("From: %s <%s>", $user->name, $ema));
+ }
+
if (($fp = @fopen(LEGAL_PATH."/messages.txt", 'a')) != FALSE) {
/* Unix time | session | nickname | IP | where was | mesg */
fwrite($fp, sprintf("%ld|%s|%s|%s\n", $curtime, $user->name,
@@ -220,6 +230,116 @@ else if ($argz[0] == 'mesgtoadm') {
}
+
+else if ($argz[0] == 'poll') {
+ GLOBAL $G_with_poll, $G_poll_name, $cli_choose, $cli_poll_name;
+
+ $poll_lock = FALSE;
+ $curtime = time();
+ $mesg_to_user = "";
+
+ $fp = FALSE;
+ $echont = "0";
+
+ /*
+ DONE - autorizzato ?
+ DONE - ci sono poll attivi ?
+ - verifica che il poll_name del client sia uguale a quello sul server
+ DONE - lock
+ DONE - apro file r+ con fallback in w+
+ DONE - vedo se ha già votato
+ DONE - se si: messaggio di voto già dato
+ se no: accetto il voto e lo segno; messaggio
+ chiudo file
+ */
+
+ $dobreak = FALSE;
+ do {
+ log_wr("INFO:SKIP:argz == poll name: [".$cli_name."] AUTH: ".($user->flags & USER_FLAG_AUTH));
+ if (($user->flags & USER_FLAG_AUTH) != USER_FLAG_AUTH) {
+ $mesg_to_user = sprintf('chatt_sub("%s", [2, "%s"],"Per partecipare al sondaggio devi essere autenticato.");', $dt, NICKSERV);
+ log_wr("break1");
+ break;
+ }
+
+ if ($G_with_poll == FALSE && $G_poll_name != FALSE && $G_poll_name != "") {
+ $mesg_to_user = show_notify("
Al momento non è attivo alcun sondaggio.", 0, "chiudi", 400, 110);
+ log_wr("break2");
+ break;
+ }
+
+ if ($cli_choose == "" || !isset($cli_choose)) {
+ $mesg_to_user = show_notify("
Non hai espresso nessuna preferenza.", 0, "chiudi", 400, 110);
+ log_wr("break2.5");
+ break;
+ }
+
+ if (($poll_lock = Poll::lock_data()) == FALSE) {
+ /* MLANG: "E\' occorso un errore durante il salvataggio, riprova o contatta l\'amministratore." */
+ $mesg_to_user = sprintf('chatt_sub("%s", [2, "%s"],"E\' occorso un errore durante il salvataggio, riprova o contatta per mail l\'amministratore.");', $dt, NICKSERV);
+ log_wr("break3");
+ break;
+ }
+
+ if (($fp = @fopen(LEGAL_PATH."/".$G_poll_name.".txt", 'r+')) == FALSE)
+ $fp = @fopen(LEGAL_PATH."/".$G_poll_name.".txt", 'w+');
+
+ if ($fp == FALSE) {
+ $mesg_to_user = sprintf('chatt_sub("%s", [2, "%s"],"E\' occorso un errore durante il salvataggio, riprova o contatta per mail l\'amministratore.");', $dt, NICKSERV);
+ log_wr("break4");
+ break;
+ }
+
+ log_wr("poll: cp");
+ fseek($fp, 0);
+
+ log_wr("poll: cp2");
+ while (!feof($fp)) {
+ log_wr("poll: cp3");
+ $bf = fgets($fp, 4096);
+ log_wr("poll: cp3.1");
+ $arli = csplitter($bf, '|');
+ if (count($arli) == 0)
+ break;
+ log_wr("poll: cp3.2");
+ if (strcasecmp($arli[1], $user->name) == 0) {
+ $mesg_to_user = show_notify("
Per questo sondaggio hai già votato.
Non si può esprimere la propria preferenza più di una volta.", 0, "chiudi", 400, 110);
+ $dobreak = TRUE;
+ break;
+ }
+ }
+ log_wr("poll: cp4");
+
+ if ($dobreak) {
+ log_wr("break5");
+ break;
+ }
+
+ /* Unix time | nickname | choose */
+ fwrite($fp, sprintf("%ld|%s|%s\n", $curtime, xcapelt($user->name), xcapelt(urldecode($cli_choose))));
+ fflush($fp);
+ $mesg_to_user = show_notify("
Il tuo voto è stato registrato.", 0, "chiudi", 400, 110);
+ $echont = "1";
+ log_wr("poll: cp5");
+ } while (0);
+
+ if ($fp != FALSE)
+ fclose($fp);
+
+ if ($poll_lock != FALSE)
+ Poll::unlock_data($poll_lock);
+
+ if ($mesg_to_user != "") {
+ $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; ";
+
+ $dt = date("H:i ", $curtime);
+ $user->comm[$user->step % COMM_N] .= $mesg_to_user;
+ $user->step_inc();
+ }
+
+ echo "$echont";
+}
+
/******************
* *
* STAT: room *
@@ -235,6 +355,14 @@ else if ($user->stat == 'room') {
log_wr($user->comm[$user->step % COMM_N]);
$user->step_inc();
+ }
+ else if ($argz[0] == 'passwdhowto') {
+ $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; ";
+ $user->comm[$user->step % COMM_N] .= show_notify(str_replace("\n", " ", $G_room_passwdhowto), 0, "torna ai tavoli", 600, 500);
+
+ log_wr($user->comm[$user->step % COMM_N]);
+ $user->step_inc();
+
}
else if ($argz[0] == 'about') {
$user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; ";
@@ -261,7 +389,7 @@ else if ($user->stat == 'room') {
}
else if ($argz[0] == 'chatt') {
- $room->chatt_send(&$user,$mesg);
+ $room->chatt_send(&$user, xcapemesg($mesg));
}
/**********************
* *