ajax chat config über datenbank steuern geht nicht

hups1803

Erfahrenes Mitglied
hallo ich habe den freechat von https://blueimp.net/

und wollte die config.php teilweise über Datenbank einträge steuern.

Abrufung der Db
PHP:
$sql8 = "SELECT * FROM `".MPREFIX."ajax_chat_einst;";
	$res8 = mysql_query($sql8);
	$row8 = mysql_fetch_object($res8); 
	$defaultChannelName = $row8->defaultChannelName;
	$allowPrivateChannels = $row8->allowPrivateChannels;
	$allowPrivateMessages = $row8->allowPrivateMessages;
	$allowGuestLogins = $row8->allowGuestLogins;
	$allowGuestWrite = $row8->allowGuestWrite;
	$allowNickChange = $row8->allowNickChange;
	
	$inactiveTimeout= $row8->inactiveTimeout;
	$chatBotName = $row8->chatBotName;
	$allowUserMessageDelete = $row8->allowUserMessageDelete;
	$titel = $row8->titel;

in der config steht sowas :

PHP:
$config['allowGuestWrite'] = false;

nun wollte ich das false aus der DB da eintragen lassen

PHP:
$config['allowGuestWrite'] = $allowGuestWrite;


irgendwie nimmt er das false nicht an .

wenn ich echo $allowGuestWrite mache kommt das false also in der Db und die Abfrage ist wohl ok

hat jemand eine idee warum das nicht geht ****

mfg
 
ok habe jetzt statt true eine 1 und für false eine 0 in die db gemacht geht jetzt .

würde mich nur mal interessieren warum das mit true und false nicht geht
 
Ich vermute du speicherst die Werte in der DB als ein String (varchar()).
In PHP wird jeder leere String und jeder String nur mit einer '0' als FALSE gewertet, siehe php.net.
Alles andere als TRUE.

Somit wird wenn '0' aus der DB geladen wird, richtigerweise FALSE genommen.
Und wenn '1' geladen wird, TRUE genommen (obwohl auch jeder andere String das bewirken würde).
 
Du könntest dir dafür aber eine Funktion schreiben:
PHP:
function str2bool($str){
  if( strtolower($str) == "true" ) return true;
  return false;
}
 
Ich würde dir aber empfehlen den Datentyp zu BOOLEAN bzw. TINYINT(1) zu verwenden, v.a. aus "logischen Gründen". Man vergibt für Zeitangaben ja auch keine Strings, sondern TIMESTAMP oder INT.
 
Zurück