AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Eintrag einer neuen Highscore über php und MySQL (beide bereits vorhanden)
Thema durchsuchen
Ansicht
Themen-Optionen

Eintrag einer neuen Highscore über php und MySQL (beide bereits vorhanden)

Ein Thema von firlefanz · begonnen am 15. Feb 2013 · letzter Beitrag vom 18. Feb 2013
Antwort Antwort
firlefanz

Registriert seit: 15. Feb 2013
5 Beiträge
 
#1

Eintrag einer neuen Highscore über php und MySQL (beide bereits vorhanden)

  Alt 15. Feb 2013, 09:59
Hallo,

ich habe eine Online-Hiscore Liste mit MySQL. Dazu habe ich ein php, dass die Score und Namen etc überträgt und dann eine Platzierung per "Echo" zurückgibt.

Ich habe den Provider gewechselt, seitdem geht das nicht mehr. Insert und Update der Score beide OK, aber die Platzierung wird nicht mehr zurückgegeben, stattdessen gibt es immer ein "Connection Closed Gracefully". Zuerst hatt ich das auf das php geschoben, aber das scheidet aus, nach diversen Umstellungen und Updates immer das gleiche Problem.

Daher möchte ich gerne den Delphi Teil verbessern oder gegen etwas anderes austauschen...

lHTTP: TIdHTTP;

Delphi-Quellcode:
  spostString:= 'ModeID=2&Name=' + sname + '&Info=' + statement + '&Rank=' + srank
  + '&Score=' + inttostr(nscore) + '&Skill=' + inttostr(nskill) + '&Level=' + inttostr(nlevel) + '&Quest=' + inttostr(nAnz)+ '&Vers=' + sVers+ '&Difficulty=' + inttostr(gnDiff)
  + '&Hash=' + MD5(sname + statement + srank + inttostr(nscore) + inttostr(nskill) + inttostr(nlevel) + inttostr(nanz) + svers + inttostr(gndiff) + 'cryptstring');
  lParamList := TStringList.Create;
  lParamList.Add(spostString);
  lHTTP := TIdHTTP.Create(nil);
  try
    scheck:=lHTTP.Post('http://myhiscores.de/highscore/newscore.php', lParamList);
Liegt viellicht an neuen Sicherheits-Einstellungen, kann man das POST auch anders als mit TIdHTTP oder ganz anders umsetzen?

Wichtig ist dabei, dass scheck die Rückgabe, in meinem Fall 1000 für nix oder die Platzierung enthält.
Das klappt per php prima.

Für Vorschläge wäre ich sehr dankbar

Viele Grüße,

Eric
  Mit Zitat antworten Zitat
firlefanz

Registriert seit: 15. Feb 2013
5 Beiträge
 
#2

AW: Eintrag einer neuen Highscore über php und MySQL (beide bereits vorhanden)

  Alt 18. Feb 2013, 10:22
Keine Idee?

Ich bin da selber ratlos. Die Verbindung wurde in dem Fall wohl vom Server getrennt, ich habe keine Idee warum.

Wenn ich keine Rückgabe mit Echo reinsetze, bekomme ich keinen Fehler.
Ich benötige die Rückgabe, um meine Platzierung zu erfahren...

Hier das php, vielleicht kann mir jemand helfen?

Code:
<?php
error_reporting(-1);
ini_set("display_errors",true);

$db = new mysqli("mysql.webhosting68.1blu.de", "dbuser", "dbpass", "dbdatabase");
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

$highscorestring=$_POST["Name"] . $_POST["Info"] . $_POST["Rank"] . $_POST["Score"] . $_POST["Skill"] . $_POST["Level"] . $_POST["Quest"] . $_POST["Vers"] . $_POST["Difficulty"] . "hi666";
if ( md5($highscorestring) == $_POST["Hash"]){
$sql="Select Count(*) from mygame_highscores where ModeID=".$_POST["ModeID"]." and Name='".$_POST["Name"]."'";
$result = mysqli_query($db, $sql);
$row = mysqli_fetch_array($result,MYSQLI_BOTH);
if ($row[0] == 0)
{
$sql = "INSERT INTO mygame_highscores (ModeID,Name,Rank,Info,Score,Skill,Level,Quest,Vers,Difficulty) VALUES (
'".$_POST["ModeID"]."',
'".$_POST["Name"]."',
'".$_POST["Rank"]."',
'".$_POST["Info"]."',
".$_POST["Score"].",
".$_POST["Skill"].",
".$_POST["Level"].",
".$_POST["Quest"].",
'".$_POST["Vers"]."',
".$_POST["Difficulty"].")";

else
{
$sql = "Update mygame_highscores set
Score=".$_POST["Score"].",
Skill=".$_POST["Skill"].",
Rank='".$_POST["Rank"]."',
Level=".$_POST["Level"]."
where ModeID=".$_POST["ModeID"]."
AND Name='".$_POST["Name"]."'
AND Score<".$_POST["Score"];
}
$result = mysqli_query($db, $sql);

$sqlBack="Select Count(*) from mygame_highscores where
ModeID=".$_POST["ModeID"]."
AND Score>".$_POST["Score"];
$resultBack = mysqli_query($db, $sqlBack);
$rowBack = mysqli_fetch_array($resultBack,MYSQLI_BOTH);
echo $rowBack[0];

else
{
echo "1000";
}
$db->close();
?>
Vielen Dank!

Firlefanz
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz