NE4Y
Mitglied
Hey,
ich habe ein Problem.
Habe heute ein Script für eine dnamische Signatur geschrieben:
Dabei sieht die signatur.php so aus:
und die signature_create.php so
So wenn ich das alles lokal mache, funktioniert alles super, wenn ich es dann auf meinen Webspace hochlade, $normlink anpasse und dann aufrufe, funktioniert es nichtmehr.
Die GD Lib ist installiert, folgendes Script funktioniert:
Was mir aufgefallen ist, wenn ich das Script hochlade ( also das was funktioniert ) , dann im ftp es nur öffne, speichere und wieder hochlad, dann geht es nicht mehr ( meine Vermutung, textdateien haben ja ne ISO Codierung, liegt es vlt. daran ? )
Weiss momentan nicht weiter, wäre froh wenn mir jemand helfen könnte :)
MFG
EDIT:
wenn ich es im IE aufruf krieg ich folgende Fehlermeldung:
b>Warning</b>: mysql_real_escape_string() [<a href='function.mysql-real-escape-string'>function.mysql-real-escape-string</a>]: Access denied for user 'web578'@'localhost' (using password: NO) in <b>/var/www/web578/html/norm mt2gs/pages/signatur_create.php</b> on line <b>7</b><br /><br /><b>Warning</b>: mysql_real_escape_string() [<a href='function.mysql-real-escape-string'>function.mysql-real-escape-string</a>]: A link to the server could not be established in <b>/var/www/web578/html/norm mt2gs/pages/signatur_create.php</b> on line <b>7</b><br />Aber wieso klappt es dann local ?
ich habe ein Problem.
Habe heute ein Script für eine dnamische Signatur geschrieben:
Dabei sieht die signatur.php so aus:
PHP:
<h2>Signaturengenerator by NE4Y</h2>
<?php
$normlink = "http://127.0.0.1/norm mt2gs";
if(isset($_SESSION['user_id'])) {
if(!isset($_POST['abschicken'])) {
$getChars = mysql_query("SELECT name, id FROM player.player WHERE account_id='".$_SESSION['user_id']."'");
?>
<form action="index.php?s=signatur" method="post">
<table>
<tr>
<th><img src="img/layout/sig/1.png" alt="1" /></th>
<th><img src="img/layout/sig/2.png" alt="1" /></th>
</tr>
<tr>
<td><input type="radio" value="1" name="bild" /></td>
<td><input type="radio" value="2" name="bild" /></td>
</tr>
</table>
<p>Wähle deinen Charakter: <select name="charakter">
<?php
while($row = mysql_fetch_assoc($getChars)) {
echo'<option value='.$row['id'].'>'.$row['name'].'</option>';
}
?>
</select>
</p>
<input type="submit" name="abschicken" value="auswählen" />
</form>
<?php
}
else {
echo'<img src="'.$normlink.'/pages/signatur_create.php?id='.$_POST['charakter'].'&pic='.$_POST['bild'].'" alt="" />';
echo'<p>Der Direktlink zu ihrer Signatur: <a href="'.$normlink.'/pages/signatur_create.php?id='.$_POST['charakter'].'&pic='.$_POST['bild'].'">'.$normlink.'/pages/signatur_create.php?id='.$_POST['charakter'].'&pic='.$_POST['bild'].'</a></p>';
}
}
else {
echo'<p>Sie sind nicht eingeloggt.</p>';
}
?>
und die signature_create.php so
PHP:
<?php
Header("Cache-Control: no-cache");
Header("Content-Type: image/png");
if(ctype_digit($_GET['id'])) {
$id = mysql_real_escape_string($_GET['id']);
$number = $_GET['pic'];
if($number == 2) {
$left = 180;
$right = 280;
}
else {
$left = 20;
$right = 100;
}
$bg = imagecreatefrompng("../img/layout/sig/$number.png");
$schrift = ImageColorAllocate($bg, 255, 255, 255);
ImageString($bg, 2, $left, 25, "Name:", $schrift);
ImageString($bg, 2, $left, 45, "Level:", $schrift);
ImageString($bg, 2, $left, 65, "Erfahrung:", $schrift);
ImageString($bg, 2, $left, 85, "Lehre:", $schrift);
ImageString($bg, 2, $left, 105, "Reich:", $schrift);
ImageString($bg, 1, 100, 135, "Grafik by Aza", $schrift);
ImageString($bg, 1, 10, 135, "Script by NE4Y - ", $schrift);
$db = mysql_connect("ip", "root", "pw");
$getStuff = mysql_fetch_assoc(mysql_query("SELECT level, account_id, name, skill_group, job, exp, job FROM player.player WHERE id='$id' LIMIT 1"));
$getReich = mysql_fetch_assoc(mysql_query("SELECT empire FROM account.account WHERE id='".$getStuff['account_id']."'"));
if ($getStuff['skill_group'] == 0)
$getStuff['skill_group'] = "Keine Lehre";
else {
if ($getStuff['job'] == 0 || $getStuff['job'] == 4) {
if ($getStuff['skill_group'] == 1)
$getStuff['skill_group'] = "Koerper-Kampf";
elseif ($getStuff['skill_group'] == 2)
$getStuff['skill_group'] = "Mental-Kampf";
} elseif ($getStuff['job'] == 1 || $getStuff['job'] == 5) {
if ($getStuff['skill_group'] == 1)
$getStuff['skill_group'] = "Nahkampf";
elseif ($getStuff['skill_group'] == 2)
$getStuff['skill_group'] = "Fernampf";
} elseif ($getStuff['job'] == 2 || $getStuff['job'] == 6) {
if ($getStuff['skill_group'] == 2)
$getStuff['skill_group'] = "Schwarze Magie";
elseif ($getStuff['skill_group'] == 1)
$getStuff['skill_group'] = "Magische Waffen";
} elseif ($getStuff['job'] == 3 || $getStuff['job'] == 7) {
if ($getStuff['skill_group'] == 2)
$getStuff['skill_group'] = "Heilung";
elseif ($getStuff['skill_group'] == 1)
$getStuff['skill_group'] = "Drachenmacht";
}
}
switch($getReich['empire']) {
case 1:
$getReich['empire'] = "Rot";
break;
case 2:
$getReich['empire'] = "Gelb";
break;
case 3:
$getReich['empire'] = "Blau";
break;
default:
$getReich['empire'] = "Unbekannt";
break;
}
ImageString($bg, 2, $right, 25, "".$getStuff['name']."", $schrift);
ImageString($bg, 2, $right, 45, "".$getStuff['level']."", $schrift);
ImageString($bg, 2, $right, 65, "".$getStuff['exp']."", $schrift);
ImageString($bg, 2, $right, 85, "".$getStuff['skill_group']."", $schrift);
ImageString($bg, 2, $right, 105, "".$getReich['empire']."", $schrift);
ImagePNG($bg);
ImageDestroy($bg);
}
?>
So wenn ich das alles lokal mache, funktioniert alles super, wenn ich es dann auf meinen Webspace hochlade, $normlink anpasse und dann aufrufe, funktioniert es nichtmehr.
Die GD Lib ist installiert, folgendes Script funktioniert:
PHP:
<?php
Header("Cache-Control: no-cache");
Header("Content-Type: image/png");
// Hier wird der Header gesendet, der später die Bilder "rendert" ausser png kann auch jpeg dastehen
$width = 500; // Später die Breite des Rechtecks
$height = 90; // Später die Höhe des Rechtecks
$img = imagecreatefrompng("img.png"); // Bild für Hintergrund
$schwarz = ImageColorAllocate($img, 0, 0, 0);
$weiß = ImageColorAllocate($img, 255, 255, 255); //WEIß
// Die drei Nullen bestehen aus den RGB-Parametern. 255, 0, 0 wäre z.B. rot. ($img muss am Anfang stehen)
ImageFill($img, 0, 0, $schwarz); # Hier wird mit ImageFill() das Bild gefüllt an den Koordinaten 0 und 0 mit der Variable $schwarz
// Tabellen für die Standarteinträge
ImageString($img, 2, 20, 45, "Name:", $weiß);
ImageString($img, 2, 20, 65, "Alter:", $weiß);
$ausgabe['name'] = "NE4Y";
$ausgabe['alter'] = "16";
// Tabellen für die dynamischen Einträge
ImageString($img, 2, 100, 45, "".$ausgabe['name']."", $weiß);
ImageString($img, 2, 100, 65, "".$ausgabe['alter']."", $weiß);
// Legende:
# Die erste Zahl steht für die Schrifthöhe (geht nur bis zur 5).
# Die zweite Zahl bzw. 250 steht für die Position von Links.
# Die dritte Zahl steht für die Postion von Oben.
# Der Text, ist der, der später im Bild erscheinen soll.
ImagePNG($img); # Hier wird das Bild PNG zugewiesen
ImageDestroy($img); # Hier wird der Speicherplatz für andere Sachen geereinigt
?>
Was mir aufgefallen ist, wenn ich das Script hochlade ( also das was funktioniert ) , dann im ftp es nur öffne, speichere und wieder hochlad, dann geht es nicht mehr ( meine Vermutung, textdateien haben ja ne ISO Codierung, liegt es vlt. daran ? )
Weiss momentan nicht weiter, wäre froh wenn mir jemand helfen könnte :)
MFG
EDIT:
wenn ich es im IE aufruf krieg ich folgende Fehlermeldung:
b>Warning</b>: mysql_real_escape_string() [<a href='function.mysql-real-escape-string'>function.mysql-real-escape-string</a>]: Access denied for user 'web578'@'localhost' (using password: NO) in <b>/var/www/web578/html/norm mt2gs/pages/signatur_create.php</b> on line <b>7</b><br /><br /><b>Warning</b>: mysql_real_escape_string() [<a href='function.mysql-real-escape-string'>function.mysql-real-escape-string</a>]: A link to the server could not be established in <b>/var/www/web578/html/norm mt2gs/pages/signatur_create.php</b> on line <b>7</b><br />Aber wieso klappt es dann local ?
Zuletzt bearbeitet: