Hilfe bitte mit vote script

03/25/2015 11:59 PlayaStylee#1
Hallo kann mir helfen das umzuschreiben wenn man votet bekommt man item ins lager
das soll aber coins auf konto gutschreiben der code ist

PHP Code:
public function __construct()
{
        $connect = mysql_connect($this->config['db_host'], $this->config['db_user'], $this->config['db_pass']);
        if(!$connect)
        die(mysql_error());
        $db = mysql_select_db($this->config['db_database'], $connect);
        if(!$db)
        die(mysql_error());
}
public function do_vote()
{
        // $name = mysql_real_escape_string($_POST['name']);
        $fetch = mysql_query("SELECT * FROM `account` WHERE `login` LIKE '".$_SESSION['user_name']."'" . "LIMIT 1") or die(mysql_error());
        $get = mysql_fetch_array($fetch);
        if((time() - $get['lastvote']) < (3600 * $this->config['vote_int']) && $get['lastvote'] != 0)
            {
                $hours_left = round((((($get['lastvote'] + (3600 * $this->config['vote_int'])) - time()) / 3600)), 0);
                echo ('<center><b>Du kannst erst wieder in '.$hours_left.' Stunden Voten!.<center></b>');
            }
            else
            {
                mysql_query("UPDATE `account` SET `lastvote` = '".time()."' WHERE `login` LIKE '".$_SESSION['user_name']."' LIMIT 1") or die(mysql_error());
                $sqlItem = "INSERT INTO    player.item_award (login, vnum , count , why, mall ) 
                VALUES ('".$_SESSION['user_name']."', '90006', '1', 'voten2', '1')";
                $qryItem=mysql_query($sqlItem) or die(mysql_error());
?>
<meta http-equiv="refresh" content="1;url=http://www.topliste.*****************/in/1001-kryos2-com.html">
<?php
    
echo "<center>Sie werden jetzt zur Vote seite weitergeleitet ...<center>";
    }
}
public function 
vote_forms() 
{
    if(!isset(
$_POST['submit']))
    {
        echo 
"
        Du kannst aller 24 Stunden für unseren Server Voten,<br>
        bedenke das sämtliche Vote's geloggt werden.<br><br>
        Für das Voten erhälst du eine Votetruhe,diese befindet<br>
        sich dann in deinem Itemshoplager bis du sie abholst!<br><br>
        Sollte eine manipulation des System festgestellt werden,<br>
        führt dies zum permanenten Auschluß aus der Spielwelt von<br>
        <center><b>SERVERNAME</b>.</center><br>
        <center><form method='post' action=''>
            <input type='submit' name='submit' value='Jetzt für SERVERNAME voten!' />
        </form></center><br>"
;
    }
    else
    {
        
$this->do_vote();
    }
}
}
?>
<?php
$vote 
= new Vote();
$vote->vote_forms();
?>
<?php
$str 
'kommtnoch==';
echo 
base64_decode($str);
?>
<?PHP
    
}
    else { echo
'<p class="meldung">Sie müssen für diesen Bereich angemeldet sein.</p>';
    }
?>
</div>
</div>
<div class="con-foot"></div>
03/25/2015 12:42 Nick#2
Anliegen in Bezug auf Privatserver finden [Only registered and activated users can see links. Click Here To Register...] Platz. (moverequested => [Only registered and activated users can see links. Click Here To Register...])

lg
03/25/2015 23:00 Zevion#3
#moved
03/26/2015 10:58 vinnce#4
Quote:
$fetch = mysql_query("SELECT * FROM `account` WHERE `login` LIKE '".$_SESSION['user_name']."'" . "LIMIT 1") or die(mysql_error());
Das ist ja mal richtig goldener PHP cringe....
Ich geh mal davon aus das du die Coins Spalte wie die meisten anderen Metin PServer ebenfalls in der
account.account Tabelle hast:

PHP Code:
UPDATE account.account SET coins coins 1000 
Viel erfolg übrigens das Script überhaupt noch auf nem neu angemieteten Webserver zum laufen zu
bekommen, der prozedurale MySQL Wrapper ist schon seit vorgestern als deprecated markiert.
03/26/2015 11:25 PlayaStylee#5
ya andere gehn irgenwie nicht das vote system keine ahnung warum kannse mir denn so umschreiben und dann das script noch mal hier rein tun in der db ist es alles richtig nur das script muss angepast werden
03/26/2015 11:28 rollback#6
und änder das 'like' in ein '='
03/26/2015 11:41 vinnce#7
Quote:
Originally Posted by PlayaStylee View Post
ya andere gehn irgenwie nicht das vote system keine ahnung warum kannse mir denn so umschreiben und dann das script noch mal hier rein tun in der db ist es alles richtig nur das script muss angepast werden
Das liegt daran das du mit ziemlicher Sicherheit die MySQLi/PDO Extension nicht
aktiviert hast, und ich bin mir außerdem ziemlich sicher das du display_errors in der
php.ini deaktiviert hast und deswegen keine Ahnung hast wieso genau deine Scripte
nicht funktionieren. Hol dir ein anderes Script, glaub mir mit dem schießt du dir nur
selbst ins Bein.


Falls du allerdings doch diesen (auf gut deutsch gesagt) Müll als Voting Script verwenden möchtest, ersetze diese Zeile

PHP Code:
mysql_query("UPDATE `account` SET `lastvote` = '".time()."' WHERE `login` LIKE '".$_SESSION['user_name']."' LIMIT 1") or die(mysql_error()); 
Mit dieser:

PHP Code:
mysql_query("UPDATE `account` SET `lastvote` = '".time()."', coins = coins + 1000 WHERE `login` = '".$_SESSION['user_name']."' LIMIT 1"); 
Da es nicht ganz schlüssig war ob du willst das deine user nur Coins bekommen,
oder Coins + ein Item, entferne diese drei Zeilen wenn du möchtest das deine User
nur Coins bekommen:

PHP Code:
$sqlItem "INSERT INTO    player.item_award (login, vnum , count , why, mall )  
VALUES ('"
.$_SESSION['user_name']."', '90006', '1', 'voten2', '1')"
$qryItem=mysql_query($sqlItem) or die(mysql_error()); 
03/26/2015 13:27 KingAxanius#8
Also ich bin auch der Meinung, dass du ein Anderes nehmen solltest. Such mal nach Chuck Norris Vote-Script.
03/27/2015 09:39 PlayaStylee#9
hab ya schon aber cronjob auf nidrado machen ka wie ich das machen soll
03/27/2015 11:13 KingAxanius#10
Quote:
Originally Posted by PlayaStylee View Post
hab ya schon aber cronjob auf nidrado machen ka wie ich das machen soll
Das kannst du in PHP mittels shell_exec machen. Vllt findet sich hier jemand der dir da weiterhelfen kann.

PHP Code:
<?
$output 
shell_exec('crontab -l');
file_put_contents('/tmp/crontab.txt'$output.'* * * * * NEW_CRON'.PHP_EOL);
echo 
exec('crontab /tmp/crontab.txt');
?>
PS: Es ist nicht so einfach, wie's hier steht, aber so in etwa :)