login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Doneren

Offline Martijn1989 - 05/05/2005 16:22
Avatar van Martijn1989PHP ver gevorderde Ik ben bezig met een spel... alleen wil doneren niet super lukken.. hij telt het er niet goed bij... willen jullie even kijken :


  1. <?php
  2.  
  3. include ("config.php");
  4.  
  5. if ($MEMBER->gebruikersnaam != "") {
  6. $select = "SELECT * FROM leden WHERE gebruikersnaam = '$MEMBER->gebruikersnaam'";
  7. $res = mysql_query($select) or die (mysql_error());
  8. $show = mysql_fetch_object($res);
  9.  
  10.  
  11. ?>
  12. Doneren<br>
  13. Hier kan je geld naar mensen sturen.<br><br>
  14.  
  15. <?php
  16.  
  17. if(isset($_POST['submit'])) {
  18. if($_POST['bedrag'] <= $MEMBER->geld && preg_match('/^[0-9]+$/',$_POST['bedrag']) && $_POST['bedrag'] > 0) {
  19.  
  20. $bedrag = $_POST['bedrag'];
  21. $aan = $_POST['aan'];
  22.  
  23. $data->cash -= $bedrag;
  24. $to->cash += $bedrag;
  25.  
  26.  
  27. mysql_query("UPDATE leden SET geld={$data->cash} WHERE gebruikersnaam = '$MEMBER->gebruikersnaam'");
  28. mysql_query("UPDATE leden SET geld={$to->cash} WHERE gebruikersnaam = '$aan'");
  29.  
  30. echo "Het bedrag € <b>". $bedrag .",-</b> is overgemaakt!";
  31.  
  32. } else {
  33. echo "Zoveel geld heb je niet, zorg eerst eens dat je die € <b>". $bedrag .",-</b> hebt!";
  34.  
  35. }} else {
  36. <table>
  37. <tr><td width=100>Portomonnee:</td><td>€ <b>". $MEMBER->geld .",-</b></td></tr>
  38. </table>
  39. <form method='post'>
  40. <table>
  41. <tr><td>Aan:</td><td><input type='text' name='aan' maxlength='50'></td></tr>
  42. <tr><td>Bedrag:</td><td><input type='text' maxlength='9' name='bedrag'></td></tr>
  43. <tr><td></td><td><input type='submit' name='submit' value='Doneer'></td></tr>
  44. </table></form>";
  45. }} else {
  46. echo "Het is niet mogelijk om gebruik te maken van deze pagina, als je niet bent ingelogd!";
  47. }
  48. ?>


24 antwoorden

Gesponsorde links
Offline Thomas - 05/05/2005 16:27
Avatar van Thomas Moderator Cool, kun je ook een negatief bedrag aan jezelf doneren ? Dan krijg je toch 2x dat bedrag er bij ? 
Offline Martijn1989 - 05/05/2005 16:29
Avatar van Martijn1989 PHP ver gevorderde Ja, ik snap er ff de balluh niet meer van maak jij hem dan zoals je denkt 
Offline Legolas - 05/05/2005 16:30 (laatste wijziging 05/05/2005 16:33)
Avatar van Legolas Onbekend Zoals gewoonlijk weer ff rewriten :
  1. <?
  2. include ("config.php");
  3. if ($MEMBER->gebruikersnaam != "") {
  4. $show = mysql_fetch_object(mysql_query("SELECT * FROM leden WHERE gebruikersnaam = '"$MEMBER->gebruikersnaam"'"));
  5. ?>
  6. Doneren<br>
  7. Hier kan je geld naar mensen sturen.<br><br>
  8.  
  9. <?php
  10.  
  11. if(isset($_POST['submit'])) {
  12. if($_POST['bedrag'] <= $MEMBER->geld && preg_match('/^[0-9]+$/',$_POST['bedrag']) && $_POST['bedrag'] > 0) {
  13.  
  14. $aan = $_POST['aan'];
  15.  
  16. $data->cash -= $_POST['bedrag'];
  17. $aan->cash += $_POST['bedrag'];
  18.  
  19.  
  20. mysql_query("UPDATE leden SET geld={$data->cash} WHERE gebruikersnaam = '"$MEMBER->gebruikersnaam"'");
  21. mysql_query("UPDATE leden SET geld={$aan->cash} WHERE gebruikersnaam = '"$aan"'");
  22.  
  23. echo "Het bedrag € <b>". $bedrag .",-</b> is overgemaakt!";
  24.  
  25. } else {
  26. echo "Zoveel geld heb je niet, zorg eerst eens dat je die € <b>". $bedrag .",-</b> hebt!";
  27.  
  28. }} else {
  29. <table>
  30. <tr><td width=100>Portomonnee:</td><td>€ <b>". $MEMBER->geld .",-</b></td></tr>
  31. </table>
  32. <form method='post'>
  33. <table>
  34. <tr><td>Aan:</td><td><input type='text' name='aan' maxlength='50'></td></tr>
  35. <tr><td>Bedrag:</td><td><input type='text' maxlength='9' name='bedrag'></td></tr>
  36. <tr><td></td><td><input type='submit' name='submit' value='Doneer'></td></tr>
  37. </table></form>";
  38. }} else {
  39. echo "Het is niet mogelijk om gebruik te maken van deze pagina, als je niet bent ingelogd!";
  40. }
  41. ?>

