misteriöses nichtfunktionieren meines skripts...
kphaber321
- php
hallo liebes forenvolk!
Ich hab ein "kleines" Problem, und zwar hab ich ein PHP-Script geschrieben, wobei ich mir die Grundstruktur von einem funktionierenden Script des Projekts abgeguckt hab.
Ich sitze jetzt schon ein paar Stunden daran und finde den Fehler einfach nicht!
[code lang=php]
<?php
include("forum.fire.php"); //SQL-Daten für forum
$config['mysql_host_forum'] = $config['mysql_host'];
$config['mysql_user_forum'] = $config['mysql_user'];
$config['mysql_pass_forum'] = $config['mysql_pass'];
$config['mysql_dbname_forum'] = $config['mysql_dbname'];
include("saithslogontest.fire.php"); //SQL-Daten für logontest
error_reporting(E_ALL ^ E_NOTICE);
session_start();
$msg = Array();
$error = Array();
function addUser(){
//es wurde kein formular gesendet
if (empty($_GET)) return false;
if(empty($_GET['gold'])) {
$error[] = 'Du hast nicht ausgewählt, wie viel Gold du bestellen möchtest!';
}
if(empty($_GET['char'])) {
$error[] = 'Du hast vergessen einen Characternamen einzugeben!';
}
if(empty($vbulletin->userinfo['username'])) {
$error[] = 'Fehler mit Benutzername!';
}
//es ist mind. ein fehler entstanden
if (!empty($error)) return false;
//zur foren-db verbinden und möglicherweise fehler ausgeben
$db_forum = @mysql_connect($config['mysql_host_forum'], $config['mysql_user_forum'], $config['mysql_pass_forum']);
if (!$db_forum) return $error[] = 'Database_f: '.mysql_error();
if (!@mysql_select_db($config['mysql_dbname_forum'], $db_forum)) return $error[] = 'Database: '.mysql_error();
//db-abfrage: money?
$query = "SELECT money
FROM vb\_user
WHERE username
= '".mysql_real_escape_string($vbulletin->userinfo['username'])."'";
$res = mysql_query($query, $db_forum);
if (!$res) return $error[] = 'Database_f: '.mysql_error();
while (list($money) = mysql_fetch_row($res)){
$ist = $money;
}
// PREIS-LEISTUNGS-ZUORDNUNG
if($_GET['gold']=="50") {$soll = "50";}
if($_GET['gold']=="100") {$soll = "90";}
if($_GET['gold']=="250") {$soll = "200";}
if($_GET['gold']=="500") {$soll = "400";}
if($_GET['gold']=="1000") {$soll = "750";}
$rest = $ist - $soll;
if($rest<"0") {
$error[] = 'Du hast nicht genug Punkte dafür!';
return false;
}
//zur db verbinden und möglicherweise fehler ausgeben
$db = @mysql_connect($config['mysql_host'], $config['mysql_user'], $config['mysql_pass']);
if (!$db) return $error[] = 'Database: '.mysql_error();
if (!@mysql_select_db($config['mysql_dbname'], $db)) return $error[] = 'Database: '.mysql_error();
//db-abfrage: existiert der char?
$query = "SELECT * FROM characters
WHERE name
= '".mysql_real_escape_string($_GET['char'])."'";
$res = mysql_query($query, $db);
if (!$res) return $error[] = 'Database: '.mysql_error();
if (mysql_num_rows($res) <= 0) return $error[] = 'Der Character existiert nicht!';
$guid = $res['guid'];
//db-eingabe: neuer kontostand
$query = "UPDATE vb\_user
SET money
= '".$rest."' WHERE username
= '".mysql_real_escape_string($vbulletin->userinfo['username'])."'";
$res = mysql_query($query, $db_forum);
if (!$res) return $error[] = 'Database_F: '.mysql_error();
//db-eingabe: ingame-post abschicken
$query = "INSERT INTO mailbox\_insert\_queue
(sender\_guid
,receiver\_guid
,subject
,body
,stationary
,money
,item\_id
,item\_stack
) VALUES ('".$guid."','".$guid."','Vote4Gold','Sie haben Gold per Vote4Gold bestellt!','61','".$_GET['gold']."','0','0');";
$res = mysql_query($query, $db);
if (!$res) return $error[] = 'Fehler'.$_GET['gold'].': Bitte einen Screenshot erstellen und an einen Admin wenden!<br>Database: '.mysql_error();
//erfolg ausgeben
$msg[] = 'Der Account <strong>'.htmlentities($_GET['login']).'</strong> wurde erstellt!';
//db-verbindung schließen
mysql_close($db);
return true;
}
{
addUser();
}
?>
<html>
<head>
<title>vote4gold - XenoW</title>
<style>
body, table {
font-family: Verdana;
font-size: 13px;
background-color: #444444;
color: #ffffff
}
input {
font-family: Tahoma;
text-align: center;
padding: 2px;
}
input.button {
font-family: Verdana;
font-size: 12px;
padding: 2px 25px;
}
div.error {
border: 2px solid #FF0000;
background-color: #f48987;
padding: 4px;
}
div.msg {
background-color: #9fd5b5;
padding: 4px;
border: 2px solid #00b159;
}
</style>
</head>
<body>
<!--
<u><h2 align="left"><font><center><img src=banner.jpg></center></h2></u>
-->
<?php
if(!empty($error)) {
echo '<div class="error">';
foreach($error as $text)
echo $text.'<br/>';
echo '</div>';
}
if(!empty($msg)) {
echo '<div class="msg">';
foreach($msg as $text)
echo $text.'<br/>';
echo '</div>';
exit('</body></html>');
}
?>
<center>
<br><br>
<center><form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="GET">
<table>
<tr>
<td></td>
<td>Goldmenge</td>
<td>Preis</td>
</tr>
<tr>
<td><input type="radio" name="gold" value="50" checked></td>
<td>50 Gold</td>
<td>50 Punkte</td>
</tr>
<td><input type="radio" name="gold" value="100"></td>
<td>100 Gold</td>
<td>90 Punkte</td>
</tr>
<td><input type="radio" name="gold" value="250"></td>
<td>250 Gold</td>
<td>200 Punkte</td>
</tr>
<td><input type="radio" name="gold" value="500"></td>
<td>500 Gold</td>
<td>400 Punkte</td>
</tr>
<td><input type="radio" name="gold" value="1000"></td>
<td>1000 Gold</td>
<td>750 Punkte</td>
</tr>
</table><br>
Ziel-Charakter:<br>
<input type="text" name="char" size="30" /><br>
<br>
<input type="image" src="/stuff/account/img/submit_on.gif" value="Submit" alt="Submit"><br>
<div align="center">
<p id="done" style="width: 220px; font-weight: bold; color: #29b503; font-family: tahoma, arial, sans; font-size: 13px;">
<br /></p>
</div>
</form>
</body>
</html>
[code]
achso... am GET liegts nicht! das hatte ich nur im nachhinein geändert, um zu sehen ob die Daten möglicherweise nicht übermittelt werden. Werden sie aber!
Ich bekomme als Ausgabe weder eine $msg noch ein $error bzw. deren Inhalte
MfG
kphaber321
Hi,
?? Fehler ??
Was soll denn passieren, was passiert nicht richtig und passiert stattdessen falsch bzw. überhaupt?
Ciao, Frank
Mahlzeit,
$error[] = 'Du hast nicht ausgewählt, wie viel Gold du bestellen möchtest!';
[...]
$error[] = 'Du hast vergessen einen Characternamen einzugeben!';
[...]
if($_GET['gold']=="50") {$soll = "50";}
if($_GET['gold']=="100") {$soll = "90";}
if($_GET['gold']=="250") {$soll = "200";}
if($_GET['gold']=="500") {$soll = "400";}
if($_GET['gold']=="1000") {$soll = "750";}
WoW-Chinafarmer? ;-)
MfG,
EKKi
PS: SCNR
Mahlzeit,
$error[] = 'Du hast nicht ausgewählt, wie viel Gold du bestellen möchtest!';
[...]
$error[] = 'Du hast vergessen einen Characternamen einzugeben!';
[...]
if($_GET['gold']=="50") {$soll = "50";}
if($_GET['gold']=="100") {$soll = "90";}
if($_GET['gold']=="250") {$soll = "200";}
if($_GET['gold']=="500") {$soll = "400";}
if($_GET['gold']=="1000") {$soll = "750";}WoW-Chinafarmer? ;-)
nen programm, dass für punkte aus dem forum gold zur datenbank adden soll...
er sollte schließlich entweder den inhalt von $error ausgeben (für den fall, dass ein fehler entsteht) oder $msg (für denn fall, dass es funktioniert). gibt aber weder das eine noch das andere aus und schreibt auch nichts in die datenbank!!!
MfG
kphaber321