2016-07-19 3 views
0

Der Code Ich habe eine einfache Highscore-Tabelle erstellt, indem ich den Namen und das Ergebnis eines Spielers aus der URL genommen habe. Beispiel: http://www.example.com/hs/test2.php?n=Jimmy&s=15000Wie kann ich die Highscore-Informationen ausblenden, die in einer URL enthalten sind?

In dem obigen Beispiel ist der Spieler Name Jimmy und seine Partitur war 15000.

Die Datenbank ist MySQL.

Ich möchte nicht, dass Spieler diese Informationen in der URL sehen können. Wie kann ich es verstecken oder irgendwie schützen? Der PHP-Code Ich verwende unter:

/*test1.php*/ 

<? 
echo "<h5>High Scores</h5>"; 
$con = mysql_connect("fdb3.runhosting.com","databse","password"); 
if (!$con) 
{ 
    die('Could not connect: ' . mysql_error()); 
} 

mysql_select_db("database", $con); 
$result = mysql_query("SELECT * FROM highscores ORDER BY Score DESC LIMIT 10"); 
while($row = mysql_fetch_array($result)) 
{ 
echo $row['Name'] . " | " . $row['Score']; 
echo "<h5> </h5>"; 
} 

mysql_close($con); 
?> 

/*test2.php*/ 
<?php 

$nam = $_GET["n"]; 
$sco = $_GET["s"]; 

$con = mysql_connect("fdb3.runhosting.com","database","password"); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 
mysql_select_db("database", $con); 
$result = mysql_query("INSERT INTO highscores (Name, Score) 
VALUES ('" . $nam . "', '" . $sco . "') "); 

mysql_close($con); 
header('Location: http://yoursubdomain/1st_textdocument.php') ; 
?> 

Ich denke, es könnte ein Weg sein, um den POST-Befehl zu verwenden, aber ich habe nicht in der Lage, damit es funktioniert. Wer weiß, wie dieser Code verbessert werden kann, damit die Informationen nicht durch die URL des PHP verloren gehen? Danke für jede Hilfe! :)

+1

verwenden ändern, wenn Sie es nicht wollen, in der URL, dann tun Sie es nicht in der URL Selbst wenn Sie zu "POST" anstelle von "GET" wechseln, können die Informationen immer noch von jedem angezeigt werden, der danach sucht. Verwenden Sie stattdessen eine weniger aufschlussreiche ID (dann holen Sie sich den Punktestand aus einer Datenbank) oder verschlüsseln Sie sie. Beenden Sie die Verwendung der mysql-Erweiterung, da sie veraltet ist. –

Antwort

0

Verwenden POST statt GET, müssen Sie die Methode in Ihrem HTML-Formular und $_POST statt $_GET

+0

Technisch beantwortet die Frage ... aber: https://addons.mozilla.org/de-DE/firefox/addon/tamper-data/ – CD001

+0

Wie auch immer ist es möglich, Daten zu senden und zu ändern, Sie brauchen nicht einmal ein Addon Tatsache ist, dass er seine Seite mit einem Einweg-Token schützen sollte, der nach dem Ende eines Spiels gegeben wurde. – Vuldo

+0

Wahr - aber das FF-Plugin ist zufällig das, was ich benutze, wenn ich versuche, meine eigenen Formulare zu brechen. Ich benutze es nur als Illustration, wie einfach es ist, POST-Daten zu manipulieren. – CD001

Verwandte Themen