Servus, Bin grad dran das IRC CHAt Modul bissel umzuarbeiten. Und zwar will ich neber dem Channel Link noch eine Wiedergabe rein machen wer alles im Chat ist. Das funzt auch soweit. Aber bloss beim ersten Chat Room. Bei den anderen darunter bekomme ich diese Meldung hier:
Fatal error: [] operator not supported for strings in
So und in der Zeile wo der Fehler auftritt steht folgendes:
$ChatPeople[].="<option value=\"".$name."\" title=\"".$name."\">".$name."</OPTION>\n";
Hat einer von euch ne Ahnung wie ich das abändern muss das er da nicht mehr meckert??
Joho :)
was macht der Punkt vor dem Gleichheitszeichen?
http://www.php.net/manual/de/language.operators.string.php
Weil ich weiter oben ein $ChatPeople[] = "";
stehen hab ;)
Ohne komme ich auch nicht weiter schon getestet...
Ohne in den Code zu sehen...
$ChatPeople wird irgendwo vorher zum String deklariert oder konvertiert.
Durch den Punkt versuchst du, an diesen String etwas dazuzufügen. An dieser Stelle stören dann aber genau diese eckigen Klammern, die diesen String eigentlich wieder zu einem Teil eines Arrays machen.
Also musst du dir klar sein, ob die Variable jetzt ein Array, oder ein String sein soll....
soll ich den kompletten code hier jetzt rein hauen?? Steh grad bissel aufn Schlauch
mach mal dann sieht man mehr wo der fehler steckt
for($i=0; $i < count($chatrooms); $i++){
// chat in popup window
echo "<tr><td width=\"167\"><img src=\"modules/".$GLOBALS['name']."/pjirc/img/chat".$i.".gif\" border=\"0\" /></td><td align=\"center\" valign=\"top\"><a href=\"#\" onClick=\"javascript:window.open('modules.php?name=".$GLOBALS['name']."&chatfunc=enter&room=".$chatrooms["$i"]."&mode=new','".str_replace(array("www.",".","-"), array("","",""), $_SERVER['HTTP_HOST']).$GLOBALS['name']."','toolbar=no,width=".$chatsettings['popupwindowwidth'].",height=".$chatsettings['popupwindowheight'].",directories=no,status=no,scrollbars=yes,resize=no,menubar=no')\"><h3>".$chatrooms["$i"]."</h3></a>";
if($botconf['eggdrop'] == "true" && !empty($botconf['verzeich']) && $chatrooms["$i"] !=""){
$anzuser = file("".$botconf['verzeich']."/".$chatrooms["$i"].".txt");
$onlinetext= "".$botconf['verzeich']."/".$chatrooms["$i"].".txt";
if(ereg('://', $onlinetext) && !ini_get('allow_url_fopen')){
@ini_set("allow_url_fopen","1");
$restore_ini = true;
}else{
$restore_ini = false;
}
$wio_chat_file = fopen($onlinetext, "rt");
while ($CLine = fgets($wio_chat_file, 999)) {
$teile=explode(chr(32),$CLine);
$name=$teile[0];
if ($name!=$botconf['botname'] && $name!="ChanServ") {
$ChatPeople[].="<option value=\"".$name."\" title=\"".$name."\">".$name."</OPTION>\n";
}
}
fclose($wio_chat_file);
if($restore_ini) @ini_set("allow_url_fopen","0");
$anzahluser = count($anzuser);
echo "Zur Zeit sind ".$anzahluser." User in diesem ChatRoom unterwegs!</td>";
}
$ChatPeople = array_unique($ChatPeople);
//$wio_chat_file_size = count($ChatPeople);
$sauber = "";
foreach($ChatPeople as $value) {
if($value !=""){
$sauber .= "\n$value";
$wio_chat_file_size++;
}
}
$ChatPeople = substr($sauber,1);
if($wio_chat_file_size>0){
if($onlinechatlistsize>=$wio_chat_file_size) {$onlinechatlistsize=$wio_chat_file_size+1;}
} else {
$onlinechatlistsize=2;
$ChatPeople.="<option value=\"niemand\" title=\"niemand\">Kein User im Chat</OPTION>\n";
}
echo "";
echo "<td width=\"150\"><form action=\"modules.php?test\" name=\"onlinechatuserinfo\" method=\"get\" style=\"border: 0px; margin-bottom: 5px; margin-top: 0px;\">";
echo "<select name=\"ucname\" size=\"$onlinechatlistsize\" style=\" background-color: $bgcolor1; font-size: 9px; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; color: $txtcolor1; width: 150px; cursor: hand; border: 1px solid $bgcolor2; text-decoration: none; padding-left: 1px; padding-top: 1px; padding-bottom: 1px;\">".$ChatPeople."</select>";
echo "</form></td></tr>\n";
// chat in the same window
}
*schieb*
::)
Jupppppppppppppppppppppppppppppppp würde mich auch freuen wenn da einer ne Idee hätte :'(
Mfg Rene
Hi...
Der Punkt nach dem $ChatPeople[] ist auf jeden Fall falsch.
Mach den Punkt da weg!
Wenn es dann nicht geht, bitte error_reporting anschalten und die evtl. erscheinenden Fehlermeldungen posten.
Fatal error: [] operator not supported for strings in index.php on line 532
Kommt das ist wieder genau die Zeile von oben ;)
Zitat$ChatPeople wird irgendwo vorher zum String deklariert oder konvertiert.
Also, wo?
Ist das die Zeile 532?
$ChatPeople[].="<option value=\"".$name."\" title=\"".$name."\">".$name."</OPTION>\n";
Ist das das ganze Script?
Soll ich komplette function posten??
Ich mach einfach mal. Also wie gesagt bei ersten Chat werden die User Angezeigt bei mächsten Kommt dann die Meldung von oben, logischerweise macht er dann auch nicht weiter mit dem Auslesen der Channels...
function ChatMain ($thisuser,$chatrooms="",$mode){
// show right blocks or not on index-screen, yes (1) or no (0)
$GLOBALS['index'] = 1;
error_reporting(E_ALL);
include("modules/".$GLOBALS['name']."/config.php");
include("header.php");
OpenTable();
echo "<br><b><center>"._CHAT_HELLO."</b><br><br>"._CHAT_YOURNAME."<b><br><br><font color=red>".$thisuser."</font></b></center><br><br><br><br>";
echo "<center><b>"._CHAT_fehler."</b></center>";
echo '<center><i>Java Client <a href="http://www.wob-chat.de/download/java/msjavx86.zip">DOWNLOAD</a></i> </div></font></center><br><br>';
echo '<center><b>ACHTUNG Der Chat ist optimiert für 1024x768</b></center><br><br>';
$anzuser ="";
$anzahluser =0;
$ChatPeople[]= "";
$wio_chat_file_size= 0;
$onlinechatlistsize=8; # Hoehe des Selectfeld der Chatuser (Online-Liste)
// if chatroom(s)
if(count($chatrooms) > 0){
// reduce size of the popup window if only one room is available (no selects will be shown)
if(count($chatrooms) == 1) $chatsettings['popupwindowheight'] = $chatsettings['popupwindowheight'] - 40;
echo "<center>"._CHAT_YOURROOMS."<br><br><center>";
echo "<table width=\"100%\" bgcolor=\"#ffffff\" border=\"1\" bordercolor=\"".$GLOBALS['bgcolor2']."\">";
for($i=0; $i < count($chatrooms); $i++){
// chat in popup window
echo "<tr><td width=\"167\"><img src=\"modules/".$GLOBALS['name']."/pjirc/img/chat".$i.".gif\" border=\"0\" /></td><td align=\"center\" valign=\"top\"><a href=\"#\" onClick=\"javascript:window.open('modules.php?name=".$GLOBALS['name']."&chatfunc=enter&room=".$chatrooms["$i"]."&mode=new','".str_replace(array("www.",".","-"), array("","",""), $_SERVER['HTTP_HOST']).$GLOBALS['name']."','toolbar=no,width=".$chatsettings['popupwindowwidth'].",height=".$chatsettings['popupwindowheight'].",directories=no,status=no,scrollbars=yes,resize=no,menubar=no')\"><h3>".$chatrooms["$i"]."</h3></a>";
if($botconf['eggdrop'] == "true" && !empty($botconf['verzeich']) && $chatrooms["$i"] !=""){
$anzuser = file("".$botconf['verzeich']."/".$chatrooms["$i"].".txt");
$onlinetext= "".$botconf['verzeich']."/".$chatrooms["$i"].".txt";
if(ereg('://', $onlinetext) && !ini_get('allow_url_fopen')){
@ini_set("allow_url_fopen","1");
$restore_ini = true;
}else{
$restore_ini = false;
}
$wio_chat_file = fopen($onlinetext, "rt");
while ($CLine = fgets($wio_chat_file, 999)) {
$teile=explode(chr(32),$CLine);
$name=$teile[0];
if ($name!=$botconf['botname'] && $name!="ChanServ") {
$ChatPeople[]="<option value=\"".$name."\" title=\"".$name."\">".$name."</OPTION>\n";
}
}
fclose($wio_chat_file);
if($restore_ini) @ini_set("allow_url_fopen","0");
$anzahluser = count($anzuser);
echo "Zur Zeit sind ".$anzahluser." User in diesem ChatRoom unterwegs!</td>";
}
$ChatPeople = array_unique($ChatPeople);
//$wio_chat_file_size = count($ChatPeople);
$sauber = "";
foreach($ChatPeople as $value) {
if($value !=""){
$sauber .= "\n$value";
$wio_chat_file_size++;
}
}
$ChatPeople = substr($sauber,1);
if($wio_chat_file_size>0){
if($onlinechatlistsize>=$wio_chat_file_size) {$onlinechatlistsize=$wio_chat_file_size+1;}
} else {
$onlinechatlistsize=2;
$ChatPeople.="<option value=\"niemand\" title=\"niemand\">Kein User im Chat</OPTION>\n";
}
echo "";
echo "<td width=\"150\"><form action=\"modules.php?test\" name=\"onlinechatuserinfo\" method=\"get\" style=\"border: 0px; margin-bottom: 5px; margin-top: 0px;\">";
echo "<select name=\"ucname\" size=\"$onlinechatlistsize\" style=\" background-color: $bgcolor1; font-size: 9px; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; color: $txtcolor1; width: 150px; cursor: hand; border: 1px solid $bgcolor2; text-decoration: none; padding-left: 1px; padding-top: 1px; padding-bottom: 1px;\">".$ChatPeople."</select>";
echo "</form></td></tr>\n";
// chat in the same window
}
#echo "</center>";
// show chatmode (new/same window) option
#if(($chatsettings['popupwindow'] == "true" && $mode != "same") || $mode == "new")
#echo "<br>"._CHAT_NEWMODE." [ <a href=\"modules.php?name=".$GLOBALS['name']."&mode=same\">"._CHAT_CHANGEMODE."</a> ]";
#else
#echo "<br>"._CHAT_SAMEMODE." [ <a href=\"modules.php?name=".$GLOBALS['name']."&mode=new\">"._CHAT_CHANGEMODE."</a> ]";
// if no room is available
}else{
echo _CHAT_NOROOMS."<br><br>";
}
echo '</table><br><br><font size="0"><div align="right"><i>powered by <a href="http://www.pjirc.com" target="_blank">PJIRC</a></i> </div></font>';
CloseTable();
include("footer.php");
}
ZitatIst das die Zeile 532?
$ChatPeople[].="<option value=\"".$name."\" title=\"".$name."\">".$name."</OPTION>\n";
Ist es so schwer eifache Fragen zu beantworten?
Ja ne das hab ich nur vom alten kopiert der punkt ist nicht drn...
: Dwaaaaaaaaaaaaaaaaa :D
Was'n Codemonster?!? Wer soll denn sowas mit dem Gescrolle lesen können? Da platzt einem ja die Optik aus dem Kopf. Kann man sowas nicht als txt-File auf den eigenen Webspace ablegen und hier verlinken?
Das tät's einfacher machen ...
RtR
http://www.flirt4u.net/hm.txt
So bessa
:gruebel: Nö, ich geh erstmal mit den Hunden.... :wall: :wall: :wall: :wall: :wall: :wall: :wall:
Höhö joa ;)
Zitat von: NeMeSiSX2LC am 14 Juli 2005, 18:44:45So bessa
Nicht wirklich :-X Guck Dir mal den
horizontalen Scrollbalken auf dem angehäng´ten Screenie an! Hoch und runter ist wurschtegal, darin hat man Übung (und ein stabiles Mausrad), aber das?!? Wirkliche Freude kommt da nicht auf ...
RtR
Jupps aber wenn mans im Editor von wie auf macht und den Zeileumbruch aktiviert ;)
Ja, und wenn ich mir dann noch das multidultisuppiaddon zum Editor installiere , dann finde ich auch den Rest der Datei und die passende Zeilennummer zur Fehlermeldung dazu...
Ist das so schwer, die Datei komplett unter neuem Namen zu speichern und bereitzustellen....
Ich weiss auch immernoch nicht, was in der ominösen Zeile 532 steht, bzw. was genau die neue Fehlermeldung mit Zeilennummer sagt, bzw. die Zeile dazu.....
Sorry, aber so helf ich nicht weiter.
Muss man denn alles aus der Nase ziehen. >:(
Bist doch wirklich schon lange genug dabei
Ich Sag jetzt besser nix sonst ortet das jetzt zum Grösseren Streit aus ;) die Datei ist im Anhang. Wenn es so genehm ist...
fügst du die ganzen Leerzeilen extra ein damit das ganze nach mehr aussieht?
in zeile 532 steht bei mir nix :)
reduzieren wir das ganze mal aufs wichtigste:
$ChatPeople[]= "";
$ChatPeople[] .= "<option value=\"".$name."\" title=\"".$name."\">".$name."</OPTION>\n";
(sorry Andi, da muß ein Punkt hin :) )
$ChatPeople = array_unique($ChatPeople);
die Frage ist nur ob nun die Datei richtig ausgelesen wurde und dem Array auch werte übergibt.
Funktionieren muß es so, schliesslich ist es im who_is_online_eggdrop-block genau so hinterlegt wie NeMeSiSX2LC es rauskopiert hat :)
die files sind laut ftp da...
Die Leerzeilen kommen immer wenn ich von der Seite was runterlade...
Im Endeffekt sind wir nun genauso weit wie am Anfang...
Hallo !
Zitat$ChatPeople[]= "";
$ChatPeople[] .= "<option value=\"".$name."\" title=\"".$name."\">".$name."</OPTION>\n";
sorry Andi, da muß ein Punkt hin
Ähhh, warum muss da ein Punkt hin ?
Durch die Angabe $ChatPeople
[] ist $ChatPeople automatisch ein Array. Es wird automatisch der Index um eines hochgezählt und der Entsprechende Wert eingetragen. Dar Punkt vor dem Gleichheitszeichen ist dazu nicht notwendig. ?!
MfG
jubilee
Zitatsorry Andi, da muß ein Punkt hin
Sorry, aber da sehe ich keinerlei Sinn drin...
Schreibe mal folgendes in eine Datei und rufe die auf:
<?php
error_reporting(E_ALL);
#$ChatPeople= "irhgendeinstring";
$ChatPeople[]= "";
print_r($ChatPeople);
$ChatPeople[] .= "irgendwas";
print_r($ChatPeople);
$ChatPeople = array_unique($ChatPeople);
print_r($ChatPeople);
?>
Für was ist der Punkt gut?
Der einzige Effekt von
$ChatPeople[]= ""; ist ein leeres Arrayelement. Der zweite Aufruf, mit dem Punkt fügt da nichts mehr hinzu sondern legt ein weiteres Arrayelement an.
Danach entferne mal das Doppelkreuz vor
#$ChatPeople= "irhgendeinstring"; und kuck was passiert..... ;)
ok, mit dem Punkt hat die Fehlermeldung nix zu tun...
Aber mit mit meinem Hinweis, dass das Array irgendwo vorher schon ein String ist.
EDIT
uuuups, Jubilee war schneller ;)
So damit hätte wir die "PUNKT" frage vom Tisch hat jetzt auch noch jemand eine Idee wie ich das eigentlich Problem löse ?
@andi
ok. sorry hast recht :)
@NeMeSiSX2LC
nö, das sollte so eigentlich funken.
Der Chat zeigt aber das es so nicht geht...
Vielleicht kann ja heute einer weiter helfen...
Wir danken jeden der uns da HELFEN kann
Zitat von: wob am 22 Juli 2005, 12:13:43
Vielleicht kann ja heute einer weiter helfen...
Wir danken jeden der uns da HELFEN kann
Neue Woche neues GLÜCK :-)
Mfg Rene ;)
Schieb:
Zitat von: Andi am 08 Juli 2005, 19:23:21
Ohne in den Code zu sehen...
$ChatPeople wird irgendwo vorher zum String deklariert oder konvertiert.
.........
Also musst du dir klar sein, ob die Variable jetzt ein Array, oder ein String sein soll....
Zitat von: Andi am 14 Juli 2005, 20:19:05
Ja, und wenn ich mir dann noch das multidultisuppiaddon zum Editor installiere , dann finde ich auch den Rest der Datei und die passende Zeilennummer zur Fehlermeldung dazu...
Ist das so schwer, die Datei komplett unter neuem Namen zu speichern und bereitzustellen....
Ich weiss auch immernoch nicht, was in der ominösen Zeile 532 steht, bzw. was genau die neue Fehlermeldung mit Zeilennummer sagt, bzw. die Zeile dazu.....
Sorry, aber so helf ich nicht weiter.
Muss man denn alles aus der Nase ziehen. >:(
Bist doch wirklich schon lange genug dabei
;)
Meinste die Date iauf Seite 1 hab ich zj Spass reingehängt?? Kann ja auch nix für wenn die bei mir so uuups ankommen. Woble zieh du die mal vom FTP und hau die hier rein...
Ok dann hier nochmal die index.php... vielleicht hilft die ja weiter :-\
Sorry Leute, wir brauchen
- nochmal die aktuelle Fehlermeldung
- das, was in der angemängelten Zeile steht
- UND VOR ALLEM DEN GRUND, WARUM DAS ARRAY, AN DIESER STELLE BEREITS ALS STRING DEKLARIERT IST
(Und nein, ich installiere mir deswegen nicht den Chat.)
Ok so wirds nix mir zerhaut es immer die file. Würde es vielleicht ein Site Account und FTP zugang tun??
nein, zugriff auf dein Konto und deine Tanliste brauchen wir noch :)
kopier doch nochmal den Block raus indem das Array zum String feklariert wird, die Zeile in der der Fehler gemeldet wird und die genaue Fehlermeldung.
mehr brauchen wir echt nicht :)
Array > String:
$ChatPeople = array_unique($ChatPeople);
//$wio_chat_file_size = count($ChatPeople);
$sauber = "";
foreach($ChatPeople as $value) {
f($value !=""){
$sauber .= "\n$value";
$wio_chat_file_size++;
}
}
$ChatPeople = substr($sauber,1);
if($wio_chat_file_size>0){
if($onlinechatlistsize>=$wio_chat_file_size) {$onlinechatlistsize=$wio_chat_file_size+1;}
} else {
$onlinechatlistsize=2;
$ChatPeople.="<option value=\"niemand\" title=\"niemand\">Kein User im Chat</OPTION>\n";
}
Zeile der Meldung(wie oft eigentlich noch):
$ChatPeople[] .= "<option value=\"".$name."\" title=\"".$name."\">".$name."</OPTION>\n";
Fehlermeldung:
Fatal error: [] operator not supported for strings in /*****/modules/Chat1024JVM/index.php on line 532
ZitatArray > String:
$ChatPeople = array_unique($ChatPeople);
das kommt aber doch erst nach der Zeile 532 oder?
vor der Zeile 532 muß aus dem array schon ein string gemacht worden sein.
oder springst du nachdem du aus dem array die doppelten gelöscht hast nochmal rauf und fügst was hinzu?
Closed, weil erledigt
http://www.pragmamx.de/modules.php?name=Forum&topic=13262.msg89793#msg89793