Dit zou het toch moeten doen?
Wat doet ie anders niet?
Doet ie NIX?:o
Offline Tuinstoel - 05/05/2005 16:37 (laatste wijziging 05/05/2005 16:38)
Avatar van Tuinstoel PHP expert Zouden we niet alle criminals shit verwijderen?

Maarja dit is een eenvoudige functie die het een en ander kan controleren.
  1. <?php
  2. function IsGeldig($iGeld)
  3. {
  4. if(!is_numeric($iGeld))
  5. { return false; }
  6. elseif(strlen($iGeld) > 12)
  7. { return false; }
  8. elseif(!ereg('[0-9]',$iGeld))
  9. { return false; }
  10. elseif(ereg('-',$iGeld))
  11. { return false; }
  12. elseif($iGeld < 0)
  13. { return false; }
  14. else
  15. { return true; }
  16. }
  17. /// meer dommecontroles kan ik zo niet verzinnen..
  18. ?>
Offline Legolas - 05/05/2005 16:40
Avatar van Legolas Onbekend @Tuinstoel: eerst op is_numeric checken en dan nog op ereg('[0-9]')?
dat is toch dubbelop;-)
Offline Tuinstoel - 05/05/2005 16:42
Avatar van Tuinstoel PHP expert Is et ook wah 
Maar die - en [0-9] kun je btw ook nog wel combineren, alleen ik ben geen held in reguliere expressies.
Offline Legolas - 05/05/2005 16:47 (laatste wijziging 05/05/2005 17:29)
Avatar van Legolas Onbekend En je kunt al die codes waar hij false returnt, toch ook in 1 if zetten, dus zoiets:
  1. <?
  2. function IsGeldig($iGeld){
  3. if(!is_numeric($iGeld) || strlen($iGeld) > 12) || !ereg('[0-9]',$iGeld) || ereg('-',$iGeld) || $iGeld <= 0){
  4. return false;
  5. }
  6. else
  7. { return true; }
  8. }
  9. ?>

Owjah 1 foutje gevonden 
jij doet:
elseif($iGeld < 0)
maar als je nou 0 invoert, rekent ie het goed 
Zie boven men verbetering;-)
Offline MechaVore - 05/05/2005 17:17 (laatste wijziging 05/05/2005 17:19)
Avatar van MechaVore Gouden medaille

PHP gevorderde
waarom mag het geld niet meer karakters dan 12 bevatten ?
je weet toch nooit de waarde van het geld van zijn spel.
misschien kost een pistool er wel 1.900.000.000.000
dat zijn 13 karakters. waarom mag dat niet ?

en euh martijn. ik heb nu al meer dan 6 topics over je spel gezien, alls je er niet uitkomt leer het dan zelf is. want zo maken wij jou script. en dat is niet de bedoeling, vind ik iig.

