HighScore - "Square7" klappt nicht!

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

N0X

Betreff: HighScore - "Square7" klappt nicht!

BeitragFr, März 26, 2010 19:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey!
Ich möchte mit Hilfe dieses Tut's (https://www.blitzforum.de/forum/viewtopic.php?t=33498&highlight=highscore) einen Online-Highscore machen.
Aber irgendwas klappt nicht mit dem MySQL Server (ich kann mich mit dem nicht verbinden)
Warum?

Hier der PHP-Code:
Code: [AUSKLAPPEN]
<?php
   //MySQL Connection Data
      $SQL_User = "tibario";      //Benutzername
      $SQL_Pass = "****";      //Passwort
      $SQL_Host = "tibario.square7.ch";      //SQL Host
      $SQL_DaBa = "";      //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_OH (
   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;
   }
?>


Hier der BB-Code:
Code: [AUSKLAPPEN]
Global HTTPServerAdress$ = "tibario.square7.ch"
Global HTTPServerFile$ = "/highscore.php";/users/tibario/www/
Global OHS_TimeOut = 1000

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$()
      For o.OHS_Highscores = Each OHS_Highscores
         Print o\Place+" "+o\Name$+": "+o\Score
      Next
   EndIf
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.0"
   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.0"
   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.0"
   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


Daten von Square7:

Datenbank: tibario
Benutzername: tibario
Passwort: ****

PHP-Datei liegt auf "tibario.square7.ch/highscore.php"

Im Moment bekomme ich folgende Meldung:
Code: [AUSKLAPPEN]
Warning: mysql_connect() [function.mysql-connect]: Host 'Client1' is not allowed to connect to this MySQL server in /users/tibario/www/highscore.php  on line 9
Host 'Client1' is not allowed to connect to this MySQL server


Warum? Shocked

Mfg,
N0X
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5%
 

Lion

BeitragFr, März 26, 2010 19:58
Antworten mit Zitat
Benutzer-Profile anzeigen
versuch mal als localhost?

Viele hoster machen es so, dass auf SQL nur als localhost zugegriffen werden darf.
Intel Core 2 Quad 4x2.66 ghz - 4gb ddr2 - nvidia GeForce GTX660 2gb
Intel Atom 1x1.83 ghz - 2gb ddr2 - intel GMA 3150 256mb
AMD A10-5750M 4x2.5 ghz - 8 gb ddr4 - AMD R9 M290x

N0X

