Probleem met geld updaten en ophalen.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Stan Peters

Stan Peters

29/01/2014 14:38:25
Quote Anchor link
Hallo,

Ik ben een spel aan het maken en ik wil graag geld kunnen opslaan in de datebase wanneer je uitlogt, en wanneer je inlogt dat je het dan ophaalt.
Dit lukt echter nog niet.

Dit zijn de codes:
De verbinding met de database is al gelukt. Dus daar ligt het niet aan.

Het ophalen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
                                $query = "SELECT Cashgeld, Bankgeld FROM Accounts WHERE Gebruikersnaam = $gebruikersnaam";
                                $resultaat = mysql_query($query);
                                while ($row = mysql_fetch_array($resultaat))
                                    {                        
                                                $_SESSION['cashgeld'] = $row["Cashgeld"];
                                                $_SESSION['bankgeld'] = $row["Bankgeld"];
                                    }


Het opslaan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
                        $_SESSION['cashgeld'] = $cashgeld;
                        $_SESSION['gebruikersnaam'] = $gebruikersnaam;
                        $_SESSION['bankgeld'] = $bankgeld;
                        
                        $sql = "UPDATE Accounts SET Cashgeld = \"$cashgeld\" WHERE Gebruikersnaam = \"$gebruikersnaam\"";
                        $resultaat = mysql_query($sql) or die (mysql_error());
                        $verbreken = mysql_close($sql);
                        
                        $sql2 = "UPDATE Accounts SET Bankgeld = \"$bankgeld\" WHERE Gebruikersnaam = \"$gebruikersnaam\"";
                        $resultaat = mysql_query($sql2) or die (mysql_error());
                        $verbreken = mysql_close($sql2);



Bedankt alvast voor de antwoorden!

Mvg,
Stan Peters
Gewijzigd op 29/01/2014 14:39:26 door Stan Peters
 
PHP hulp

PHP hulp

14/06/2024 18:43:43
 
Erwin H

Erwin H

29/01/2014 14:40:39
Quote Anchor link
Quotes....

Je mist de quotes om de waarde van gebruikersnaam in je select query, aannemende dat gebruikersnaam een string is uiteraard.
 
- Ariën  -
Beheerder

- Ariën -

29/01/2014 14:45:12
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$sql
= "UPDATE Accounts SET Cashgeld = ".$_SESSION['cashgeld']." WHERE Gebruikersnaam = '".$_SESSION['gebruikersnaam']."'";
// etc...
?>


Gewoon in het vervolg netjes single-quote gebruiken voor (voor)waardes uit WHERE en SET omdat het een string is, en natuurlijk de variabelen in PHP buiten quotes laten. Ook het kopieëren van variabelen wat op lijn 1 t/m 3 gebeurt is onnodig, en kan alleen maar verwarrender werken en veiligheidsrisico's meebrengen tijdens het programmeren.

Lees ook eens: http://www.phphulp.nl/php/tutorial/data-verwerking/foutafhandeling-query-sql/735/, want die() is nergens voor nodig. Als iets mislukt hoor je dat gewoon goed af te vangen in plaats van het script te laten sterven.

Verder raad ik ook aan om naar PDO of MySQLi te kijken, omdat de functiebibiliotheek van Mysql_*() ten einde zal komen in nieuwe versies van PHP. Ikzelf geef het geen twee jaar meer voordat de hostings het uit gaan schakelen.
Gewijzigd op 29/01/2014 14:45:34 door - Ariën -
 
Michael -

Michael -

29/01/2014 14:46:21
Quote Anchor link
Je gebruikt mysql functies die 'deprecated' zijn en worden uitgefaseerd. Je kunt je mysql functies omzetten naar mysqli functies of kijken naar PDO.

Daarnaast gebruik je geen die() maar een goede foutafhandeling.

Je script is ook zo lek als een mandje. Inloggen als 'drop table Accounts resulteert in het wissen van je database. Gebruik hiervoor mysql(i)_real_escape_string() voor.

edit: aar was me weer eens voor :(
Gewijzigd op 29/01/2014 14:48:10 door Michael -
 
Ivo P

Ivo P

29/01/2014 15:33:42
Quote Anchor link
vraag: wat gebeurt er als iemand niet uitlogt, maar gewoon wegklikt van de site, of zijn pc uitzet?
 
Michael -

Michael -

29/01/2014 15:38:35
Quote Anchor link
Ivo P op 29/01/2014 15:33:42:
vraag: wat gebeurt er als iemand niet uitlogt, maar gewoon wegklikt van de site, of zijn pc uitzet?

Dan krijg je geen geld voor het uitloggen.
Wat als men een batch maakt die elke 10 seconden in en uit logt?
 
Stan Peters

Stan Peters

29/01/2014 19:56:29
Quote Anchor link
Dankjewel voor jullie antwoorden!
Ik heb precies gedaan wat Aaf zei, en het uitloggen werkt nu.
Alleen werkt het inloggen en het ophalen van de sessions nog niet.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
                                $query = "SELECT Cashgeld, Bankgeld FROM Accounts WHERE Gebruikersnaam = $gebruikersnaam";
                                $resultaat = mysql_query($query);
                                while ($row = mysql_fetch_array($resultaat))
                                    {                        
                                                $_SESSION['cashgeld'] = $row["Cashgeld"];
                                                $_SESSION['bankgeld'] = $row["Bankgeld"];
                                    }

Weet iemand hier iets op?
Naar een batch zal ik later kijken! Maar bedankt voor de tip!

Mvg,
Stan Peters
 
Erwin H

Erwin H

29/01/2014 20:01:25
Quote Anchor link
Erwin H op 29/01/2014 14:40:39:
Quotes....

Je mist de quotes om de waarde van gebruikersnaam in je select query, aannemende dat gebruikersnaam een string is uiteraard.

Altijd leuk als mensen je opmerkingen niets eens lezen....
 
Koen Hollander

Koen Hollander

30/01/2014 09:37:27
Quote Anchor link
Waarom doe je het geld niet direct veranderen in de database en live ophalen? In een sessie zit het niet veilig.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.