Fix language parameter overwrite

This commit is contained in:
Daniel Winzen
2016-04-13 20:07:31 +02:00
parent 1c74441bb4
commit 782bae0507
2 changed files with 24 additions and 22 deletions

@@ -1,3 +1,4 @@
Version 1.16 - Apr. 13, 2016
Use constants for configuration Use constants for configuration
Simplify extreme captcha code generation Simplify extreme captcha code generation
Add language setting to profile Add language setting to profile

@@ -38,6 +38,7 @@ $U=array();// This user data
$countmods=0;// Present moderators $countmods=0;// Present moderators
$db;// Database connection $db;// Database connection
$memcached;// Memcached connection $memcached;// Memcached connection
$language;// user selected language
load_config(); load_config();
// set session variable to cookie if cookies are enabled // set session variable to cookie if cookies are enabled
if(!isSet($_REQUEST['session']) && isSet($_COOKIE[COOKIENAME])){ if(!isSet($_REQUEST['session']) && isSet($_COOKIE[COOKIENAME])){
@@ -1246,20 +1247,20 @@ function send_linkfilter($arg=''){
} }
function send_frameset(){ function send_frameset(){
global $H, $I, $U; global $H, $I, $U, $language;
echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Frameset//EN\" \"http://www.w3.org/TR/html4/frameset.dtd\"><html><head>$H[meta_html]"; echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Frameset//EN\" \"http://www.w3.org/TR/html4/frameset.dtd\"><html><head>$H[meta_html]";
echo '<title>'.get_setting('chatname').'</title>'; echo '<title>'.get_setting('chatname').'</title>';
print_stylesheet(); print_stylesheet();
if(isSet($_COOKIE['test'])){ if(isSet($_COOKIE['test'])){
echo "</head><frameset rows=\"100,*,60\" border=\"3\" frameborder=\"3\" framespacing=\"3\"><frame name=\"post\" src=\"$_SERVER[SCRIPT_NAME]?action=post\"><frame name=\"view\" src=\"$_SERVER[SCRIPT_NAME]?action=view\"><frame name=\"controls\" src=\"$_SERVER[SCRIPT_NAME]?action=controls\"><noframes><body>$I[noframes]$H[backtologin]</body></noframes></frameset></html>"; echo "</head><frameset rows=\"100,*,60\" border=\"3\" frameborder=\"3\" framespacing=\"3\"><frame name=\"post\" src=\"$_SERVER[SCRIPT_NAME]?action=post\"><frame name=\"view\" src=\"$_SERVER[SCRIPT_NAME]?action=view\"><frame name=\"controls\" src=\"$_SERVER[SCRIPT_NAME]?action=controls\"><noframes><body>$I[noframes]$H[backtologin]</body></noframes></frameset></html>";
}else{ }else{
echo "</head><frameset rows=\"100,*,60\" border=\"3\" frameborder=\"3\" framespacing=\"3\"><frame name=\"post\" src=\"$_SERVER[SCRIPT_NAME]?action=post&session=$U[session]&lang=$U[lang]\"><frame name=\"view\" src=\"$_SERVER[SCRIPT_NAME]?action=view&session=$U[session]&lang=$U[lang]\"><frame name=\"controls\" src=\"$_SERVER[SCRIPT_NAME]?action=controls&session=$U[session]&lang=$U[lang]\"><noframes><body>$I[noframes]$H[backtologin]</body></noframes></frameset></html>"; echo "</head><frameset rows=\"100,*,60\" border=\"3\" frameborder=\"3\" framespacing=\"3\"><frame name=\"post\" src=\"$_SERVER[SCRIPT_NAME]?action=post&session=$U[session]&lang=$language\"><frame name=\"view\" src=\"$_SERVER[SCRIPT_NAME]?action=view&session=$U[session]&lang=$language\"><frame name=\"controls\" src=\"$_SERVER[SCRIPT_NAME]?action=controls&session=$U[session]&lang=$language\"><noframes><body>$I[noframes]$H[backtologin]</body></noframes></frameset></html>";
} }
exit; exit;
} }
function send_messages($js){ function send_messages($js){
global $I, $U; global $I, $U, $language;
if(!$js){ if(!$js){
if(isSet($_COOKIE[COOKIENAME])){ if(isSet($_COOKIE[COOKIENAME])){
print_start('messages', $U['refresh'], "$_SERVER[SCRIPT_NAME]?action=view"); print_start('messages', $U['refresh'], "$_SERVER[SCRIPT_NAME]?action=view");
@@ -1267,9 +1268,9 @@ function send_messages($js){
echo "<script type=\"text/javascript\">window.location.assign('$_SERVER[SCRIPT_NAME]?action=jsview');</script>"; echo "<script type=\"text/javascript\">window.location.assign('$_SERVER[SCRIPT_NAME]?action=jsview');</script>";
} }
}else{ }else{
print_start('messages', $U['refresh'], "$_SERVER[SCRIPT_NAME]?action=view&session=$U[session]&lang=$U[lang]"); print_start('messages', $U['refresh'], "$_SERVER[SCRIPT_NAME]?action=view&session=$U[session]&lang=$language");
if(get_setting('enablejs')==1 && extension_loaded('json')){ if(get_setting('enablejs')==1 && extension_loaded('json')){
echo "<script type=\"text/javascript\">window.location.assign('$_SERVER[SCRIPT_NAME]?action=jsview&session=$U[session]&lang=$U[lang]');</script>"; echo "<script type=\"text/javascript\">window.location.assign('$_SERVER[SCRIPT_NAME]?action=jsview&session=$U[session]&lang=$language');</script>";
} }
} }
}else{ }else{
@@ -1397,7 +1398,7 @@ function send_approve_waiting(){
} }
function send_waiting_room(){ function send_waiting_room(){
global $H, $I, $U, $countmods, $db; global $H, $I, $U, $countmods, $db, $language;
parse_sessions(); parse_sessions();
$ga=(int) get_setting('guestaccess'); $ga=(int) get_setting('guestaccess');
if($ga===3 && ($countmods>0 || !get_setting('modfallback'))){ if($ga===3 && ($countmods>0 || !get_setting('modfallback'))){
@@ -1428,7 +1429,7 @@ function send_waiting_room(){
print_start('waitingroom', $refresh, "$_SERVER[SCRIPT_NAME]?action=wait"); print_start('waitingroom', $refresh, "$_SERVER[SCRIPT_NAME]?action=wait");
}else{ }else{
header("Refresh: $refresh; URL=$_SERVER[SCRIPT_NAME]?action=wait&session=$U[session]"); header("Refresh: $refresh; URL=$_SERVER[SCRIPT_NAME]?action=wait&session=$U[session]");
print_start('waitingroom', $refresh, "$_SERVER[SCRIPT_NAME]?action=wait&session=$U[session]&lang=$U[lang]"); print_start('waitingroom', $refresh, "$_SERVER[SCRIPT_NAME]?action=wait&session=$U[session]&lang=$language");
} }
echo "<div style=\"text-align:center;\"><h2>$I[waitingroom]</h2><p>"; echo "<div style=\"text-align:center;\"><h2>$I[waitingroom]</h2><p>";
if($wait){ if($wait){
@@ -1614,7 +1615,7 @@ function send_help(){
} }
function send_profile($arg=''){ function send_profile($arg=''){
global $F, $H, $I, $L, $P, $U, $db; global $F, $H, $I, $L, $P, $U, $db, $language;
print_start('profile'); print_start('profile');
echo "<div style=\"text-align:center;\"><$H[form]>$H[commonform]".hidden('action', 'profile').hidden('do', 'save')."<h2>$I[profile]</h2><i>$arg</i><table style=\"margin-left:auto;margin-right:auto;\">"; echo "<div style=\"text-align:center;\"><$H[form]>$H[commonform]".hidden('action', 'profile').hidden('do', 'save')."<h2>$I[profile]</h2><i>$arg</i><table style=\"margin-left:auto;margin-right:auto;\">";
thr(); thr();
@@ -1661,7 +1662,7 @@ function send_profile($arg=''){
echo "<input type=\"number\" name=\"refresh\" size=\"3\" maxlength=\"3\" min=\"5\" max=\"150\" value=\"$U[refresh]\"></td></tr></table></td></tr>"; echo "<input type=\"number\" name=\"refresh\" size=\"3\" maxlength=\"3\" min=\"5\" max=\"150\" value=\"$U[refresh]\"></td></tr></table></td></tr>";
thr(); thr();
if(!isSet($_COOKIE[COOKIENAME])){ if(!isSet($_COOKIE[COOKIENAME])){
$param="&session=$U[session]&lang=$U[lang]"; $param="&session=$U[session]&lang=$language";
}else{ }else{
$param=''; $param='';
} }
@@ -3077,7 +3078,7 @@ function check_init(){
} }
function destroy_chat(){ function destroy_chat(){
global $C, $H, $I, $U, $db; global $C, $H, $I, $db, $language;
setcookie(COOKIENAME, false); setcookie(COOKIENAME, false);
print_start('destory'); print_start('destory');
$db->exec('DROP TABLE ' . PREFIX . 'captcha;'); $db->exec('DROP TABLE ' . PREFIX . 'captcha;');
@@ -3100,7 +3101,7 @@ function destroy_chat(){
$memcached->delete(DBNAME . '-' . PREFIX . 'settings-msgencrypted'); $memcached->delete(DBNAME . '-' . PREFIX . 'settings-msgencrypted');
} }
echo "<div style=\"text-align:center;\"><h2>$I[destroyed]</h2><br><br><br>"; echo "<div style=\"text-align:center;\"><h2>$I[destroyed]</h2><br><br><br>";
echo "<$H[form]>".hidden('lang', $U['lang']).hidden('action', 'setup').submit($I['init'])."</form>$H[credit]</div>"; echo "<$H[form]>".hidden('lang', $language).hidden('action', 'setup').submit($I['init'])."</form>$H[credit]</div>";
print_end(); print_end();
} }
@@ -3430,24 +3431,24 @@ function load_fonts(){
} }
function load_html(){ function load_html(){
global $H, $I, $U; global $H, $I, $language;
$H=array(// default HTML $H=array(// default HTML
'form' =>"form action=\"$_SERVER[SCRIPT_NAME]\" method=\"post\"", 'form' =>"form action=\"$_SERVER[SCRIPT_NAME]\" method=\"post\"",
'meta_html' =>"<meta name=\"robots\" content=\"noindex,nofollow\"><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"><meta http-equiv=\"Pragma\" content=\"no-cache\"><meta http-equiv=\"Cache-Control\" content=\"no-cache\"><meta http-equiv=\"expires\" content=\"0\">", 'meta_html' =>"<meta name=\"robots\" content=\"noindex,nofollow\"><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"><meta http-equiv=\"Pragma\" content=\"no-cache\"><meta http-equiv=\"Cache-Control\" content=\"no-cache\"><meta http-equiv=\"expires\" content=\"0\">",
'credit' =>'<small><br><br><a target="_blank" href="https://github.com/DanWin/le-chat-php">LE CHAT-PHP - ' . VERSION . '</a></small>', 'credit' =>'<small><br><br><a target="_blank" href="https://github.com/DanWin/le-chat-php">LE CHAT-PHP - ' . VERSION . '</a></small>',
'commonform' =>hidden('lang', $U['lang']) 'commonform' =>hidden('lang', $language)
); );
if(isSet($_REQUEST['session'])){ if(isSet($_REQUEST['session'])){
$H['commonform'].=hidden('session', $_REQUEST['session']); $H['commonform'].=hidden('session', $_REQUEST['session']);
} }
$H=$H+array( $H=$H+array(
'backtologin' =>"<$H[form] target=\"_parent\">".hidden('lang', $U['lang']).submit($I['backtologin'], 'class="backbutton"').'</form>', 'backtologin' =>"<$H[form] target=\"_parent\">".hidden('lang', $language).submit($I['backtologin'], 'class="backbutton"').'</form>',
'backtochat' =>"<$H[form]>$H[commonform]".hidden('action', 'view').submit($I['backtochat'], 'class="backbutton"').'</form>' 'backtochat' =>"<$H[form]>$H[commonform]".hidden('action', 'view').submit($I['backtochat'], 'class="backbutton"').'</form>'
); );
} }
function load_lang(){ function load_lang(){
global $I, $L, $U; global $I, $L, $U, $language;
$L=array( $L=array(
'de' =>'Deutsch', 'de' =>'Deutsch',
'en' =>'English', 'en' =>'English',
@@ -3458,16 +3459,16 @@ function load_lang(){
'ru' =>'Русский' 'ru' =>'Русский'
); );
if(isSet($_REQUEST['lang']) && array_key_exists($_REQUEST['lang'], $L)){ if(isSet($_REQUEST['lang']) && array_key_exists($_REQUEST['lang'], $L)){
$U['lang']=$_REQUEST['lang']; $language=$_REQUEST['lang'];
setcookie('language', $U['lang']); setcookie('language', $language);
}elseif(isSet($_COOKIE['language']) && array_key_exists($_COOKIE['language'], $L)){ }elseif(isSet($_COOKIE['language']) && array_key_exists($_COOKIE['language'], $L)){
$U['lang']=$_COOKIE['language']; $language=$_COOKIE['language'];
}else{ }else{
$U['lang']=LANG; $language=LANG;
} }
include('lang_en.php'); //always include English include('lang_en.php'); //always include English
if($U['lang']!=='en'){ if($language!=='en'){
include("lang_$U[lang].php"); //replace with translation if available include("lang_$language.php"); //replace with translation if available
foreach($T as $name=>$translation){ foreach($T as $name=>$translation){
$I[$name]=$translation; $I[$name]=$translation;
} }
@@ -3475,7 +3476,7 @@ function load_lang(){
} }
function load_config(){ function load_config(){
define('VERSION', '1.15.3'); // Script version define('VERSION', '1.16'); // Script version
define('DBVERSION', 15); // Database version define('DBVERSION', 15); // Database version
define('MSGENCRYPTED', false); // Store messages encrypted in the database to prevent other database users from reading them - true/false - visit the setup page after editing! define('MSGENCRYPTED', false); // Store messages encrypted in the database to prevent other database users from reading them - true/false - visit the setup page after editing!
define('ENCRYPTKEY', 'MY_KEY'); // Encryption key for messages define('ENCRYPTKEY', 'MY_KEY'); // Encryption key for messages