Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste
BB Code
#1
Hi,

ich bin gerade dabei ein Plugin für die BB Codes eines Browsergames zu schreiben bzw. fürs MyBB anzupassen.
Der Code sieht so aus:
PHP-Code:
function dsbbcodes_run() {
  global 
$mybb;
  include(
'get_id.php');
  
  function 
get_serverdomain($servername) {
  
$file file_get_contents('http://www.die-staemme.de/backend/get_servers.php');
  
$servers unserialize($file);
  
$domain $servers[$servername];
  
  if (empty(
$domain)) {
    return 
false;
  }
  else
  {
    return 
$domain;
  }
  }
  
  
$world $mybb->settings['dsbb_world'];
  
$domain get_serverdomain($world);

//Tag [player]
if(strpos($message,"\[player\]")){
  
$message=preg_replace("\[player\](.*?)\[/player\]",'<a href='.$domain.'/game.php?screen=info_player&id='.get_id_of_player($1).' target="_blank">'.$1.'</a>',$message);
    return 
$message;


natürlich mit dem ganzen anderen zeugs, blabla aktivierung etc,
natürlich ist auch das
PHP-Code:
$plugins->add_hook("parse_message""dsbbcodes_run"); 
drin, jedoch bekomme ich eine Fehlermeldung wenn ich das AdminCP betreten will:
Zitat:Parse error: syntax error, unexpected T_LNUMBER, expecting T_VARIABLE or '$' in C:\Users\Christopher\Desktop\xampp\htdocs\mybb\inc\plugins\dsbbcodes.php on line 152

Zeile 152 ist diese:
PHP-Code:
$message=preg_replace("\[player\](.*?)\[/player\]",'<a href='.$domain.'/game.php?screen=info_player&id='.get_id_of_player($1).' target="_blank">'.$1.'</a>',$message); 

get_id.php (ein Teil davon):
PHP-Code:
function get_id_of_player($name){
$selectname="SELECT * FROM ".TABLE_PREFIX."ds_tribe WHERE name='".$name."' LIMIT 1";
$ergebnis=mysql_query($selectname) or die("Fehler beim suchen von der Playerid im Code: <b>".$selectname."</b>".mysql_error());
if(
$player=mysql_fetch_assoc($ergebnis)){
  return 
$player['id'];
}else{
  return 
111111;
}


Was mache ich falsch?

lg
Zitieren
#2
Okay, einen Fehler hab ich.

Jedoch: Wie mache ich das mit der get_id ?

Der Code sieht nun so aus:
PHP-Code:
//Tag [player]
if(strpos($message,"\[player\]")){
  
$message preg_replace("\[player\](.*?)\[/player\]"'<a href='.$domain.'/game.php?screen=info_player&id='.get_id_of_player('$1').' target="_blank">$1</a>'$message);
    return 
$message;


Fehler:
Zitat:Fatal error: Cannot redeclare get_id_of_player() (previously declared in C:\Users\Christopher\Desktop\xampp\htdocs\mybb\get_id.php:2) in C:\Users\Christopher\Desktop\xampp\htdocs\mybb\get_id.php on line 10
Zitieren
#3
Die Funktion "get_id_of_player()" ist in der get_id.php 2x definiert. Das ist nicht erlaubt.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#4
Zeile 10 ist aber nur das Ende der get_id_of_player, die endklammer }.

Zitat:function get_id_of_player($name){
$selectname="SELECT * FROM ".TABLE_PREFIX."ds_tribe WHERE name='".$name."' LIMIT 1";
$ergebnis=mysql_query($selectname) or die("Fehler beim suchen von der Playerid im Code: <b>".$selectname."</b>".mysql_error());
if($player=mysql_fetch_assoc($ergebnis)){
return $player['id'];
}else{
return 111111;
}
}

Und: nein, sie ist nicht zweimal definiert.
Zitieren
#5
Poste bitte mal die ganze Datei.
Vantage-Forum: http://vantage-forum.de/
Zitieren
#6
PHP-Code:
<?php
function get_id_of_player($name){
$selectname="SELECT * FROM ".TABLE_PREFIX."ds_tribe WHERE name='".$name."' LIMIT 1";
$ergebnis=mysql_query($selectname) or die("Fehler beim suchen von der Playerid im Code: <b>".$selectname."</b>".mysql_error());
if(
$player=mysql_fetch_assoc($ergebnis)){
  return 
$player['id'];
}else{
  return 
111111;
}
}

function 
get_id_of_village($x,$y){
$befehl="SELECT * FROM ".TABLE_PREFIX."ds_villages WHERE x=".$x." AND y=".$y." LIMIT 1";
$ergebnis=mysql_query($befehl) or die("Error".mysql_error());
if (
$village=mysql_fetch_assoc($ergebnis)) {
  return 
$village['id'];
}else{
  die(
"Fehler beim ermitteln der VillageID.");
  return 
false;
}
}

 function 
get_id_of_ally($name){
$befehl="SELECT * FROM ".TABLE_PREFIX."ds_ally WHERE name='".$name."' OR tag='".$name."' LIMIT 1";
$ergebnis=mysql_query($befehl) or die("Error beim suchen von der Allyid :<b>".$befehl."</b>".mysql_error()."<p>");
if(
$ally=mysql_fetch_assoc($ergebnis)){
  return 
$ally['id'];
}else{
  return 
111111;
}
}

function 
get_name_of_village($id){
$befehl="SELECT * FROM ".TABLE_PREFIX."ds_villages WHERE id=".$id." LIMIT 1";
$ergebnis=mysql_query($befehl);
if (
$village=mysql_fetch_assoc($ergebnis)) {
  return 
urldecode($village['name']);
}else{
  return 
"Dorf ungültig";
}
}
?>

Ist die ganze Datei, die anderen Funktionen sind aber immo unwichtig, da die BB Codes dazu erst später kommen. Erstmal den player Tag abschließen, dann werden die anderen ganz einfach Wink

lg

/edit : hallloooo? xD
Zitieren
#7
Okay, der Fehler ist auch raus.
require_once() hats getan Wink

Zitat:Warning: preg_replace() [function.preg-replace]: Delimiter must not be alphanumeric or backslash in C:\Users\Christopher\Desktop\xampp\htdocs\mybb\inc\plugins\dsbbcodes.php on line 139

Warning: preg_replace() [function.preg-replace]: Delimiter must not be alphanumeric or backslash in C:\Users\Christopher\Desktop\xampp\htdocs\mybb\inc\plugins\dsbbcodes.php on line 139

Warning: preg_replace() [function.preg-replace]: Delimiter must not be alphanumeric or backslash in C:\Users\Christopher\Desktop\xampp\htdocs\mybb\inc\plugins\dsbbcodes.php on line 139

ist der nächste Fehler.

Zeile 139 ist wieder:
PHP-Code:
$message preg_replace('\[player\](.*?)\[/player\]''<a href='.$domain.'/game.php?screen=info_player&id='.get_id_of_player('$1').' target="_blank">$1</a>'$message); 

/edit: Sind drei Posts, deshalb drei Fehlermeldungen
Zitieren
#8
Hallo Chrissi,

Versuche es mal bitte hiermit:
PHP-Code:
$message preg_replace("\[player\](.*?)\[/player\]""<a href=\"".$domain."/game.php?screen=info_player&id=".get_id_of_player($1)." target=\"_blank\">$1</a>"$message); 

Mfg Garlant
Ich gebe keinen Support per Messenger oder PN!
Zitieren
#9
Garlant schrieb:Hallo Chrissi,

Versuche es mal bitte hiermit:
PHP-Code:
$message preg_replace("\[player\](.*?)\[/player\]""<a href=\"".$domain."/game.php?screen=info_player&id=".get_id_of_player($1)." target=\"_blank\">$1</a>"$message); 

Mfg Garlant

Das hatte ich ja schon, da kommt
Zitat:Parse error: syntax error, unexpected T_LNUMBER, expecting T_VARIABLE or '$' in C:\Users\Christopher\Desktop\xampp\htdocs\mybb\inc\plugins\dsbbcodes.php on line 136
Zitieren
#10
Hallo Chrissi,

Der Fehler erscheint da $1 eine unzulässige Variable ist.
Ersetze diese Variable durch eine andere, anschließend sollte es ohne Probleme Funktionieren.

Mfg Garlant
Ich gebe keinen Support per Messenger oder PN!
Zitieren