BeitragFr, März 26, 2010 20:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Oh, danke!
Jetzt kommt (wenn ich's im Browser aufrufe) "No Database selected".
Aber das PHP-Script erstellt doch ne Database also muss ich doch oben keine angeben, oder? Surprised

Mfg,
N0X
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5%

Hubsi

BeitragFr, März 26, 2010 20:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
$SQL_DaBa = ""; //Datenbank auf die zugegriffen wird


Ich bin nicht sicher ob Du eine Datenbank ohne Namen hast? Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

Lion

BeitragFr, März 26, 2010 20:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein Nox, du musst immer zwischen nem Table (bzw Tabelle) unterscheiden und ner Datenbank, wie Hubsi es sagte.
Intel Core 2 Quad 4x2.66 ghz - 4gb ddr2 - nvidia GeForce GTX660 2gb
Intel Atom 1x1.83 ghz - 2gb ddr2 - intel GMA 3150 256mb
AMD A10-5750M 4x2.5 ghz - 8 gb ddr4 - AMD R9 M290x

N0X

BeitragFr, März 26, 2010 20:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Oh, ok Embarassed
Klappt jetzt, aber mit dem BlitzBasic Programm:
Wenn ich F1 drücke, soll ein Eintrag hinzugefügt werden, da wird aber bei meinem DebugLog die HTML Seite, mit 404 Error ausgegeben. Warum? (das selbe auch beim auslesen...)
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5%

ZaP

BeitragFr, März 26, 2010 20:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Dein Header sieht mir etwas mager aus. Probier's mal hiermit.
Starfare: Worklog, Website (download)

N0X

BeitragFr, März 26, 2010 20:52
Antworten mit Zitat
Benutzer-Profile anzeigen
So hab mal nen Host mitgesendet und n Connection: Close.
Beim Senden kommt dann irgendwas von Accepted, aber beim Lesen, naja, kommt wieder so viel Code und blabla Laughing

Ich habe geändert:
Code: [AUSKLAPPEN]
   WriteLine TCP, "GET "+HTTPServerFile+"?action=add&name="+Name+"&Punkte="+Punkte+" HTTP/1.1"
   WriteLine TCP, "Host: tibario.square7.ch"
   WriteLine TCP, "Connection: Close"
   WriteLine TCP, ""


Aber ich möchte ja die Daten die da drin stehen und nicht den HTML-Code der Seite! Mad

Mfg,
N0X
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5%

Starwar

BeitragFr, März 26, 2010 21:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann ruf eine PHP-Seite auf, die dir die Datenbank ausließt. Per PHP echo(...); und einem anschließenden Zeilenumbruch echo("\n"); bekommst du dann einfach Textdaten, die du Mit ReadLine lesen kannst.
MFG

N0X

BeitragFr, März 26, 2010 21:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Aber ich dachte das tut mein Script bereits? (Ist ja wie gesagt aus einem vertrauenswürdigem Tut!)
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5%

Starwar

BeitragFr, März 26, 2010 21:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Tut es. Und wenn du was mit <html> bekommst, dann ist es eine Fehler-Seite vom Server. Les den HTTP-Statuscode aus Header aus. Dann weißt du was los ist.
http://de.wikipedia.org/wiki/HTTP-Statuscode
MFG

N0X

BeitragFr, März 26, 2010 21:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich bekomm beides mal:
Code: [AUSKLAPPEN]
Date: Fri, 26 Mar 2010 19:49:02 GMT
Server: Apache/2.2
Vary: Accept-Encoding
Transfer-Encoding: chunked
Content-Type: text/html


Aber wenn ich dann die Types mit Print bzw. Text aufschreiben will, gibts nur Nullen. Sad

Mfg,
N0X

//EDIT:
Oh, hehe, Tabelle wird erstellt, Datenbank auch, aber die Werte werden nicht übergeben! (ja, als Global deklariert) Warum?
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5%

Starwar

BeitragFr, März 26, 2010 22:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Bitte den kompletten Header und den Text, die die Seite im Browser liefert. Danke.
MFG

N0X

BeitragFr, März 26, 2010 22:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Header:
(den den ich schicke oder?)
Code: [AUSKLAPPEN]
   WriteLine TCP, "GET "+HTTPServerFile+"?action=add&name="+Name$+"&Punkte="+Punkte+" HTTP/1.1"
   WriteLine TCP, "Host: tibario.square7.ch"
   WriteLine TCP, "Connection: Close"
   WriteLine TCP, ""


Und zum Auslesen:
Code: [AUSKLAPPEN]
   WriteLine TCP, "GET "+HTTPServerFile+"?action=red HTTP/1.1"
   WriteLine TCP, "Host: tibario.square7.ch"
   WriteLine TCP, "Connection: Close"
   WriteLine TCP, ""


Ähm, mir ist noch aufgefallen, dass das phpMySQL dingens im Browser die Tabelle "Name" mit der Codierung "latin1_swedish_ci" versieht!

Und die Werte sind auf Standart Null.
Ich schicke eig. über Name einen String und über Punkte nen Int-Wert, kommt aber nicht an...

Mfg,
N0X
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5%

Snade

BeitragFr, März 26, 2010 23:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich kann dir 100% sagen das es bei Square7 nicht geht, da die wie der erste Poster schon sagte die keine externen MySQL zugriffen erlauben ich hatte diesbezüglich auch schonmal den Support angeschrieben. Allerdings gibt er Hoster die nur MySQL Datenbanken vermieten mit externem MySQL zugriff (habe ich selber getestet).
http://www.db4free.net/

Es gibt noch andere, aber das ist der einzige halbwegs gute den es gibt.

lg. Snade

N0X

BeitragFr, März 26, 2010 23:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke, aber wie mach ich das dann mit meinem PHP Script? Surprised
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5%

Holzchopf

Meisterpacker

BeitragSa, März 27, 2010 0:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Natürlich muss das vom Prinzip her auch bei Square7 gehen... das PHP-Script wird ja auf dem gleichen Server ausgeführt und dann muss es gehen. Wenn das auch nicht gehen würde, wäre der Sinn des MySQL-Angebots gleich null. Direkter MySQL-Zugriff von einem externen Server ist doch oft gar nicht nötig. Überhaupt denke ich, dass es viel einfacher ist, ein PHP-Script aufzurufen, welches einfach ein vorgefertigtes SQL-Modul verwendet um die Datenbankdinge auszuführen, als sich in SQL einzuarbeiten um wirklich direkt von BB aus den externen MySQL-Zugriff ausnutzen zu können...
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

Snade

BeitragSa, März 27, 2010 0:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich weis nicht aber ich schätze mal bei MySQL Host trägst du ein: ip_von_db4free.net (oder anderer MySQL Hoster) und der Rest ganz normal. Hab aber keine Ahnung hatte das damals mit Visual Basic gemacht und nicht BB.


EDIT1: Stimmt wenn du ein PHP Script hast brauchst du keinen externen Zugriff.


lg. Snade

Xaymar

ehemals "Cgamer"

BeitragSa, März 27, 2010 0:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Am Header liegt es nicht. Den habe ich ausgiebig getestet um gute ergebnisse zu bekommen.(evtl 1.1 in 1.0 umwandeln)
Ich tippe immoment eher darauf das du nicht das fertige script nimmst, sondern irgendeine Version dazwischen. Kannst du mir mal den vollständigen, wenn es einen gibt, mal per PN senden?
@Holzchopf: Da hast du recht. Da MySQL die eigenschaft besitzt auth-versuche die länger als 1sek sind abzubrechen hat man schlechte Karten, da blitz gerne mal eine halbe sek wartezeit haben will. Ich habs schonmal probiert mich in das Mysql zeug reinzuarbeiten Smile
Edit: Stimmt, das hab ich gerade nich gesehen @den unter mir
Warbseite
  • Zuletzt bearbeitet von Xaymar am Sa, März 27, 2010 0:11, insgesamt einmal bearbeitet

Holzchopf

Meisterpacker

BeitragSa, März 27, 2010 0:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Achja, hast du mal alle Tabellen- und Datenbanknamen überprüft (im PHP-Script)? Ich lese da nämlich an einer Stelle einCode: [AUSKLAPPEN]
tibario_OH
und an einer anderen wiederumCode: [AUSKLAPPEN]
tibario
sollte aber eigentlich das selbe sein Wink
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group