login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Scriptfout | Bankbug

Offline bozmafia - 09/08/2006 10:05 (laatste wijziging 13/08/2006 20:50)
Avatar van bozmafiaPHP interesse Beste mensen,

Ik heb een script in elkaar gezet genaamd bank.php, maar nu zit er een hele erge fout in..


Als je naar jezelf probeert te sturen staat er dit: Je kan geen geld naar jezelf sturen. dus stel ik heet Piet.. en ik typ Piet in, dan komt er te staan dat ik niet naar mezelf kan sturen, maar als ik in plaats van Piet dit intyp: Piét met dat streepje erop, dan accepteert hij het wel, en kan je geld naar jezelf sturen, dan verdubbelt je geld dus de hele tijd.

EDIT: Hier heb je het script.

  1. <?
  2. if(time() > $user['banktime']){
  3. if($user['lastbank'] > time() && $user['bank'] == 0){
  4. $query = "UPDATE `users` SET `lastbank` = '0' WHERE `id` = '".$user['id']."'";
  5. mysql_query($query) or die(mysql_error());
  6. }
  7. if(isset($_POST['action'])){
  8. $action=$_POST['action'];
  9. if($action == 'Deposit' && $_POST['amount'] > 0){
  10. $amount=$_POST['amount'];
  11. if($amount > $user['money'] || strlen($user['money']) < strlen($amount)){
  12. echo "You don't have that much money.";
  13. }
  14. elseif(ereg("[^0-9]", $amount)){
  15. echo "Invalid amount.";
  16. }
  17. elseif($user['lastbank'] > time()){
  18. echo "You already have money on your bank.";
  19. }
  20. else{
  21. $nmoney = $user['money'] - $amount;
  22. $nbank = $user['bank'] + $amount;
  23. $ntime = time() + (24 * 60 * 60);
  24. $query = "UPDATE `users` SET `money` = '".$nmoney."', `bank` = '".$nbank."', `lastbank` = '".$ntime."' WHERE `id` = '".$user['id']."'";
  25. mysql_query($query) or die(mysql_Error());
  26.  
  27. echo "You deposited <b>$".number_format($amount)."</b> in your bank.";
  28. }
  29.  
  30. }
  31. elseif($action == 'Withdraw' && $_POST['amount'] > 0){
  32. $amount=$_POST['amount'];
  33. if($amount > $user['bank'] || strlen($user['bank']) < strlen($amount)){
  34. echo "There is not that much on your bank.";
  35. }
  36. elseif(ereg("[^0-9]", $amount)){
  37. echo "Invalid amount.";
  38. }
  39. else{
  40. $nbank = $user['bank'] - $amount;
  41. $nmoney = $user['money'] + $amount;
  42. $query = "UPDATE `users` SET `money` = '".$nmoney."', `bank` = '".$nbank."' WHERE `id` = '".$user['id']."'";
  43. mysql_query($query) or die(mysql_error());
  44.  
  45. if($nbank == 0){
  46. $query = "UPDATE `users` SET `lastbank` = '0' WHERE `id` = '".$user['id']."'";
  47. mysql_query($query) or die(mysql_error());
  48. }
  49.  
  50. echo "You withdrew <b>$".number_format($amount)."</b> from your bank.";
  51.  
  52. }
  53.  
  54. }
  55. elseif($action == 'Send'){
  56. $to=trim($_POST['to']);
  57. $amount=$_POST['amount'];
  58. $message=htmlspecialchars($_POST['message']);
  59. $check = ("SELECT * FROM `users` WHERE `username` = '".htmlspecialchars($to)."'");
  60. $check = mysql_query($check);
  61. $geldheb=mysql_fetch_object(mysql_query("SELECT * FROM users WHERE id = ".$user['id'].""));
  62. if(mysql_num_rows($check) == 0){
  63. echo "This user does not exist.";
  64. }
  65. elseif($amount < 100){
  66. echo "You need to send at least $100.";
  67. }
  68. elseif(strtolower($to) == strtolower($user['username'])){
  69. echo "You cannot give money to yourself.";
  70. }
  71. elseif($amount > $geldheb->money || strlen($amount) > strlen($geldheb->money)){
  72. echo "You don't have that much money.";
  73. }
  74. elseif(ereg("[^0-9]", $amount)){
  75. echo "Invalid amount of money.";
  76. }
  77. else{
  78.  
  79. $nmoney = $geldheb->money - $amount;
  80. $query = "UPDATE `users` SET `money` = '".$nmoney."' WHERE `id` = '".$user['id']."'";
  81. mysql_query($query) or die(mysql_error());
  82.  
  83. $users = mysql_fetch_object($check);
  84. $nomoney = $users->money + $amount;
  85. $query = "UPDATE `users` SET `money` = '".$nomoney."' WHERE `id` = '".$users->id."'";
  86. mysql_query($query) or die(mysql_error());
  87.  
  88. if(!empty($message)){
  89. $message = str_replace($message, "[b]".$user['username']." has sent you $".number_format($amount)." with the following message:[/b]\n\r<hr>".$message, $message);
  90. $query = "INSERT INTO `messages` (`from`,`to`,`date`,`message`,`read`,`saved`) VALUES ('Notificiation','".$users->username."','".date("d/m/Y H:i:s")."','".$message."','0','0')";
  91. mysql_query($query) or die(mysql_error());
  92. }
  93.  
  94. $query = "INSERT INTO `transfers` (`from`,`to`,`date`,`amount`) VALUES ('".$user['username']."','".$users->username."','".date("d/m/Y H:i:s")."','".$amount."')";
  95. mysql_query($query) or die(mysql_error());
  96.  
  97. echo "You succesfully gave <b>$".number_format($amount)."</b> to <b>".$users->username."</b>.";
  98.  
  99. }
  100.  
  101. }
  102.  
  103. }
  104. ?>




Wie kan mij hiermee helpen?

Alvast bedankt.

5 antwoorden

Gesponsorde links
Offline Dark_Paul - 09/08/2006 10:14
Avatar van Dark_Paul PHP ver gevorderde je zou hetvolgende kunnen doen:
- sta geen gebruikersnamen toe met speciale tekens als ä, ï, ü enz.
- htmlentities de naam waar het geld naartoe moet;
- vervang de &..; door de gewone letters (dus ä wordt dan gewoon a);
simpeler:
zorg voor een exacte match van de naam waar je naartoe stuurt. dus Piet != Piét. eventueel een htmlentities oid toevoegen zodat het helemaal niet meer klopt..
Offline Thomas - 09/08/2006 11:16
Avatar van Thomas Moderator Werk met user-id's, niet met usernames.
Offline bozmafia - 13/08/2006 20:52
Avatar van bozmafia PHP interesse Ik heb ff het hele script erbij gezet, zodat het makkelijker is om te helpen.. ik heb nog steeds geen oplossing gevonden btw.
Offline lau - 13/08/2006 23:38
Avatar van lau HTML interesse Idd.. net wat FangorN zegt... user-ID zijn immers uniek.
Krijg je geen problemen mee als er 2 piet'en zijn?
Offline Maarten - 14/08/2006 00:56
Avatar van Maarten Erelid
Citaat:
Krijg je geen problemen mee als er 2 piet'en zijn?
Normaal gezien zorg je er voor dat je unieke gebruikersnamen hebt.. user-id's zijn gewoon veiliger, korter en gemakkelijker als je de gebruikersnaam zou aanpassen.

Maar als je nu eens begint met een beetje in te springen in je code, dan snap je er zelf misschien al iets van.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.28s