en je vergeet trouwens ook een { achter je function.
Offline Tuinstoel - 05/05/2005 18:04
Avatar van Tuinstoel PHP expert is_numeric is niet geldig bij meer dan 16 tekens ofzo, 1111111111111111 geeft hij alsnog true. En met iets meer dan 12 tekens ofzo kon je ook al 'n hack doen, uit ervaring;-).
Offline Martijn1989 - 05/05/2005 18:57
Avatar van Martijn1989 PHP ver gevorderde @ Lightblade :

Jongen ik zit vast, hoe kan ik anders leren dan van me fouten... ik mag het dan tog zeker hier wel vragen.

@ Legolas :

Nope, werkt niet .

@ Iedereen anders :

Nog niemand anders? Het probleem ligt iig hier :





  1. <?php
  2.  
  3. if(isset($_POST['submit'])) {
  4. if($_POST['bedrag'] <= $MEMBER->geld && preg_match('/^[0-9]+$/',$_POST['bedrag']) && $_POST['bedrag'] > 0) {
  5.  
  6. $bedrag = $_POST['bedrag'];
  7. $aan = $_POST['aan'];
  8.  
  9. $data->cash -= $bedrag;
  10. $to->cash += $bedrag;
  11.  
  12.  
  13. mysql_query("UPDATE leden SET geld={$data->cash} WHERE gebruikersnaam = '$MEMBER->gebruikersnaam'");
  14. mysql_query("UPDATE leden SET geld={$to->cash} WHERE gebruikersnaam = '$aan'");
  15.  
  16. echo "Het bedrag € <b>". $bedrag .",-</b> is overgemaakt!";
Offline Legolas - 05/05/2005 19:03 (laatste wijziging 05/05/2005 19:05)
Avatar van Legolas Onbekend kben niet iemand anders;-)
code:
  1. <?php
  2. if(isset($_POST['submit'])) {
  3. if($_POST['bedrag'] <= $MEMBER->geld && preg_match('/^[0-9]+$/',$_POST['bedrag']) && $_POST['bedrag'] > 0) {
  4. $bedrag = $_POST['bedrag'];
  5. $aan = $_POST['aan'];
  6. mysql_query("UPDATE leden SET geld= geld - '".$bedrag."' WHERE gebruikersnaam = '"$MEMBER->gebruikersnaam"'");
  7. mysql_query("UPDATE leden SET geld= geld + '".$to->cash."' WHERE gebruikersnaam = '".$aan."'");
  8.  
  9. echo "Het bedrag € <b>". $bedrag ."1,-</b> is overgemaakt naar ". $aan ."!";
  10. ?>

Zowiets?
anders ligt het aan je classes, aan dat $member->gebruikersnaam:)
Offline Martijn1989 - 05/05/2005 19:11
Avatar van Martijn1989 PHP ver gevorderde Nee,.. en $MEMBER->gebruikersnaam werkt, gewoon goed...
Offline Legolas - 05/05/2005 19:15
Avatar van Legolas Onbekend Wat doet het nu dan!
Als je niet aangeeft wat er fout gaat, kan ik ook niks doen hoor:!:
Offline Martijn1989 - 05/05/2005 19:21
Avatar van Martijn1989 PHP ver gevorderde Sorry,.. :
Wat het nu doet :

Hij maakt het geld naar - ( Portomonnee: € -100,-)
De andere krijgt het geld niet
Offline Legolas - 05/05/2005 19:22 (laatste wijziging 05/05/2005 19:24)
Avatar van Legolas Onbekend Huh, hoe bedoel je naar '-' ?
Krijg je er zelf geld af en krijgt ander niks?
Offline Martijn1989 - 05/05/2005 19:25
Avatar van Martijn1989 PHP ver gevorderde Je krijgt het bedrag in de - dus :

Stuur €30,- naar : ××××

Staat jou geld naar €-30,-
en ×××× gebeurd niks mee
Offline Legolas - 05/05/2005 19:33 (laatste wijziging 05/05/2005 20:15)
Avatar van Legolas Onbekend Deze methode HOORT te werken:
  1. <?
  2. if(isset($_POST['submit'])) { // als er gesubmit is
  3. if($_POST['bedrag'] <= $MEMBER->geld && preg_match('/^[0-9]+$/',$_POST['bedrag']) && $_POST['bedrag'] > 0) {
  4. // controles
  5. $bedrag = $_POST['bedrag']; // bedrag
  6. $aan = $_POST['aan']; // aan wie
  7. mysql_query("UPDATE leden SET geld=geld-'".$bedrag."' WHERE gebruikersnaam = '".$MEMBER->gebruikersnaam."'");
  8. mysql_query("UPDATE leden SET geld= geld+'".$bedrag."' WHERE gebruikersnaam = '".$aan."'");
  9. echo "Het bedrag € <b>". $bedrag ."1,-</b> is overgemaakt naar ". $aan ."!";
  10. ?>

Trouwens, bij mij werkt het:o
Offline Martijn1989 - 05/05/2005 20:08 (laatste wijziging 05/05/2005 20:14)
Avatar van Martijn1989 PHP ver gevorderde
  1. WHERE gebruikersnaam = '"$MEMBER->gebruikersnaam"'");



die dubbele " om $MEMBER->gebruikersnaam zorgen alleen voor extra problemen :S

edit:
Citaat:
Parse error: parse error, unexpected T_VARIABLE in /usr/home/pb2531/domains/profielweb.nl/public_html/site/doneren2.php on line 23


Dit is die fout. en als ik die dubbele " weghaald,.. dan ja.. voorafaan 

edit2:

Het geld gaat er nu wel GOED af, maar het komt nog niet bij de ander erbij.

edit3:

die .$aan. die .. moesten weg, zo werkt het wel!
Offline Legolas - 05/05/2005 20:12 (laatste wijziging 05/05/2005 20:14)
Avatar van Legolas Onbekend Echt niet, als $MEMBER->gebruikersnaam martijn zou zijn, zou het dit worden:
WHERE gebruikersnaam = 'Martijn'
Die haakjes dubbel eromheen is aan het begin om de query af te sluiten en var. waarde te inserten, en aan het eind weer om die var waarde weer te sluiten. Maar werkt het nu?
edit: beetje laat
edit2: dan lijkt het of hij de variabele $aan niet kan vinden:s
Offline Martijn1989 - 05/05/2005 20:13
Avatar van Martijn1989 PHP ver gevorderde zie me edits
Offline nemesiskoen - 05/05/2005 20:13
Avatar van nemesiskoen Gouden medaille

PHP expert
  1. WHERE gebruikersnaam = '". $MEMBER->gebruikersnaam ."'");
Offline Legolas - 05/05/2005 20:16 (laatste wijziging 05/05/2005 20:17)
Avatar van Legolas Onbekend De code van m'n laatste bericht moet werken.
@nemesiskoen: ja idd 2x "." vergeten.
Foutje kan gebeuren hè.
maar martijn je hebt dus toch GEEN gelijk over die dubbele quotes hè^^
Offline Martijn1989 - 05/05/2005 20:18 (laatste wijziging 05/05/2005 20:18)
Avatar van Martijn1989 PHP ver gevorderde Zonder puntjes werkt het juist wel.. IIG : HET WERKT 

Voor geintreseerde me code:

  1. <?php
  2.  
  3. include ("config.php");
  4.  
  5. if ($MEMBER->gebruikersnaam != "") {
  6. $select = "SELECT * FROM leden WHERE gebruikersnaam = '$MEMBER->gebruikersnaam'";
  7. $res = mysql_query($select) or die (mysql_error());
  8. $show = mysql_fetch_object($res);
  9.  
  10.  
  11. ?>
  12. Doneren<br>
  13. Hier kan je geld naar mensen sturen.<br>
  14. <b>NIET GEBRUIKEN WERKT NOG NIET</B><br>
  15.  
  16. <?php
  17.  
  18. if(isset($_POST['submit'])) { // als er gesubmit is
  19. if($_POST['bedrag'] <= $MEMBER->geld && preg_match('/^[0-9]+$/',$_POST['bedrag']) && $_POST['bedrag'] > 0) {
  20. // controles
  21. $bedrag = $_POST['bedrag']; // bedrag
  22. $aan = $_POST['aan']; // aan wie
  23. mysql_query("UPDATE leden SET geld=geld-'".$bedrag."' WHERE gebruikersnaam = '$MEMBER->gebruikersnaam'");
  24. mysql_query("UPDATE leden SET geld= geld+'".$bedrag."' WHERE gebruikersnaam = '$aan'");
  25. echo "Het bedrag € <b>". $bedrag .",-</b> is overgemaakt naar ". $aan ."!";
  26.  
  27. } else {
  28. echo "Zoveel geld heb je niet, zorg eerst eens dat je die € <b>". $bedrag .",-</b> hebt!";
  29.  
  30. }} else {
  31. <table>
  32. <tr><td width=100>Portomonnee:</td><td>€ <b>". $MEMBER->geld .",-</b></td></tr>
  33. </table>
  34. <form method='post'>
  35. <table>
  36. <tr><td>Aan:</td><td><input type='text' name='aan' maxlength='50'></td></tr>
  37. <tr><td>Bedrag:</td><td><input type='text' maxlength='9' name='bedrag'></td></tr>
  38. <tr><td></td><td><input type='submit' name='submit' value='Doneer'></td></tr>
  39. </table></form>";
  40. }} else {
  41. echo "Het is niet mogelijk om gebruik te maken van deze pagina, als je niet bent ingelogd!";
  42. }
  43. ?>


Alleen kan er ook staan : Zoveel geld heb je niet, zorg eerst eens dat je die € Peter,- hebt!
Offline Mokka - 05/05/2005 20:50
Avatar van Mokka Onbekend Topic closed!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.29s