HighScore - "Square7" klappt nicht!
Übersicht

![]() |
N0X |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also mein PHP-Script:
Code: [AUSKLAPPEN] <?php
//MySQL Connection Data $SQL_User = "tibario"; //Benutzername $SQL_Pass = "***"; //Passwort $SQL_Host = "localhost"; //SQL Host $SQL_DaBa = "tibario"; //Datenbank auf die zugegriffen wird //MySQL Connection mysql_connect($SQL_Host,$SQL_User,$SQL_Pass) OR die(mysql_error()); mysql_selectdb($SQL_DaBa) OR die(mysql_error()); //Der Rest des Codes hier drunter mysql_query("CREATE TABLE IF NOT EXISTS tibario ( Name TEXT, Punkte INT)") or die(mysql_error()); //Getting the Data $OHS_Action = $_GET['Action']; $OHS_Spieler = $_GET['Name']; $OHS_Punkte = $_GET['Punkte']; switch($OHS_Action) { case "add": //Add Entry mysql_query("INSERT INTO tibario VALUES (".$OHS_Spieler.",".$OHS_Punkte.")") or die(mysql_error()); break; case "rem": //Remove Entry mysql_query("DELETE FROM tibario WHERE Name = '".$OHS_Spieler."' AND Punkte = '".$OHS_Punkte."'") or die(mysql_error()); break; case "red": //Read Highscore $result = mysql_query("SELECT Name, Punkte FROM tibario SORT BY Punkte DESC"); //ASC = Aufwärts sortiert, DESC = Abwärts sortiert $CurrentPlace = 1; if (mysql_num_rows($result)) { while ($row = mysql_fetch_assoc($result)) { //Ausgabecode der Liste echo $CurrentPlace+"\r\n"; echo $row['Name']+"\r\n"; echo $row['Punkte']+"\r\n"; $CurrentPlace += 1; } } break; } ?> //EDIT: tibario_OH's hab ich keine mehr drin. //EDIT2: Hier der gesamte BB-Code: Code: [AUSKLAPPEN] Global HTTPServerAdress$ = "tibario.square7.ch"
Global HTTPServerFile$ = "/highscore.php";/users/tibario/www/ Global OHS_TimeOut = 1000,Name$,Punkte Type OHS_Highscores Field Place Field Name$ Field Score End Type While Not KeyHit(1) If KeyHit(59) Then OHS_AddHighscore$("Hannes",120) If KeyHit(60) Then OHS_GetHighscore$() EndIf For o.OHS_Highscores = Each OHS_Highscores Print o\Place+" "+o\Name$+": "+o\Score Next Wend End Function OHS_AddHighscore$(Name$, Punkte) Local TCP,ExitCode$,StartMS TCP = OpenTCPStream(HTTPServerAdress, 80) ;HTTP GET WriteLine TCP, "GET "+HTTPServerFile+"?action=add&name="+Name$+"&Punkte="+Punkte+" HTTP/1.1" WriteLine TCP, "Host: "+HTTPServerAdress$ WriteLine TCP, "Connection: Close" WriteLine TCP, "" StartMS = MilliSecs() While Eof(TCP) If MilliSecs()-StartMS > OHS_TimeOut Then Exit Delay 25 Wend ExitCode$ = ReadLine(TCP) While Not Eof(TCP) DebugLog ReadLine(TCP) Wend Return ExitCode End Function Function OHS_RemHighscore$(Name$, Punkte) Local TCP,ExitCode$,StartMS TCP = OpenTCPStream(HTTPServerAdress, 80) ;HTTP GET WriteLine TCP, "GET "+HTTPServerFile+"?action=rem&name="+Name+"&Punkte="+Punkte+" HTTP/1.1" ;WriteLine TCP, "Connection: Close" WriteLine TCP, "Host: "+HTTPServerAdress$ WriteLine TCP, "Connection: Close" WriteLine TCP, "" StartMS = MilliSecs() While Eof(TCP) If MilliSecs()-StartMS > OHS_TimeOut Then Exit Delay 25 Wend ExitCode$ = ReadLine(TCP) While Not Eof(TCP) DebugLog ReadLine(TCP) Wend Return ExitCode End Function Function OHS_GetHighscore$() Local TCP,ExitCode$,StartMS TCP = OpenTCPStream(HTTPServerAdress, 80) ;HTTP GET WriteLine TCP, "GET "+HTTPServerFile+"?action=red HTTP/1.1" WriteLine TCP, "Host: "+HTTPServerAdress$ WriteLine TCP, "Connection: Close" WriteLine TCP, "" StartMS = MilliSecs() While Eof(TCP) If MilliSecs()-StartMS > OHS_TimeOut Then Exit Delay 25 Wend ExitCode$ = ReadLine(TCP) Repeat Local Ln$ = ReadLine(TCP) DebugLog Ln$ If Ln$ = "" While Not Eof(TCP) Local OHSE.OHS_Highscores = New OHS_Highscores OHSE\Place = ReadLine(TCP) OHSE\Name = ReadLine(TCP) OHSE\Score = ReadLine(TCP) Wend EndIf Until Eof(TCP) Return ExitCode End Function |
||
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5% |
![]() |
Xaymarehemals "Cgamer" |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] (".$OHS_Spieler.",".$OHS_Punkte.")") or die(mysql_error());
Hab ich das in meinem Tutorial echt so stehen? Oo Code: [AUSKLAPPEN] ('".$OHS_Spieler."','".$OHS_Punkte."')") or die(mysql_error());
fix'd. Sollte jetzt gehen Edit: Ja ich habs tatsächlich ohne ' da stehen ![]() |
||
Warbseite |
- Zuletzt bearbeitet von Xaymar am Sa, März 27, 2010 0:36, insgesamt einmal bearbeitet
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oh, scheint an PHPs Case-Sensitivity zu liegen: Benenne die Parameter Action, Name und Punkte auch wirklich genau so (beim Aufruf aus BB heraus), wie du sie später aus dem assoziativen Array ($_GET) ausliest.
Und dann musst du beim Speichern (INSERT INTO) nach dem Tabellennamen noch die Namen der Felder, die einen Wert erhalten sollen, in Klammern aufführen. Und bei mysql_num_rows() stimmen die Parameter nicht. Weitere Auskünfte gibt bestimmt Google*, ich bin im Moment leider zu müde, um ausführlicher zu werden. mfG Edit * oder auch schon der Server selbst: http://tibario.square7.ch/highscore.php?Action=red |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
![]() |
N0X |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke, allerdings bekomme ich immer noch nur Nullen als Werte wenn ich HTML\1.1 habe. Bei HTML\1.0 kriege ich garkeine Werte. ![]() Warum? Mfg, N0X |
||
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5% |
![]() |
Xaymarehemals "Cgamer" |
![]() Antworten mit Zitat ![]() |
---|---|---|
bei $_GET und $_POST hat Case-Sensitive afaik keine auswirkung(Geradeeben bei seinem webspace nochmal getestet ![]() |
||
Warbseite |
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Cgamer: Dachte ich auch, aber man kann ja nie wissen ![]() http://tibario.square7.ch/highscore.php?action=red und http://tibario.square7.ch/highscore.php?Action=red das gleiche ausspucken. Tun sie nicht, also wäre indirekt bewiesen, dass es da draussen PHP-Prozessoren gibt, die beim Assoz-Arraynamen sehr pingelig sind, was Grossschreibung anbelangt ![]() N0X: Versuch doch, bevor du es weiter von BB aus steuerst, direkt über die Adressleiste vom Browser zu machen, dass das PHP-Script das ausgibt, was es sollte. Resp. so arbeitet, wie es sollte. Also: Zuerst PHP-Script auf Vordermann bringen. Danach sollte das aufrufen dieses Scripts von BB aus ein Kinderspiel sein. |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
![]() |
Xaymarehemals "Cgamer" |
![]() Antworten mit Zitat ![]() |
---|---|---|
mhm mit Action/action hab ichs nicht getestet. allerdings mit Name/name und Punkte/punkte weshalb mir das wohl nicht aufgefallen ist.
Edit: Code: [AUSKLAPPEN] $result = mysql_query("SELECT
Name, Punkte FROM tibario SORT BY Punkte DESC"); //ASC = Aufwärts sortiert, DESC = Abwärts sortiert vvvv Code: [AUSKLAPPEN] $result = mysql_query("SELECT
Name, Punkte FROM tibario SORT BY Punkte DESC") or die(mysql_error()); //ASC = Aufwärts sortiert, DESC = Abwärts sortiert Und sagen was dann kommt |
||
Warbseite |
![]() |
N0X |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bei HTML\1.1 kommt bei Place 0 und bei Punkte auch 0. (bei Name wird mir generell irgendwie nichts angezeigt?)
Bei HTML\1.0 kommt nix? //EDIT: Im DebugLog() steht weiterhin: Code: [AUSKLAPPEN] Date: Sat, 27 Mar 2010 00:07:13 GMT
Server: Apache/2.2 Vary: Accept-Encoding Connection: close Transfer-Encoding: chunked Content-Type: text/html |
||
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5% |
![]() |
Jo0oker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Seit wann heißt das Sort by und nciht Order by?
lg Jo0oker |
||
Tehadon, das kostenlose 3D RPG
www.tehadon.de http://www.blitzforum.de/worklogs/14/ Das Abenteuer wird beginnen! |
![]() |
Thorsten |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es heisst ORDER BY. | ||
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ist der Debuglog aus der Funktion OHS_GetHighscore$? Ich schätze ganz einfach, dass das PHP-Script gar nix ausgibt. Deshalb Name="" Place=0 und Punkte=0 und das unterschiedliche Verhalten bei HTML1.0 und 1.1 (im einen Fall wird nach dem Header einfach EOF erreicht).
Drum frag ich jetzt einfach noch mal: Du bist dir ganz sicher, dass du im BB-Code, zum Beispiel in der Zeile Code: [AUSKLAPPEN] WriteLine TCP, "GET "+HTTPServerFile+"?action=red HTTP/1.1" den Parameter action genau gleich schreibst wie du ihn in PHP, zum Beispiel in der Zeile
Code: [AUSKLAPPEN] $OHS_Action = $_GET['Action']; geschrieben hast? Ich spreche da vorallem von der Gross-/Kleinschreibung. ![]() Klick mal die beiden Links (die ich schon mal gepostet habe) http://tibario.square7.ch/highscore.php?action=red und http://tibario.square7.ch/highscore.php?Action=red an und finde heraus, was die beiden genau unterscheidet. Und dann wirst du sehen, welcher von beiden eine quasi leere Seite ausgibt und welcher dir eine MySQL-Fehlermeldung ausspuckt. Versuch herauszufinden, wieso einmal ein Fehler kommt und das andere mal nicht. Tipp: "das andere mal" wird der fehlerhafte PHP-Code gar nicht ausgeführt ![]() Dann bereinigst du vorrangig das PHP-Script. Wie gesagt, du musst dafür nicht immer dein BB-Programm ausführen! Schauen ob eine Fehlermeldung oder was zu erwarten war ausgegeben wird, kannst du auch mit dem Browser deiner Wahl. Und wenn du dir dann sicher bist, dass das PHP-Script tut, was du von ihm eigentlich erwartest, dann kannst du BB damit kommunizieren lassen. mfG |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
![]() |
N0X |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ah!
Jetzt kommt da was, und zwar "10120201203012040120" (im Browser) Und beim Programm ebenso! (Score immernoch 0) Ich verzweifel langsam! ![]() Mfg, N0X //EDIT: (bzw. "10120" bei EINEM Eintrag) |
||
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5% |
![]() |
Xaymarehemals "Cgamer" |
![]() Antworten mit Zitat ![]() |
---|---|---|
Irgendwie habe ich das Gefühl, das das Script auf der Serverseite gar nicht dasselbe ist wie das gepostete, da
1. Zeilenumbrüche scheints nicht zu geben 2. Name wird zum Integer Oder du solltest nen anderen Hoster suchen. @Jo0oker, Thorsten: Bei mir geht SORT BY seltsamerweise auch. Lokal testen bringts wohl nicht... |
||
Warbseite |
![]() |
N0X |
![]() Antworten mit Zitat ![]() |
---|---|---|
Exakt Dieses Script ist hochgeladen:
Code: [AUSKLAPPEN] <?php
//MySQL Connection Data $SQL_User = "tibario"; //Benutzername $SQL_Pass = "******"; //Passwort (absichtlich *weggesternchend*) $SQL_Host = "localhost"; //SQL Host $SQL_DaBa = "tibario"; //Datenbank auf die zugegriffen wird //MySQL Connection mysql_connect($SQL_Host,$SQL_User,$SQL_Pass) OR die(mysql_error()); mysql_selectdb($SQL_DaBa) OR die(mysql_error()); //Der Rest des Codes hier drunter mysql_query("CREATE TABLE IF NOT EXISTS tibario ( Name TEXT, Punkte INT)") or die(mysql_error()); //Getting the Data $OHS_Action = $_GET['Action']; $OHS_Spieler = $_GET['Name']; $OHS_Punkte = $_GET['Punkte']; switch($OHS_Action) { case "add": //Add Entry mysql_query("INSERT INTO tibario VALUES ('".$OHS_Spieler."','".$OHS_Punkte."')") or die(mysql_error()); break; case "rem": //Remove Entry mysql_query("DELETE FROM tibario WHERE Name = '".$OHS_Spieler."' AND Punkte = '".$OHS_Punkte."'") or die(mysql_error()); break; case "red": //Read Highscore $result = mysql_query("SELECT Name, Punkte FROM tibario ORDER BY Punkte DESC") or die(mysql_error()); //ASC = Aufwärts sortiert, DESC = Abwärts sortiert $CurrentPlace = 1; if (mysql_num_rows($result)) { while ($row = mysql_fetch_assoc($result)) { //Ausgabecode der Liste echo $CurrentPlace+"\r\n"; echo $row['Name']+"\r\n"; echo $row['Punkte']+"\r\n"; $CurrentPlace += 1; } } break; } ?> |
||
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5% |
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also Meister im Debuggen bist du ja noch nicht... Was ist denn diese 10120 für eine Zahl? Also wenn ich mir die Ausgabe N0X hat Folgendes geschrieben: 10120201203012040120 so anschaue, seh' ich da ein System... Und zwar *ohhhmmmm* erste Ziffer: fortlaufend, wird wohl $CurrentPlace sein, danach kommt immer 0120.
![]() ![]() ![]() Code: [AUSKLAPPEN] echo $CurrentPlace."\r\n";
echo $row['Name']."\r\n"; echo $row['Punkte']."\r\n"; mfG |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
![]() |
N0X |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oh, ja, hm ok. ![]() Stimmt, Strings addiert man mit Punkten. ![]() Wenn ich jetzt aber einen Eintrag mache, und diesen dann mit meinem Browser auslese, wird der Platz und die Punkte angezeigt. ("1 120") Der Name wird aber immernoch weggelassen. Warum? Mfg, N0X //EDIT: Außerdem werden die Einträge nicht untereinander dargestellt, sondern nebeneinander! (was habe ich also bei der "SORT BY DESC")"-Zeile falsch? ![]() //EDIT2: Ersteres gelöst! ![]() Zweites immernoch vorhanden. Die Einträge werden nebeneinander angeordnet. |
||
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5% |
![]() |
Xaymarehemals "Cgamer" |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Holzchopf: seit wann geht das nicht mehr? Bei XAMPP gehts immer noch
Edit: Bin bei 5.1.5, habe XAMPP schon länger nicht geupdatet. |
||
Warbseite |
- Zuletzt bearbeitet von Xaymar am Sa, März 27, 2010 17:53, insgesamt einmal bearbeitet
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dass die Werte im Browser noch nebeneinander dastehen liegt daran, dass ein Browser nur <br /> in einen echten Zeilenumbruch interpretiert (gibt gewisse ausnahmen, aber weil der Server als Content-Type: text/html angibt, werden halt die Steuerzeichen nicht interpretiert), da ist also kein Fehler. Das PHP-Script sollte sogar fehlerfrei sein, mittlerweile.
Ich hab mir den BB-Code kurz angeschaut und musste mit erschrecken feststellen, dass dein Server da extrem kleine chunks versendet. Das heisst, er kennzeichnet die grösse jeder Zeile einzeln. Das wird ziemlich mühsam, das richtig auszulesen, aber ich versuch mich mal daran, dir einen funktionierenden Beispielcode zu schreiben... mfG Edit Cgamer: XAMPP ist ja keine PHP-Version ![]() Edit2 N0X: Ich seh grad: Wenn du statt HTML/1.1 HTML/1.0 verwendest, macht er diese Chunksache nicht so. Einfach diese 1 im Code in eine 0 umwandeln und du bist glücklich =) |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group