Hallo liebe Towner
Folgendes Problem:
Der Badgecreator funktioniert eigentlich soweit. Man kann sein Badge erstellen, es wird auch in der DB eingetragen und im Client bekommt man es auch ALLERDINGS ohne Bild. Der Grund dafür ist, dass das Badge nicht gespeichert wird.
Das ist der komplette Code für den Badgecreator:
<?php
function protect($string) {
$string = strip_tags($string);
return $string;
}
if (isset($_GET['token'])) {
$token = protect($_COOKIE['token']);
$usercheck = $mysqli->query("SELECT * FROM users WHERE auth_ticket = '" . $token . "' AND rank > 5 LIMIT 1");
if($usercheck->num_rows > 0) {
$user = $usercheck->fetch_object();
$zutritt = 'true';
} else {
$zutritt = 'false';
}
} else {
$zutritt = 'false';
}
function UserIDDB($id, $string) {
global $mysqli;
$id = protect($id);
$string = protect($string);
$sql = $mysqli->query("SELECT * FROM users WHERE id = '" . $id . "' ");
if ($sql->num_rows > 0) {
$row = $sql->fetch_object();
return $row->$string;
}
}
if(isset($_POST['add']))
{
$id = protect($_POST['id']);
$check = $mysqli->query("SELECT * FROM user_ownbadge WHERE id = '".$id."' ");
$row = $check->fetch_object();
$badge_id = 'UBAD'.$id;
$mysqli->query("UPDATE hp_mcp SET status = '1' WHERE extra_data = '".$id."' ");
$mysqli->query("UPDATE user_ownbadge SET status = '2', badge_id = '".$badge_id."' WHERE id = '".$id."' ");
file_put_contents('swf.habbome.de/swf/c_images/album1584/'.$badge_id.'.gif', base64_decode($row->badge_image));
$mysqli->query("INSERT INTO user_badges (user_id, badge_id, badge_slot) VALUES ('".$row->user_id."', '".$badge_id."', '0') ");
$mysqli->query("INSERT INTO hp_useralert (user_id, text, sender_id) VALUES ('".$row->user_id."', 'Dein Badge wurde erfolgreich bearbeitet und aktiviert!', '".$user->id."') ");
}
if(isset($_POST['remove']))
{
$id = protect($_POST['id']);
$mysqli->query("UPDATE hp_mcp SET status = '1' WHERE extra_data = '".$id."' ");
$mysqli->query("UPDATE user_ownbadge SET status = '3' WHERE id = '".$id."' ");
$getuserrow = $mysqli->query("SELECT * FROM user_ownbadge WHERE id = '".$id."' ");
if($getuserrow->num_rows > 0)
{
$ubad = $getuserrow->fetch_object();
$mysqli->query("UPDATE users SET credits = credits+5000, vip_points = vip_points+10 WHERE id = '".$ubad->user_id."' ");
}
}
?>
<?php if($zutritt == 'true'){ ?>
<!DOCTYPE>
<html>
<head>
<title>Client Host</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<style>
@import url(https://fonts.googleapis.com/css?family=Ubuntu:400,500,300,700);
@import url(https://fonts.googleapis.com/css?family=Open+Sans:400,300,600,700,800);
body {
font-family: Ubuntu;
font-size: 14px;
}
.submit {
border-radius: 3px;
border: 0px;
cursor: pointer;
text-align: center;
height: 30px;
background: #2AA12C;
border-bottom: 2px solid #218123;
color: #FFF;
width: 150px;
}
.submit.red {
background: #B62B1C;
border-bottom: 2px solid #912216;
}
a {
color: #FFF;
text-decoration: none;
}
.input {
width: 100%;
height: 35px;
padding-left: 10px;
}
</style>
</head>
<body>
<?php
$sql = $mysqli->query("SELECT * FROM user_ownbadge WHERE status = '0' ");
if ($sql->num_rows > 0) {
?>
<div id="column" style="width: 1078px;">
<table style="width: 100%;">
<tr>
<td width="60px"></td>
<td width="150px"><b>Name</b></td>
<td><b>Beschreibung</b></td>
<td><b>Datum</b></td>
<td><b>Ersteller</b></td>
<td><b>Aktionen</b></td>
</tr>
<?php while ($row = $sql->fetch_object()) { ?>
<tr>
<td><?php if($row->status == '0'){ ?><img src="data:image/gif;base64,<?php echo $row->badge_image; ?>"><?php } else { ?><?php } ?></td>
<td style="font-size: 13px;"><?php echo utf8_encode(fixOutgoingUmlaute($row->badge_title)); ?></td>
<td style="font-size: 13px;"><?php echo utf8_encode(fixOutgoingUmlaute($row->badge_desc)); ?></td>
<td style="font-size: 13px;"><?php echo date('d.m.Y H:i', $row->timestamp); ?> Uhr</td>
<td style="font-size: 13px;"><?php echo UserIDDB($row->user_id, 'username'); ?></td>
<td style="font-size: 13px;">
<form action="" method="post">
<input type="hidden" name="id" value="<?php echo $row->id; ?>">
<input type="submit" name="add" class="submit green" value="Badge akzeptieren">
<input type="submit" name="remove" class="submit red" value="Badge ablehnen">
</form>
</td>
</tr>
<?php } ?>
</table>
</div>
<?php } else { ?>
Derzeit gibt es keine neuen Badgeanmeldungen!
<?php } ?>
</body>
</html>
<?php } else { ?>
Kein Zutritt
<?php } ?>
Alles anzeigen
Ich denke (weiss es nicht), dass das Problem an dieser Codezeile liegt:
file_put_contents('swf.habbome.de/swf/c_images/album1584/'.$badge_id.'.gif', base64_decode($row->badge_image));
Hier noch einfach im sicher zu gehen der ganze Abschnitt indem diese Codezeile sich befindet:
if(isset($_POST['add']))
{
$id = protect($_POST['id']);
$check = $mysqli->query("SELECT * FROM user_ownbadge WHERE id = '".$id."' ");
$row = $check->fetch_object();
$badge_id = 'UBAD'.$id;
$mysqli->query("UPDATE hp_mcp SET status = '1' WHERE extra_data = '".$id."' ");
$mysqli->query("UPDATE user_ownbadge SET status = '2', badge_id = '".$badge_id."' WHERE id = '".$id."' ");
file_put_contents('swf.habbome.de/swf/c_images/album1584/'.$badge_id.'.gif', base64_decode($row->badge_image));
$mysqli->query("INSERT INTO user_badges (user_id, badge_id, badge_slot) VALUES ('".$row->user_id."', '".$badge_id."', '0') ");
$mysqli->query("INSERT INTO hp_useralert (user_id, text, sender_id) VALUES ('".$row->user_id."', 'Dein Badge wurde erfolgreich bearbeitet und aktiviert!', '".$user->id."') ");
}
Alles anzeigen
Zusatzinfos: Ich benutze das CentenaryCMS das heisst, das man für die SWF eine Subdomain erstellen musste.
Die Subdomain hier lautet swf.habbome.de.
Der Pfad zu den Badges ist folgender: wwwroot/swf/c_images/album1584
Ich habe es bereits mit mehreren Varianten (im Code) versucht.
./c_images/album1584/
./swf/c_images/album1584/
swf.habbome.de/swf/c_images/album1584/
Kein Pfad davon hat es geschafft, dass sich das Badge darin speichert.
Könnte mir da bitte jemand helfen?