VoteSystem?

Hallo ihr lieben,

ich hoffe ich darf so etwas hier Fragen /emoticons/default_smile.png Ich hab mir von Supergadget das VoteSystem vor langer Zeit geholt, es hat auch einwandfrei funktioniert. Seit der neusten Core aber leider nicht mehr da bringt er immer wenn man sich ein Item kaufen möchte “Send Mail Problem”

Bekomm noch graue Haare damit, probier schon seit Tagen rum -.-

Vielleicht könnt ihr mir Helfen

Config:


<?php

$realms = array(

// "ServerName" => array(realmd_DB, characters_DB, remote_access, tabs)

"Pandora" => array(1, 1, 1, 1),

//"WoW Fun" => array(2, 2, 2, 2),

//"WoW PVP" => array(3, 3, 3, 3),

);

$realmd_DB = array(

// Connection to realmd DBs

1 => array("78.46.23.66:3306", "asdfy", 1234", "logon"),

//2 => array("127.0.0.1:3306", "XXXX", "XXXX", "realmd"),

//3 => array("127.0.0.1:3306", "XXXX", "XXXX", "realmd"),

);

$characters_DB = array(

// Connection to characters DBs

1 => array("78.46.23.66:3306", "asdfy", 1234", "char"),

//2 => array("127.0.0.1:3306", "xxxx", "xxxx", "xxxx"),

//3 => array("127.0.0.1:3306", "xxxx", "xxxx", "xxxx"),

);

$connection_type = 1;

$remote_access = array(

// Connection to remote access

// array(server_remote_ip, remote_port, USERNAME, password)

// USERNAME must be upper case here and in DB

1 => array("78.46.23.66", "3444", "Bla", "Blub123"),

//2 => array("127.0.0.1", "3446", "xxxx", "XXXX"),

//3 => array("127.0.0.1", "3445", "xxxx", "XXXX"),

);

$tabs = array(

// Files containing sites and rewards for every realm (all must be placed in folder \tabs)

1 => array("sites.php", "rewards.php"),

//2 => array("sites.php", "rewards.php"),

//3 => array("sites.php", "rewards.php"),

);

WorldServer:


###################################################################################################

# CONSOLE AND REMOTE ACCESS

#

#    Console.Enable

#	    Description: Enable console.

#	    Default:	 1 - (Enabled)

#					 0 - (Disabled)

Console.Enable = 1

#

#    Ra.Enable

#	    Description: Enable remote console (telnet).

#	    Default:	 0 - (Disabled)

#					 1 - (Enabled)

Ra.Enable = 1

#

#    Ra.IP

#	    Description: Bind remote access to IP/hostname.

#	    Default:	 "0.0.0.0" - (Bind to all IPs on the system)

Ra.IP = "0.0.0.0"

#

#    Ra.Port

#	    Description: TCP port to reach the remote console.

#	    Default:	 3443

Ra.Port = 3444

#

#    Ra.MinLevel

#	    Description: Required security level to use the remote console.

#	    Default:	 3

Ra.MinLevel = 3

#

#    SOAP.Enable

#	    Description: Enable soap service

#	    Default:	 0 - (Disabled)

#					 1 - (Enabled)

SOAP.Enabled = 1

#

#    SOAP.IP

#	    Description: Bind SOAP service to IP/hostname

#	    Default:	 "127.0.0.1" - (Bind to localhost)

SOAP.IP = "127.0.0.1"

#

#    SOAP.Port

#	    Description: TCP port to reach the SOAP service.

#	    Default:	 7878

SOAP.Port = 7877

#

###################################################################################################

Jemand eine Idee was ich falsch mache?

Ja die Ports sind Freigegeben

Definier mal “der neuesten Core”.

Desweiteren kann zumindest ich persönlich nichts mit deiner Information anfangen.

Alles was mir dein Post sagt ist, dass du ein VoteSystem von Supergadget benutzt, das nun aber nicht mehr geht.

Dass du wohl ein Core Update gemacht hast und nun einen “Send Mail Problem” Error bekommst.

Dir ne weile den Kopf zerbrochen hast, was du wohl etwas übertrieben hast, sonst hättest du nicht so einen ultra aussagekräftige Post geschrieben, in dem du nur die Config files von Trinity und dem System postest, aber nichts weiter.

Vermutlich sollen wir nun daraus lesen können wie der Code des VoteSystems aussieht, wo der Fehler liegt und was du ändern musst, damit es wieder geht.

Defenetion von neuster Core, neu gezogen und complietet am Montag

Ich dachte eher das der Fehler an meiner Einstellung in den Configs liegt, wenn du aber gerne mal den Code haben möchtest poste ich ihn gerne /emoticons/default_smile.png


<?php

set_time_limit(0);

ini_set('default_charset', 'UTF-8');

set_magic_quotes_runtime(false);

function execute_query($query, $error = "")

{

$query_result = @mysql_query($query);

if($query_result)

  return $query_result;

else

{

  die($error.mysql_error());

  return false;

}

}

function switchConnection($db_type, $realm_name)

{

global $characters_DB, $realmd_DB, $realms;

switch($db_type)

{

  case "realmd": $needed_db = $realmd_DB[$realms[$realm_name][0]]; break;

  case "characters": $needed_db = $characters_DB[$realms[$realm_name][1]]; break;

}

mysql_connect($needed_db[0], $needed_db[1], $needed_db[2]) or die("Unable to connect to SQL host of ".$db_type." DB of realm ".$realm_name.": ".mysql_error());

mysql_select_db($needed_db[3]) or die("Unable to connect to ".$db_type." DB of realm ".$realm_name.": ".mysql_error());

execute_query("SET NAMES 'utf8'");

}

function initialize_user()

{

global $ip_voting_period;

switchConnection("realmd", $_SESSION['realm']);

// Table voting_points

$get_voting_points = execute_query("SELECT `points`, `date`, `date_points` FROM `voting_points` WHERE `id` = ".$_SESSION['user_id']." LIMIT 1");

if(mysql_num_rows($get_voting_points))

{

  $row = mysql_fetch_assoc($get_voting_points);

  $_SESSION['points'] = $row['points'];

  $today = date("Ymd");

  if($row['date'] <> $today)

  {

   execute_query("UPDATE `voting_points` SET `date` = '".$today."', `date_points` = 0 WHERE `id` = ".$_SESSION['user_id']." LIMIT 1");

   $_SESSION['date'] = $today;

   $_SESSION['date_points'] = 0;

  }

  else

  {

   $_SESSION['date'] = $row['date'];

   $_SESSION['date_points'] = $row['date_points'];

  }

}

else

{

  execute_query("INSERT INTO `voting_points` (`id`) VALUES (".$_SESSION['user_id'].")");

  $_SESSION['points'] = 0;

  $_SESSION['date'] = date("Ymd");

  $_SESSION['date_points'] = 0;

}

// Table voting

$get_voting = execute_query("SELECT `sites`, `time` FROM `voting` WHERE `user_ip` LIKE '".$_SERVER["REMOTE_ADDR"]."' LIMIT 1");

if(mysql_num_rows($get_voting))

{

  $row = mysql_fetch_assoc($get_voting);

  $_SESSION['time'] = $row['time'];

  if((time() - $row['time']) > $ip_voting_period)

  {

   execute_query("UPDATE `voting` SET `sites` = 0 WHERE `user_ip` LIKE '".$_SERVER["REMOTE_ADDR"]."' LIMIT 1");

   $_SESSION['sites'] = 0;

  }

  else

   $_SESSION['sites'] = $row['sites'];

}

else

{

  execute_query("INSERT INTO `voting` (`user_ip`) VALUES ('".$_SERVER["REMOTE_ADDR"]."')");

  $_SESSION['sites'] = 0;

  $_SESSION['time'] = 0;

}

}

function sec_to_dhms($sec, $show_days = false)

{

global $language;

$days = intval($sec / 86400);

$hours = intval(($sec / 3600) % 24);

$minutes = intval(($sec / 60) % 60);

$seconds = intval($sec % 60);

return $days." ".$language['days'].", ".$hours." ".$language['hours'].", ".$minutes." ".$language['minutes_and']." ".$seconds." ".$language['seconds']."";

}

function vote($site)

{

global $acc_points_per_date, $tab_sites, $use_online_check;

if(array_key_exists($site, $tab_sites))

{

  if($use_online_check)

   $fp = @fsockopen($tab_sites[$site][0], 80, $errno, $errstr, 3);

  else

   $fp = True;

  if(!($site & $_SESSION['sites']) && ($_SESSION['date_points'] < $acc_points_per_date) && $fp)

  {

   echo "<script language='javascript'>setTimeout(window.open(\"".$tab_sites[$site][1]."\", \"_self\", \"\"),0);</script>";

   if($use_online_check)

    fclose($fp);

   switchConnection("realmd", $_SESSION['realm']);

   execute_query("UPDATE `voting` SET `sites`=(`sites` | ".$site."), `time`='".time()."' WHERE `user_ip` LIKE '".$_SERVER["REMOTE_ADDR"]."' LIMIT 1");

   $_SESSION['sites'] += $site;

   $_SESSION['time'] = time();

   execute_query("UPDATE `voting_points` SET `points`=(`points` + ".$tab_sites[$site][3]."), `date_points`=(`date_points` + ".$tab_sites[$site][3].") WHERE `id` = ".$_SESSION['user_id']." LIMIT 1");

   $_SESSION['points'] += $tab_sites[$site][3];

   $_SESSION['date_points'] += $tab_sites[$site][3];

  }

}

}

function show_sites()

{

global $acc_points_per_date, $language, $tab_sites, $use_online_check;

echo "<table border='1' cellspacing='1' cellpadding='3' align='center'>

<tr>

  <th colspan='4'>".$language['chose_site']."<br>".$language['info']."</th>

</tr>

<tr>

  <th>".$language['voting_sites']."</th>

  <th>".$language['voted']."</th>";

if($use_online_check)

  echo "<th>".$language['status']."</th>";

echo "<th>".$language['points_1']."</th>

  <th>".$language['choose']."</th>

</tr>";

foreach($tab_sites as $key => $value)

{

  echo "<form action='index.php' method='post' target='_blank'><input type='hidden' name='site' value='".$key."'>";

  echo "<tr>

   <td align=\"center\"><img src=\"".$value[2]."\" border=\"0\" alt=\"".$value[0]."\" /></td>

  <td align=\"center\">";

  if($_SESSION['date_points'] >= $acc_points_per_date)

   $disabled = " disabled";

  else

   $disabled = "";

  if($_SESSION['sites'] & $key)

  {

   echo "<font color=\"red\">".$language['yes']."</font>";

   $disabled = " disabled";

  }

  else

   echo "<font color=\"green\">".$language['no']."</font>";

  echo "</td>";

  if($use_online_check)

  {

   echo "<td align=\"center\">";

   $fp = @fsockopen($value[0], 80, $errno, $errstr, 3);

   if($fp)

   {

    echo "<font color=\"green\">".$language['online']."</font>";

    fclose($fp);

   }

   else

   {

    echo "<font color=\"red\">".$language['offline']."</font>";

    $disabled = " disabled";

   }

   echo "</td>";

  }

  echo "<td align=\"center\">".$value[3]."</td>

  <td><input type='submit' name='submit' value='".$language['choose']."'".$disabled." ></td>

  </tr></form>";

}

echo "</table>";

}

function show_chars_menu()

{

switchConnection("characters", $_SESSION['realm']);

$results = execute_query("SELECT `guid`, `name` FROM `characters` WHERE `account` = ".$_SESSION['user_id']);

while($row = mysql_fetch_assoc($results))

  echo "<option value='".$row['guid']."'>".$row['name']."</option>";

}

function add_char_to_session($guid)

{

switchConnection("characters", $_SESSION['realm']);

$_SESSION['char_name'] = mysql_result(execute_query("SELECT `name` FROM `characters` WHERE `account` = ".$_SESSION['user_id']." AND `guid` = ".$guid." LIMIT 1"), 0);

}

function show_rewards()

{

global $langs, $language, $reward_texts, $set_lang, $tab_rewards;

echo "<script type=\"text/javascript\" src=\"http://www.wowhead.com/widgets/power.js\"></script>";

echo "<table border='1' cellspacing='1' cellpadding='3' align='center'>

<tr>

  <th colspan='3'>".$language['available_rewards']."</th>

</tr>

<tr>

  <th colspan='3'>Willkommen in dem VoteShop von Blue Dimension!</th>

</tr>";

foreach($tab_rewards as $key => $value)

{

  if($value[2] > $_SESSION['points'])

   $disabled = " disabled";

  else

   $disabled = "";

  echo "<form action='index.php' method='post'><input type='hidden' name='reward' value='".$key."'>

  <tr><td>";

  if($value[0] && $value[3] >= 0)

   echo "<a class=\"q".$value[3]."\" href=\"http://".$langs[$set_lang][1].".wowhead.com/?item=".$value[0]."\" target=\"_blank\">".$reward_texts[$key][$langs[$set_lang][2]]."</a>";

  else

   echo $reward_texts[$key][$langs[$set_lang][2]];

  echo "</td>

  <td>".$value[2]." ".$language['points_2']."</td>

  <td><input type='submit' name='submit' value='".$language['choose']."'".$disabled." ></td></tr></form>";

}

echo "</table>";

}

function chose_reward($reward)

{

global $langs, $language, $realms, $remote_access, $reward_texts, $set_lang, $tab_rewards;

if(!array_key_exists($reward, $tab_rewards))

  return "";

if($_SESSION['points'] < $tab_rewards[$reward][2])

  return "";

$remote = $remote_access[$realms[$_SESSION['realm']][2]];

$telnet = @fsockopen($remote[0], $remote[1], $errno, $errstr, 3);

if($telnet)

{

  fgets($telnet,1024); // Motd

  fputs($telnet, $remote[2]."\n");

  sleep(3);

  fputs($telnet, $remote[3]."\n");

  sleep(3);

  $remote_login = fgets($telnet,1024);

  if($remote_login[0] == "U")

  {

   if($tab_rewards[$reward][0])

    fputs($telnet, "send item ".$_SESSION['char_name']." \"".$language['mail_subject']."\" \"".$language['mail_message']."\" ".$tab_rewards[$reward][0].":".$tab_rewards[$reward][1]."\n");

   else

    fputs($telnet, "send money ".$_SESSION['char_name']." \"".$language['mail_subject']."\" \"".$language['mail_message']."\" ".$tab_rewards[$reward][1]."\n");

   sleep(5);

   $send_mail = fgets($telnet,1024);

   if(strpos($send_mail, $_SESSION['char_name']))

   {

    switchConnection("realmd", $_SESSION['realm']);

    execute_query("UPDATE `voting_points` SET `points`=(`points` - ".$tab_rewards[$reward][2].") WHERE `id` = ".$_SESSION['user_id']." LIMIT 1");

    $_SESSION['points'] -= $tab_rewards[$reward][2];

    fclose($telnet);

    return "<center><font color=\"yellow\">".$language['was_given']." ".$reward_texts[$reward][$langs[$set_lang][2]]." ".$language['to']." ".$_SESSION['char_name']."</font></center>";

   }

   else

   {

    fclose($telnet);

    return "<center><font color=\"red\">Send Mail Problem: ".$send_mail."</font></center>";

   }

  }

  else

  {

   fclose($telnet);

   return "<center><font color=\"red\">Remote Login Problem: ".$remote_login."</font></center>";

  }

}

else

  return "<center><font color=\"red\">Telnet Connection Problem: ".$errstr."</font></center>";

}

?>

Ja, denn wenn ich davon ausgehe dass du deine DB richtig in die Configs eingetragen hast, konnte ich da keinen fehler finden.

Neuste Core, sowas gibt es nicht, weil sie von einer auf die andere secunde nicht mehr die nueste sein kann,

und die Aussage “neu gezogen am Montag”, is auch eher schwammig, da es alleine am montag 2 Updates gab, und es somit 3 Versionen sein KÖNTEN.

7139a953325, d44ec4b7da, oder 174deb131a

und danke dir für den Code, werde in mir mal anschauen.

laut meiner Kommando liste ist es jetzt


send items

und nicht


send item

das kann schon die Ursache sein.

Tatsache, das könnte es schon sein.

Also ich hab das send item jetzt in send items umgeschrieben aber es kommt noch immer send mail problem

Nach dem ich vorhin ein core Updatet gemacht auf rev. b32878f02f801feb0db0a60d528322740d16c01c habe geht nun auch bei mir die Konsole/SOAP nicht mehr es liegt aber nicht an dein

Script sonder Trinity hat da wieder ein bug mehr produziert so das zur zeit die Konsole nicht zur Verfügung seht.

dazu gibt es auch schon ein Ticket

https://github.com/T…ore/issues/7966

Man könnte die Post auch über SQL Commands verschicken, würde “Immer” gehen, unabhängig der Console.

Der Empfänger hätte sie dann nach dem einloggen im Kasten.

das ging früher mal und ist nicht zu empfehlen es muss da in 3 Tabellen Eintragungen gemacht werden zum Glück benötige ich die Konsole für diesen Zweck nicht da ich denn core erweitert habe Stichwort ‘EXTERNAL MAIL’

Was heißt hier “ging” das geht natürlich immer noch.

Und wenn man weiß was wo eingetragen werden muss, dann sehe ich da absolut kein Problem.

Hab ich selbst schon oft genug genutzt, die Core macht ja auch nix anderes.

LG

laut meiner Erfahrung klappt das nicht immer selbst die dev hier raten davon ab.

Oft kommen die falschen items an die man gar nicht geschickt hat.

habe vor einiger zeit mal ein Vote System gefixt und für Trinity angepasst und auf github hoch geladen

https://github.com/Robox/Votesystem

Allso ich hab noch keine schlechte erfahrung damit gesammelt, bei mir hats immer super funktioniert, aber gut /emoticons/default_biggrin.png


Dann versuchs doch mal mit dem /emoticons/default_wink.png

so habe das Problem gelöst

mach folgendes

offene die Konsole gehe in dein Sourcecode verzeichnet

führe die befehle nach einander aus


git bisect start

git bisect good 

git bisect bad

git bisect reset

nun noch den Sourcecode wenn gewünscht auf den neusten stand bringen.


git pull  master

nun den Sourcecode neu compilieren danach Solde die Konsole wieder gehen .

Nachdem ich das jetzt gemacht habe kann ich dir Core nicht mehr compilieren da er mir 3 Fehler ausspuckt /emoticons/default_biggrin.png

ich gehe mal davon aus das du Win. benützt Klinge mit rechts klick auf den Ordner wo der Sourcecode liegt in den Kontextmenü auf “Git Bash Here” klicken

oder unter Start->Alle Programme ->Git → “Git Bash” hier musst du danach erst noch in dein Sourcecode verzeichnet gehen


cd x\pfaht\ordner

man kann das auch mit der Konsole von Windows machen

Jetzt ging es mit deiner Anleitung aber jetzt bekomm ich einen neuen Error

Telnet Connection Problem: Ein Verbindungsversuch ist fehlgeschlagen, da die Gegenstelle nach einer bestimmten Zeitspanne nicht richtig reagiert hat, oder die hergestellte Verbindung war fehlerhaft, da der verbundene Host nicht reagiert hat.

überprüfe mal deine Freeware

Was meinst du denn mit Freeware? Meintest du eventuell Firewall?