• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Dynamische Signatur - local geht alles, nur aufm Webspace nicht

NE4Y

Mitglied
Hey,

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&auml;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&auml;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:
Werbung:
Werbung:
Um auf den Punkt zu kommen: Die Funktion benötigt eine offene MySQL Datenbank Verbindung und wird für Usereingaben vor dem Eintragen escaped. Da die Funktion für die User Eingaben in die Datenbank gemacht wurde, wird wohl auch eine Verbindung benötigt.
 
Zurück
Oben