Verständniss Frage define();

hups1803

Erfahrenes Mitglied
hallo,

ich baue Grad an einen chat rum.

in der Setchat.php wird der pfad zur txt Datei angelegt:

PHP:
define('CHATDIR', 'chattxt/hupstxt/');

das funktioniert auch soweit.

nun möchte ich den pfad aus der Datenbank holen
PHP:
$username=$row['username'];

define('CHATDIR', 'chattxt/'.$username.'/');

nun findet er diese nichtmehr wenn ich es mit echo ausgeben sieht es so aus

PHP:
echo CHATDIR;

//Ausgabe
chattxt/hupstxt/

versteh nicht warum er den pfad nicht findet ??
der Ordner hupstxt ist vorhanden.
habe es auch schon mit trim() versucht.

irgendwelche ideen
 
das ganze wird in einer php class so verarbeitet

PHP:
if(defined('CHATDIR')) $this->chatdir = (basename(dirname($_SERVER['PHP_SELF'])) == 'chatfiles') ? '../'.CHATDIR : CHATDIR;
 
Kannst ja noch mal testen: var_dump(CHATDIR === 'chattxt/hupstxt/');

Wenn das für die DB-Variante true liefert, liegt der Fehler nicht im gezeigten Code.
 
son mist er gibt bool(true) aus .

aber er zeigt nix an macht es sinn hier mal die ganze php class zu posten könnt ihr da mal reinschauen.
mein ziel ist es die zielordner mittels php datenbank zu setzten
PHP:
<?php
// Chat Simple, from: http://coursesweb.net/php-mysq/

class ChatSimple {
  public $maxrows = 30;
  public $chatrooms = array();  // for chat rooms
  public $chatroomcnt = '';  // store chat room content

  protected $lsite = array();  // will contains the texts in the defined language
  protected $chatdir = 'chattxt';  // directory that store TXT files for chat
  protected $fileroom;  // store the file of current chat room
  protected $chatuser = '';  // store user name
  protected $chatadd = 1;  // if not 1, the user must be logged in

  // constructor (receives the array with chat rooms)
  public function __construct($chatrooms) {
  // set properties value
  $this->lsite = $GLOBALS['lsite'];
  $this->chatrooms = $chatrooms;
  if(defined('CHATADD')) $this->chatadd = CHATADD;
  if(defined('CHATDIR')) $this->chatdir = CHATDIR;
  if(defined('MAXROWS')) $this->maxrows = MAXROWS;

  $this->fileusers = $this->chatdir.'/chatusers.txt';
  $this->fileroom = isset($_POST['chatroom']) ? ($this->chatdir.'/'.trim(strip_tags($_POST['chatroom'].'.txt'))) : ($this->chatdir.'/'.$this->chatrooms[0].'.txt');

  // sets current chat user with the name added in form, and calls the method to set $chatroomcnt
  if(isset($_POST['chatuser'])) $this->chatuser = trim(htmlentities($_POST['chatuser'], ENT_NOQUOTES, 'utf-8'));
  $this->chatroomcnt = $this->setChatRoomCnt();

  // if data from the form to add chat, output chat room content
  if(isset($_POST['chatuser'])) echo $this->chatroomcnt;
  }

  // returns the HTML code with chat rooms
  public function chatRooms() {
     $verbindung2 = mysql_connect ("localhost","xxx", "xxx")or die ("keine Verbindung möglich. Benutzername oder Passwort sind falsch");
       mysql_select_db("xxx")or die ("Die Datenbank existiert nicht.");
       
       $query = "SELECT * FROM e107_modul_chat_config WHERE userclass='".USERID."'";
       $result = mysql_query($query);
       $row = mysql_fetch_array($result);   
       $raumaktiv=$row['raumaktiv'];
       $btncolor=$row['btncolor'];
  $nrooms = count($this->chatrooms);
  $chatrooms = '';
  if($nrooms > 0) {
  for($i=0; $i<$nrooms; $i++) {
     $rooms='class="'.$raumaktiv.'"';   
  $id = ($i==0) ? 'id="s_room"' : '';
  ///$rel = ($i==0) ? 'rel="s_room"' : '';
  $class = ($i==0) ? ''.$rooms.'' : 'class="'.$btncolor.'"';
//  $class2 = ($i==1) ? ''.$btncolor.'' : '';
  $chatrooms .= '<span style="margin-left:5px;"'.$class.' '.$id.'onclick="setChatRoom(this)">'.$this->chatrooms[$i].'</span>';
  }
  }
  else $chatrooms = '<span class="btn btn-small "><b> &nbsp; &nbsp; - Chat</span>';

  return $chatrooms;
  }


  // include the form to add text in chat room, or messaje to Logg in (if $chatuser false, and $chatadd not 1)
  public function chatForm() {
  if($this->chatadd !== 1) {
  if(defined('CHATUSER')) include('chat_form.php');
  else echo $this->lsite['chatlogged'];
  }
  else include('chat_form.php');
  }

  // returns array with online users in chat, in last 7 sec.
  protected function getChatUsers($users) {
  $regtime = time();  $reusr = array();

  // if users, traverses the arrsy and stores the users in last 7 sec.
  if(count($users) > 0) {
  foreach($users as $t=>$usr) {
  if($usr == $this->chatuser) continue;
  else if(intval($t) > ($regtime - 8)) $reusr[$t] = $usr;
  }
  }

  // adds current user in list
  if($this->chatuser !== '') $reusr[$regtime] = $this->chatuser;

  $reusr = array_unique($reusr);
  return $reusr;
  }

  // adds HTML code with chat text in TXT file
  protected function setChatRoomCnt() {
  $chatrows = array('time'=>'', 'users'=>array(), 'chats'=>array(array('user'=>'', 'date'=>'', 'chat'=>'')));  // stores chat room data

  // if file for current chat room exists, gets its content, else, display 'no chat', and current user
  if(file_exists($this->fileroom)) {
  $getchats = file_get_contents($this->fileroom);
  if(strlen($getchats) > 11) $chatrows = json_decode($getchats, true);
  $chatrows['users'] = $this->getChatUsers($chatrows['users']);  // get the list with online users

  // if access to add new chat text
  if(isset($_POST['adchat'])) {
     
     
     function smileys($texte)
       {
       $verbindung = mysql_connect ("localhost","xxxx", "xxxx")or die ("keine Verbindung möglich. Benutzername oder Passwort sind falsch");
       mysql_select_db("xxx")or die ("Die Datenbank existiert nicht.");
       
       $query2 = "SELECT * FROM parse_smilys";
       $result2 = mysql_query($query2);
       while ($row = mysql_fetch_array($result2))
         {       
           $code[]= $row['coding'];
           $smilys[]= '<img style="vertical-align:middle"src="'.$row['smile'].'">';
           }
       return str_replace($code,$smilys,$texte);
       }
     $postchattxt=$_POST['adchat'];   
     //$chatparse= smileys($postchattxt);
  $adchat = trim(htmlentities($postchattxt, ENT_NOQUOTES, 'utf-8'));  // Transform HTML characters, and delete external whitespace
  $adchat =smileys($adchat);
  if(get_magic_quotes_gpc()) $adchat = stripslashes($adchat);  // Removes slashes added by get_magic_quotes_gpc

  // if text added, keep the last $maxrows rows, add the new chat data
  if(strlen($adchat)<1 || strlen($adchat)<201) {
  if(is_array($chatrows['chats'])) $chatrows['chats'] = array_slice($chatrows['chats'], -($this->maxrows));
  $chatrows['chats'][] = array('user'=>$this->chatuser, 'date'=>date('j F H:i'), 'chat'=>$adchat);

  // if chat in 1st line is empty, remove 1st array with chat line data
  if($chatrows['chats'][0]['chat'] == '') array_shift($chatrows['chats']);
  }

  // sets chat room content
  $chatrows['time'] = time();
  }
  }

  // write the chat content in TXT file, returns $chatroomcnt, or message error
  $rechat = json_encode($chatrows);
  if(file_put_contents($this->fileroom, $rechat)) return $rechat;
  else return json_encode(array('error'=>sprintf($this->lsite['err_savechat'], $this->fileroom)));
  }

  // to empty chatrooms, include the form with chatrooms to empty
  // if request to empty room, and "cadmpass" is correct, write 'notchat' in that room
  public function emptyChatRooms() {
  if(isset($_POST['emptyroom'])) {
  if($_POST['cadmpass'] == CADMPASS) {
  $fileroom = $this->chatdir.'/'.trim(strip_tags($_POST['emptyroom'].'.txt'));
  if(file_put_contents($fileroom, ' ')) echo '<center>'. sprintf($this->lsite['emptedroom'], $_POST['emptyroom']). '</center>';
  else echo '<center>'. $this->lsite['err_emptedroom']. $_POST['emptyroom']. '</center>';
  }
  else echo $this->lsite['err_adminpass'];
  }
  include('emptychat_form.php');
  }
}
 
Zurück