- Liittynyt
- 17.10.2016
- Viestejä
- 486
Olen tekemässä tietokantaa, johon pitäisi myöhemmin yhdistää pelin kautta. Sain tietokannan toimimaan käyttämällä koodia:
Haluaisin kuitenkin tehdä tämän käyttämällä preparea, koska se on ilmeisesti turvallisempi. Yritin tehdä sitä näin:
Mutt tästä tulee aina virhe. Minulla on tietokannassa ID, username, password, xp kentät. Saako tuohon prepareen samanlaista varmistusta kuin ylempään (if ($mysqli->query($sql) == TRUE))?
Entä kuinka nämä SQL jutut saa suojattua Injectioneilta? Onko siihen jotain helppoa keinoa? Osaisitteko neuvoa . Kiitos.
edit: Niin ja koitin myös näin:
Virheeksi tulee, että Sivu ei toimi Http Error 500. Se poistuu heti kun kommentoin koodit.
Koodi:
if (!$nameTaken)
{
$sql = "INSERT INTO users (username, password, xp) VALUES('$username','$password','$xp')";
if ($mysqli->query($sql) == TRUE)
{
echo "True";
$AccountCreationSuccessful["AccountSuccessfullyCreated"] = true;
} else
{
echo "Failed to Insert into Database";
}
Haluaisin kuitenkin tehdä tämän käyttämällä preparea, koska se on ilmeisesti turvallisempi. Yritin tehdä sitä näin:
Koodi:
$sql = $mysqli->prepare("INSERT INTO users ('username', 'password', 'xp') VALUES (?, ?, ?)");
$sql->bind_param($username, $password, $xp);
$sql->execute(); // Add Player
$AccountCreationSuccessful["AccountSuccessfullyCreated"] = true;
Entä kuinka nämä SQL jutut saa suojattua Injectioneilta? Onko siihen jotain helppoa keinoa? Osaisitteko neuvoa . Kiitos.
edit: Niin ja koitin myös näin:
Koodi:
$sql = $mysqli->prepare("INSERT INTO users (username, password, xp) VALUES (:nam, :pass, :xp)");
$sql->bind_param('nam', $username);
$sql->bind_param('pass', $password);
$sql->bind_param('xp', $xp);
$sql->execute(); // Add Player
//$AccountCreationSuccessful["AccountSuccessfullyCreated"] = true;
Virheeksi tulee, että Sivu ei toimi Http Error 500. Se poistuu heti kun kommentoin koodit.
Viimeksi muokattu: