Dynamische Signatur [Fehler]

01/25/2014 17:05 MajorTypo#1
Liebe Community.
Habe folgendes Problem...
Die Dynamische Signatur liest die Datenbank & auch den Username aus.
Doch sie wird nicht in die Signatur eingetragen...
Es geht um eine WBB Foren Datenbank um den Username eintragen zu lassen.

Hoffe jemand kann weiter helfen:

Code:
$username="*****"; 
$password="*****"; 
$database="*****"; 
$host="*****"; 

$player_name=$_GET['player_name']; 
 

mysql_connect($host,$username,$password); 
@mysql_select_db($database) or die( "Konnte den Datenbank Namen nicht finden. Bitte versuche es erneut.");  
 

$player_name = stripslashes($player_name);
$player_name = mysql_real_escape_string($player_name);
 
 
 
$query="SELECT * FROM wcf1_user WHERE username='$player_name'";
$result=mysql_query($query);
$i=mysql_num_rows($result); 
 
 
if ($i == 1)
{
         
    $player_name=mysql_result($result,0,"username");
 
 

    header('Content-Type: image/png;');
    $im = @imagecreatefrompng('signature.png') or die("Das Signatur Bild wurde nicht geladen. Versuche es erneut."); 
    $text_color = imagecolorallocate($im, 255,255,255); 
    $text_username = "$username";
    $font = 'arial.ttf';
    imagettftext($im, 16, 0, 50, 50, $text_color, $font, $text_username);
    imagepng($im);
    imagedestroy($im);
} else echo('Der Name konnte nicht gefunden werden. Versuche es erneut.');  
 
mysql_close();
 
?>
01/25/2014 18:08 johhnyxD#2
wo liegt genau dein problem?
bekommst du eine fehlermeldung von php?
01/25/2014 19:52 checkhaa#3
Hallo,

ich würde erst einmal das alte Mysql gar nicht mehr benutzen, greife besser zu MYSQLi oder PDO. Es dauert zwar noch lange aber ab PHP 6.0 soll das alte MYSQL nicht mehr funktionieren.
01/25/2014 20:21 MajorTypo#4
Quote:
Originally Posted by johhnyxD View Post
wo liegt genau dein problem?
bekommst du eine fehlermeldung von php?
Genau das weiß ich nicht genau.
Er sollte eigentlich der Eintrag des Nutzernamen auf der Signatur anzeigen lassen, dass jedoch wird nicht gemacht...

Daher frage ich ja woran es liegt...
01/25/2014 21:45 NicoSmtz#5
Lass dir mal einen MySQL Error ausgeben, irgendwie sind in deiner Anfrage die Anführungszeichen vertauscht..
01/25/2014 22:20 johhnyxD#6
ich hab den code mal ausprobiert dabei ist mir aufgefallen, dass du am ende $username zu $text_username zuweist
in dieser variable steht allerdings der mysql benutzername
ist das dein problem?
01/25/2014 22:22 MajorTypo#7
Quote:
Originally Posted by johhnyxD View Post
ich hab den code mal ausprobiert dabei ist mir aufgefallen, dass du am ende $username zu $text_username zuweist
in dieser variable steht allerdings der mysql benutzername
ist das dein problem?
Code:
 $text_username = "$username";

    imagettftext($im, 16, 0, 50, 50, $text_color, $font, $text_username);
Nein der $text_username wird ja als "text" für die Variable des $username definiert.
01/25/2014 22:24 johhnyxD#8
da steht aber der username von der mysql datenbank drin und nicht dein username den du aus der datenbank holst
01/25/2014 22:32 MajorTypo#9
Quote:
Originally Posted by johhnyxD View Post
da steht aber der username von der mysql datenbank drin und nicht dein username den du aus der datenbank holst
Doch klar. Die spalte heißt "username".
Auch wenn ich den Datenbank Username als "benutzernamen" definiere.
Das selbe Problem. Er trägt es eben nicht auf der Signatur ein.
Jedoch müsste es so klappen, da es mit einer anderen Datenbank geklappt hat...
Jetzt aber bei WBB nicht, wieso?
01/25/2014 22:35 johhnyxD#10
um es nochmal zu erklären du definierst ganz am anfang im skript $username="****"
in der if abfrage sagst du dann $player_name=mysql_result($result,0,"username") damit weist $player_name den ausgelesenen benutzernamen aus der mysql tabelle zu
allerdings sagst du dann weiter unten $text_username=$username obwohl der name den du haben willst in $player_name steht und du $username NUR ganz oben im skript definiert hast und nirgendwo anders überschreibst
01/25/2014 22:51 MajorTypo#11
Quote:
Originally Posted by johhnyxD View Post
um es nochmal zu erklären du definierst ganz am anfang im skript $username="****"
in der if abfrage sagst du dann $player_name=mysql_result($result,0,"username") damit weist $player_name den ausgelesenen benutzernamen aus der mysql tabelle zu
allerdings sagst du dann weiter unten $text_username=$username obwohl der name den du haben willst in $player_name steht und du $username NUR ganz oben im skript definiert hast und nirgendwo anders überschreibst

Code:
$query="SELECT * FROM wcf1_user WHERE username='$player_name'";
:rolleyes: Da stehts.
01/25/2014 22:53 johhnyxD#12
ja, da wählst du alle werte (*) aus wcf1_user wobei username gleich dem $player_name sein muss
trotzdem musst du unten $player_name statt $username schreiben, weil in $username immer noch der mysql benutzername drinsteht
01/25/2014 23:03 MajorTypo#13
Quote:
Originally Posted by johhnyxD View Post
ja, da wählst du alle werte (*) aus wcf1_user wobei username gleich dem $player_name sein muss
trotzdem musst du unten $player_name statt $username schreiben, weil in $username immer noch der mysql benutzername drinsteht
Die Spalte lautet username, die soll er ja verwenden die Spalte player_name gibt es garnicht.
Das ist einfach nur die Variable, die der Benutzer selber eingibt um von seinem Namen der in der Datenbank vorhanden ist eine Signatur zu erstellen.
01/25/2014 23:22 johhnyxD#14
"SELECT * FROM wcf1_user WHERE username='$player_name'";
das rot markierte ist KEINE zuweisung!
du sagst damit, dass du nur die einträge haben willst, bei denen die spalte "username" der variablen $player_name entspricht
mit $player_name=mysql_result($result,0,"username"); schreibst du dann "username" (den du aus der datenbank gelesen hast) in die variable $player_name rein
01/26/2014 21:44 MajorTypo#15
Quote:
Originally Posted by johhnyxD View Post
"SELECT * FROM wcf1_user WHERE username='$player_name'";
das rot markierte ist KEINE zuweisung!
du sagst damit, dass du nur die einträge haben willst, bei denen die spalte "username" der variablen $player_name entspricht
mit $player_name=mysql_result($result,0,"username"); schreibst du dann "username" (den du aus der datenbank gelesen hast) in die variable $player_name rein
Und trotzdem wird nichts auf die Signatur eingetragen?