BB und PHP - Problem mit Leerzeichen
Übersicht

![]() |
GinaBetreff: BB und PHP - Problem mit Leerzeichen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallochen,
hab da mal ein kleines Problemchen... ![]() Es geht mal wieder um eine Online-Highscoreliste... Ich sende aus dem Spiel heraus den Namen und den Score an mein php-script. Das funktioniert soweit auch einwandfrei. Außer wenn jemand auf die Idee kommt, in seinem Namen ein Leerzeichen zu verwenden. Wenn ich dann in BB mit dem Befehl: Code: [AUSKLAPPEN] WRITELINE tcp,"GET http://www.jk-spiele.de/meinscript.php?name="+name$+"&score="+score
das ganze sende und in der Variablen name$="weiß nicht" drin steht, tut er einfach gar nix. Gebe ich die Zeile manuell im Browser mit Leerzeichen ein, so wird automatisch das Leerzeichen durch ein % ersetzt und der Name wird ganz brav eingetragen. Nun meine Frage: Muss ich selbst den Namen nach Leerzeichen durchsuchen und das % dafür einsetzen in BB oder gibt es einen Trick, der das automatisch macht? Vielen Dank, Gina. PS: Achso, Name und Score werden bei mir in die MySQL-Datenbank eingetragen, nicht in eine Textdatei, falls das eine Rolle spielt. |
||
www.jk-spiele.de |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich kenne mich mit der Übermittlung von Daten an PHP und oder sonstige Spielereien nicht aus, aber mittels
Code: [AUSKLAPPEN] Name$=Replace$(name$," ","%")
sollte das Ganze erledigt sein. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
David |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Um ganz sicher zu gehen müsstest du die gesammte URL codieren. Leerzeichen durch ein %20 ersetzen usw... Für genauere Informationen hier nachschauen. Edit: In deinem Fall sollte aber ein ersetzen der Leerzeichen durch ein "%20" schon reichen. grüße |
||
http://bl4ckd0g.funpic.de |
![]() |
Gina |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ahh, tausend Dank. Mit %20 klappt es. Wenn ich nur % einsetze, trägt er doch glatt "weiß%nicht" als Name ein... ![]() Vielen Dank, Gina. PS: Wenn mir jetzt noch jemand verraten könnte, wie ich eventuelle Fehler auswerten könnte, also anzeigen, dass ein Fehler vorlag und das Ganze nicht eingetragen wurde, wäre das supi. Ich habe keine Ahnung, was die Datenbank antwortet in solch einem Fall... |
||
www.jk-spiele.de |
David |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Du kannst in PHP mit dem Befehl "mysql_errno()" den Fehlercode herausfinden, vorrausgesetzt du verwendest eine mySQL Datenbank. Im Falle einen Fehlers kannst du mit "echo" einen entsprechenden Text ausgeben, der dann in deinem TCP-Stream in BB steht. Hier ist eine Liste der mySQL Fehlercodes. grüße |
||
http://bl4ckd0g.funpic.de |
morszeck |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Endweder:
name$ = chr$(34) + name$ + chr$(34) oder name$ = relpace$(name$, " ", "_") Also, wen man schon PHP kann, dann sollte man schon auf solch einfache Ideen kommen können... |
||
WinXpProf&SP2, B3D V1.88, B+ V1.40, BMax101Beta, AMD TB1.4GHz, DDR266/768MB, GeForce3@64MB |
David |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Gina hat Folgendes geschrieben: Mit %20 klappt es.
Wenn ich zitieren darf... :S grüße |
||
http://bl4ckd0g.funpic.de |
![]() |
bruZard |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nimm diese Funktion und jage jeden String vor dem versenden da durch, dann klappts auch mit dem URLEncode ![]() Code: [AUSKLAPPEN] ;------------------------------------------------- ; Zeichen durch HTTP Codes ersetzen ;------------------------------------------------- Function ConvertString$(in$) in$=Replace(in$," " , "%20") in$=Replace(in$,EOL$ , "%0D") in$=Replace(in$,">" , "%3E") in$=Replace(in$,"%" , "%25") in$=Replace(in$,"}" , "%7D") in$=Replace(in$,"\" , "%5C") in$=Replace(in$,"~" , "%7E") in$=Replace(in$,"]" , "%5D") in$=Replace(in$,";" , "%3B") in$=Replace(in$,"?" , "%3F") in$=Replace(in$,"@" , "%40") in$=Replace(in$,"&" , "%26") in$=Replace(in$,"<" , "%3C") in$=Replace(in$,"#" , "%23") in$=Replace(in$,"{" , "%7B") in$=Replace(in$,"|" , "%7C") in$=Replace(in$,"^" , "%5E") in$=Replace(in$,"[" , "%5B") in$=Replace(in$,"`" , "%60") in$=Replace(in$,"/" , "%2F") in$=Replace(in$,":" , "%3A") in$=Replace(in$,"=" , "%3D") in$=Replace(in$,"$" , "%24") in$=Replace(in$,"Ä" , "%C4") in$=Replace(in$,"Ö" , "%D6") in$=Replace(in$,"Ü" , "%DC") in$=Replace(in$,"ä" , "%E4") in$=Replace(in$,"ö" , "%F6") in$=Replace(in$,"ü" , "%FC") in$=Replace(in$,"ß" , "%DF") Return in$ End Function ; EOL$ muss durch Global EOL$=Chr(13)+Chr(10) initialisiert sein! |
||
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32
User posted image |
![]() |
Gina |
![]() Antworten mit Zitat ![]() |
---|---|---|
Uii, vielen Dank. Dann kann ja nix mehr passieren.
@husky Wer sagt denn, dass ich php kann... ![]() Ich habe mir ganz alleine mittels php-Handbuch und meinen bescheidenen MySQL-Kenntnissen die Scripte zusammengebastelt und bin mächtig stolz auf mich... ![]() Code: [AUSKLAPPEN] mysql_query($insertdata)
or die (include 'fehler.php'); nicht abgedeckt sind... Nochmals vielen Dank, Gina. |
||
www.jk-spiele.de |
![]() |
Gina |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
habe da leider noch ein kleines Problem... ![]() Ich übertrage also Daten von BB an mein php-Script. Kein Problem. Die Daten werden in der MySQL-Datenbank gespeichert. Auch kein Problem. Dann werden sie im php-script verarbeitet und nun habe ich in einer Variablen einen Wert. Soweit auch kein Problem. Aber wie bekomme ich diesen Wert zurück ins Spiel? Wenn ich ihn per echo ausgebe und mit READLINE auslese, kommt noch so viel anderes Zeug mit. Ich will doch nur den einen Wert haben. Gibt es irgendeinen Befehl in BB, womit ich den Wert direkt auslesen kann? Sozusagen eine Umkehrung von WRITELINE + GET? Oder geht es nur über den Umweg mit speichern in einer Textdatei auf dem Server und dann diese auslesen? Sorry, aber alleine komme ich da einfach nicht weiter... ![]() Vielen Dank, Gina. |
||
www.jk-spiele.de |
David |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Das, was da alles mitkommt ist eben der HTTP Header und der muss da auch bei sein! Du kannst den Header aber ganz leicht rausfiltern indem du die erste Leerzeile in den Daten suchst. Danach kommen dann deine Daten! grüße |
||
http://bl4ckd0g.funpic.de |
![]() |
Gina |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dann geht es also nicht anders...?
Ok, dann werd ich versuchen es so auszugeben, dass ich die Zeile direkt ansprechen kann. Vielen Dank. |
||
www.jk-spiele.de |
David |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Nein, geht nich anders, da du mit dem Webserver auf Protokollebene kommunizierst musst du leider auch mit dem Kommandos leben. Wenn man ganz genau wäre müsstest du, bevor du die Benutzerdaten an den Server sendest, auch einen HTTP Header schicken! ![]() grüße |
||
http://bl4ckd0g.funpic.de |
![]() |
Gina |
![]() Antworten mit Zitat ![]() |
---|---|---|
So...
hab jetzt meinen Wert beim echo in einen hübschen Satz gepackt. Im Spiel lese ich dann alles Zeile für Zeile ein und vergleiche mit INSTR, ob das mein Satz ist. Wenn ja, gebe ich ihn aus. Klappt supi. Vielen lieben Dank, Gina. |
||
www.jk-spiele.de |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group