Add better fatal error handling
This commit is contained in:
@ -8,6 +8,7 @@ Attempt to create database when there is no connection
|
||||
Add fallback option for moderator approval
|
||||
Fix guestaccess selection in setup
|
||||
Add option to let guests register themselves
|
||||
Add better fatal error handling
|
||||
|
||||
Version 1.15.3 - Mar. 6, 2016
|
||||
Allow using html tags in linkfilter without breaking dereferrer or image embed
|
||||
|
43
chat.php
43
chat.php
@ -62,7 +62,7 @@ if(!isSet($_REQUEST['action'])){
|
||||
send_messages(true);
|
||||
}elseif($_REQUEST['action']==='jsrefresh'){
|
||||
if(!extension_loaded('json')){
|
||||
die($I['jsonextrequired']);
|
||||
send_fatal_error($I['jsonextrequired']);
|
||||
}
|
||||
check_session();
|
||||
ob_start();
|
||||
@ -271,7 +271,6 @@ if(!isSet($_REQUEST['action'])){
|
||||
}else{
|
||||
send_login();
|
||||
}
|
||||
exit;
|
||||
|
||||
// html output subs
|
||||
function print_stylesheet(){
|
||||
@ -1305,7 +1304,7 @@ function send_notes($type){
|
||||
if(isset($_REQUEST['text'])){
|
||||
if(MSGENCRYPTED){
|
||||
if(!extension_loaded('openssl')){
|
||||
die($I['opensslextrequired']);
|
||||
send_fatal_error($I['opensslextrequired']);
|
||||
}
|
||||
$_REQUEST['text']=openssl_encrypt($_REQUEST['text'], 'aes-256-cbc', ENCRYPTKEY, 0, '1234567890123456');
|
||||
}
|
||||
@ -1339,7 +1338,7 @@ function send_notes($type){
|
||||
}
|
||||
if(MSGENCRYPTED){
|
||||
if(!extension_loaded('openssl')){
|
||||
die($I['opensslextrequired']);
|
||||
send_fatal_error($I['opensslextrequired']);
|
||||
}
|
||||
$note['text']=openssl_decrypt($note['text'], 'aes-256-cbc', ENCRYPTKEY, 0, '1234567890123456');
|
||||
}
|
||||
@ -1857,7 +1856,17 @@ function send_login(){
|
||||
function send_error($err){
|
||||
global $H, $I;
|
||||
print_start('error');
|
||||
echo "<h2>$I[error] $err</h2>$H[backtologin]";
|
||||
echo "<h2>$I[error]: $err</h2>$H[backtologin]";
|
||||
print_end();
|
||||
}
|
||||
|
||||
function send_fatal_error($err){
|
||||
global $H, $I;
|
||||
echo "<!DOCTYPE html><html><head>$H[meta_html]";
|
||||
echo "<title>$I[fatalerror]</title>";
|
||||
echo "<style type=\"text/css\">body{background-color:#000000;color:#FF0033;}</style>";
|
||||
echo '</head><body>';
|
||||
echo "<h2>$I[fatalerror]: $err</h2>";
|
||||
print_end();
|
||||
}
|
||||
|
||||
@ -2781,7 +2790,7 @@ function write_message($message){
|
||||
global $db;
|
||||
if(MSGENCRYPTED){
|
||||
if(!extension_loaded('openssl')){
|
||||
die($I['opensslextrequired']);
|
||||
send_fatal_error($I['opensslextrequired']);
|
||||
}
|
||||
$message['text']=openssl_encrypt($message['text'], 'aes-256-cbc', ENCRYPTKEY, 0, '1234567890123456');
|
||||
}
|
||||
@ -2876,7 +2885,7 @@ function print_messages($delstatus=''){
|
||||
while($message=$stmt->fetch(PDO::FETCH_ASSOC)){
|
||||
if(MSGENCRYPTED){
|
||||
if(!extension_loaded('openssl')){
|
||||
die($I['opensslextrequired']);
|
||||
send_fatal_error($I['opensslextrequired']);
|
||||
}
|
||||
$message['text']=openssl_decrypt($message['text'], 'aes-256-cbc', ENCRYPTKEY, 0, '1234567890123456');
|
||||
}
|
||||
@ -2913,7 +2922,7 @@ function print_messages($delstatus=''){
|
||||
while($message=$stmt->fetch(PDO::FETCH_ASSOC)){
|
||||
if(MSGENCRYPTED){
|
||||
if(!extension_loaded('openssl')){
|
||||
die($I['opensslextrequired']);
|
||||
send_fatal_error($I['opensslextrequired']);
|
||||
}
|
||||
$message['text']=openssl_decrypt($message['text'], 'aes-256-cbc', ENCRYPTKEY, 0, '1234567890123456');
|
||||
}
|
||||
@ -3285,7 +3294,7 @@ function update_db(){
|
||||
update_setting('dbversion', DBVERSION);
|
||||
if(get_setting('msgencrypted')!=MSGENCRYPTED){
|
||||
if(!extension_loaded('openssl')){
|
||||
die($I['opensslextrequired']);
|
||||
send_fatal_error($I['opensslextrequired']);
|
||||
}
|
||||
$result=$db->query('SELECT id, text FROM ' . PREFIX . 'messages;');
|
||||
$stmt=$db->prepare('UPDATE ' . PREFIX . 'messages SET text=? WHERE id=?;');
|
||||
@ -3344,17 +3353,17 @@ function check_db(){
|
||||
try{
|
||||
if(DBDRIVER===0){
|
||||
if(!extension_loaded('pdo_mysql')){
|
||||
die($I['pdo_mysqlextrequired']);
|
||||
send_fatal_error($I['pdo_mysqlextrequired']);
|
||||
}
|
||||
$db=new PDO('mysql:host=' . DBHOST . ';dbname=' . DBNAME, DBUSER, DBPASS, $options);
|
||||
}elseif(DBDRIVER===1){
|
||||
if(!extension_loaded('pdo_pgsql')){
|
||||
die($I['pdo_pgsqlextrequired']);
|
||||
send_fatal_error($I['pdo_pgsqlextrequired']);
|
||||
}
|
||||
$db=new PDO('pgsql:host=' . DBHOST . ';dbname=' . DBNAME, DBUSER, DBPASS, $options);
|
||||
}else{
|
||||
if(!extension_loaded('pdo_sqlite')){
|
||||
die($I['pdo_sqliteextrequired']);
|
||||
send_fatal_error($I['pdo_sqliteextrequired']);
|
||||
}
|
||||
$db=new PDO('sqlite:' . SQLITEDBFILE, NULL, NULL, $options);
|
||||
}
|
||||
@ -3366,7 +3375,7 @@ function check_db(){
|
||||
if(false!==$db->exec('CREATE DATABASE ' . DBNAME)){
|
||||
$db=new PDO('mysql:host=' . DBHOST . ';dbname=' . DBNAME, DBUSER, DBPASS, $options);
|
||||
}else{
|
||||
die($I['nodbsetup']);
|
||||
send_fatal_error($I['nodbsetup']);
|
||||
}
|
||||
|
||||
}elseif(DBDRIVER===1){
|
||||
@ -3374,20 +3383,20 @@ function check_db(){
|
||||
if(false!==$db->exec('CREATE DATABASE ' . DBNAME)){
|
||||
$db=new PDO('pgsql:host=' . DBHOST . ';dbname=' . DBNAME, DBUSER, DBPASS, $options);
|
||||
}else{
|
||||
die($I['nodbsetup']);
|
||||
send_fatal_error($I['nodbsetup']);
|
||||
}
|
||||
}
|
||||
}catch(PDOException $e){
|
||||
if(isSet($_REQUEST['action']) && $_REQUEST['action']==='setup'){
|
||||
die($I['nodbsetup']);
|
||||
send_fatal_error($I['nodbsetup']);
|
||||
}else{
|
||||
die($I['nodb']);
|
||||
send_fatal_error($I['nodb']);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(MEMCACHED){
|
||||
if(!extension_loaded('memcached')){
|
||||
die($I['memcachedextrequired']);
|
||||
send_fatal_error($I['memcachedextrequired']);
|
||||
}
|
||||
$memcached=new Memcached();
|
||||
$memcached->addServer(MEMCACHEDHOST, MEMCACHEDPORT);
|
||||
|
@ -180,7 +180,7 @@ $T=array(
|
||||
'choosecol' => 'Gast, such dir eine Farbe aus:',
|
||||
'randomcol' => 'Zufällige Farbe',
|
||||
'enter' => 'Chat beitreten',
|
||||
'error' => 'Fehler:',
|
||||
'error' => 'Fehler',
|
||||
'members' => 'Mitglieder',
|
||||
'guests' => 'Gäste',
|
||||
'approveguests' => '%d neue Gäste zum Hereinlassen',
|
||||
@ -327,6 +327,7 @@ $T=array(
|
||||
'regpass' => 'Zum registrieren<br>Passwort wiederholen<br>(optional)',
|
||||
'guestreg' => 'Gäste sich selbst registrieren lassen',
|
||||
'asmember' => 'Als Mitglied',
|
||||
'assuguest' => 'Als Anwerber'
|
||||
'assuguest' => 'Als Anwerber',
|
||||
'fatalerror' => 'Fataler Fehler'
|
||||
);
|
||||
?>
|
||||
|
@ -180,7 +180,7 @@ $I=array(
|
||||
'choosecol' => 'Guests, choose a colour:',
|
||||
'randomcol' => 'Random Colour',
|
||||
'enter' => 'Enter Chat',
|
||||
'error' => 'Error:',
|
||||
'error' => 'Error',
|
||||
'members' => 'Members',
|
||||
'guests' => 'Guests',
|
||||
'approveguests' => '%d new guests to approve',
|
||||
@ -327,6 +327,7 @@ $I=array(
|
||||
'regpass' => 'Repeat password<br>to register<br>(optional)',
|
||||
'guestreg' => 'Let guests register themselves',
|
||||
'asmember' => 'As member',
|
||||
'assuguest' => 'As applicant'
|
||||
'assuguest' => 'As applicant',
|
||||
'fatalerror' => 'Fatal error'
|
||||
);
|
||||
?>
|
||||
|
@ -180,7 +180,7 @@ $T=array(
|
||||
'choosecol' => 'Invitado, elegí un color:',
|
||||
'randomcol' => 'Color al azar',
|
||||
'enter' => 'Entrar a la sala',
|
||||
'error' => 'Error:',
|
||||
'error' => 'Error',
|
||||
'members' => 'Miembros',
|
||||
'guests' => 'Invitados',
|
||||
'approveguests' => '%d nuevos invitados para aprobar',
|
||||
|
@ -180,7 +180,7 @@ $T=array(
|
||||
'choosecol' => 'Invitado, elija un color:',
|
||||
'randomcol' => 'Color al azar',
|
||||
'enter' => 'Ingresar a la sala',
|
||||
'error' => 'Error:',
|
||||
'error' => 'Error',
|
||||
'members' => 'Miembros',
|
||||
'guests' => 'Invitados',
|
||||
'approveguests' => '%d nuevos invitados para aprobar',
|
||||
|
@ -180,7 +180,7 @@ $T=array(
|
||||
'choosecol' => 'Invité, choisir une couleur:',
|
||||
'randomcol' => 'Couleur aléatoire',
|
||||
'enter' => 'Entrer',
|
||||
'error' => 'Erreur:',
|
||||
'error' => 'Erreur',
|
||||
'members' => 'Membres',
|
||||
'guests' => 'Invités',
|
||||
'approveguests' => '%d nouveaux invités à approuver',
|
||||
|
@ -180,7 +180,7 @@ $T=array(
|
||||
'choosecol' => 'Silahkan pilih warna:',
|
||||
'randomcol' => 'Warna acak',
|
||||
'enter' => 'Masuk obrolan',
|
||||
'error' => 'Kesalahan:',
|
||||
'error' => 'Kesalahan',
|
||||
'members' => 'Anggota',
|
||||
'guests' => 'Tamu',
|
||||
'approveguests' => '%d tamu baru untuk disetujui',
|
||||
|
@ -180,7 +180,7 @@ $T=array(
|
||||
'choosecol' => 'Гости выбирают цвет:',
|
||||
'randomcol' => 'Случайный цвет',
|
||||
'enter' => 'Войти в чат',
|
||||
'error' => 'Ошибка:',
|
||||
'error' => 'Ошибка',
|
||||
'members' => 'Зарегистрированные',
|
||||
'guests' => 'Гости',
|
||||
'approveguests' => '%d новые гости для одобрения',
|
||||
|
Reference in New Issue
Block a user