login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Transferlijst script

Offline SomaQan - 25/03/2007 16:57
Avatar van SomaQanPHP beginner naar aanleiding van mij vorige advies topic heb ik wat geprobeert en ik kwam op dit uit

  1. <?php
  2.  
  3. include('config.php');
  4.  
  5. if (isset($_POST['bumpers']))
  6.  
  7. $sql = mysql_query("SELECT * FROM lid WHERE gebruikernaam ='".$_GET['gebruikernaam']."' LIMIT 1") or die(mysql_error());
  8.  
  9. while($show = mysql_fetch_object($sql)) {
  10. $geld = htmlspecialchars($show->geld);
  11. $som = $geld;
  12.  
  13. if($som['num'] > 209)
  14. echo 'Je hebt geen genoeg geld om bumpers tekopen !'
  15. }
  16. else{
  17. echo'Je hebt 1 bumper gekocht';
  18. mysql_query("UPDATE lid SET bumpers = bumpers + 1") or die(mysql_error());
  19. }
  20.  
  21. ?>


Maar ik kwam jammer genoeg op een error uit die ik niet weet te oplossen 

Wie kan mij helpen

Alvast heel erg bedankt ! 

12 antwoorden

Gesponsorde links
Offline Koen - 25/03/2007 17:04
Avatar van Koen PHP expert
  1. echo 'Je hebt geen genoeg geld om bumpers tekopen !';

?
Offline SomaQan - 25/03/2007 17:07
Avatar van SomaQan PHP beginner Hier heb ik niks aan wat bedoel je met dat vragen teken 
Offline JBke - 25/03/2007 17:09
Avatar van JBke PHP gevorderde Je bent je ; aan het einde vergeten das al
Offline Koen - 25/03/2007 17:13
Avatar van Koen PHP expert Ja,
had ik er misschien moeten bijzetten 
Offline SomaQan - 25/03/2007 17:16
Avatar van SomaQan PHP beginner @sliphead toch bedankt 

Maar ik heb nog een probleem als ik op het pagina van het script kom dan laat hij meteen dat ELSE zien in plaats van dat IF eerst te laten zien want hij moet eerst checken of gene genoeg geld bij zich heeft 
Offline Koen - 25/03/2007 17:27
Avatar van Koen PHP expert
  1. <?php
  2.  
  3. include('config.php');
  4.  
  5. if (isset($_POST['bumpers']))
  6. {
  7.  
  8. $sql = mysql_query("SELECT * FROM lid WHERE gebruikernaam ='".$_GET['gebruikernaam']."' LIMIT 1") or die(mysql_error());
  9.  
  10. while($show = mysql_fetch_object($sql)) {
  11. $geld = htmlspecialchars($show->geld);
  12. $som = $geld;
  13.  
  14. if($som['num'] < 209)
  15. {
  16. echo 'Je hebt geen genoeg geld om bumpers tekopen !';
  17. } else {
  18. echo'Je hebt 1 bumper gekocht';
  19. mysql_query("UPDATE lid SET bumpers = bumpers + 1") or die(mysql_error());
  20. }
  21. }
  22. }
  23. ?>

zo dan?
Offline SomaQan - 25/03/2007 17:41
Avatar van SomaQan PHP beginner Bedankt @sliphead je hebt het probleem halve opgelost

Alleen voegt hij nu geen bumpers toe en krijg geen foutmeldingen + ook geen echo meldingen

Mij script ziet er nu zo uit

  1. <?php
  2.  
  3. include('config.php');
  4.  
  5. if( $_SERVER['REQUEST_METHOD'] == 'POST')
  6. {
  7.  
  8. $bumpers = addslashes($_POST['bumpers']);
  9.  
  10. $sql = mysql_query("SELECT * FROM lid WHERE gebruikernaam ='".$_GET['gebruikernaam']."' LIMIT 1") or die(mysql_error());
  11.  
  12. while($show = mysql_fetch_object($sql)) {
  13. $geld = htmlspecialchars($show->geld);
  14. $som = $geld;
  15.  
  16.  
  17.  
  18. if($som['num'] < 209)
  19. {
  20. echo 'Je hebt geen genoeg geld om bumpers tekopen !';
  21. }
  22.  
  23. else {
  24. echo'Je hebt 1 bumper gekocht';
  25. mysql_query("UPDATE lid SET bumpers = bumpers + 1") or die(mysql_error());
  26. }
  27.  
  28. }
  29. }
  30. ?>
  31. <form action="<? echo $PHP_SELF; ?>" method="POST">
  32. <b>Bumpers:</b><input type="radio" name="bumpers"><br />
  33. <br /><input type="submit" name="submit" value="Items Kopen">
  34. </form>


Kan iemand mij helpen ?
Offline Koen - 25/03/2007 17:56 (laatste wijziging 25/03/2007 18:00)
Avatar van Koen PHP expert en als je het zo doet?:
  1. <?php
  2.  
  3. include('config.php');
  4.  
  5. if( $_SERVER['REQUEST_METHOD'] == 'POST')
  6. {
  7.  
  8. $bumpers = addslashes($_POST['bumpers']);
  9.  
  10. $sql = mysql_query("SELECT * FROM lid WHERE gebruikernaam ='".$_GET['gebruikernaam']."' LIMIT 1") or die(mysql_error());
  11.  
  12. while($show = mysql_fetch_object($sql)) {
  13. $geld = htmlspecialchars($show->geld);
  14. $som = $geld;
  15.  
  16.  
  17.  
  18. if($som['num'] < 209)
  19. {
  20. echo 'Je hebt geen genoeg geld om bumpers tekopen !';
  21. }
  22.  
  23. else {
  24. echo 'Je hebt 1 bumper gekocht';
  25. $bumber = htmlspecialchars($show->bumbers);
  26. mysql_query("UPDATE lid SET bumpers = '".$bumber++."' WHERE gebruikernaam ='".$_GET['gebruikernaam']."'") or die(mysql_error());
  27. }
  28.  
  29. }
  30. }
  31. ?>
  32. <form action="<? echo $PHP_SELF; ?>" method="POST">
  33. <b>Bumpers:</b><input type="radio" name="bumpers"><br />
  34. <br /><input type="submit" name="submit" value="Items Kopen">
  35. </form>
Offline timo - 25/03/2007 18:08
Avatar van timo PHP ver gevorderde "Je hebt geen genoeg geld om bumpers te kopen"

staat niet echt prof in een game ofzo (lijkt dat het dat is) als het zulk crappy nl is..
Offline Koen - 25/03/2007 18:17
Avatar van Koen PHP expert Tekst heeft geen belang nu, het is het script dat telt.
Offline SomaQan - 25/03/2007 18:54
Avatar van SomaQan PHP beginner @timo tekst wordt wel later verbetert het gaat nu om het script 
Offline Dark_Paul - 26/03/2007 12:37 (laatste wijziging 26/03/2007 12:48)
Avatar van Dark_Paul PHP ver gevorderde Spring in met tabs, dan zie je meteen waar je accolades bent vergeten (zoals net).
Vertel ons ook even wat de error is die je nu krijgt, dat werkt gemakkelijker.

Edit:
  1. <?php
  2.  
  3. include('config.php');
  4.  
  5. if (isset($_POST['bumpers'])) {
  6.  
  7. $sql = mysql_query("SELECT * FROM lid WHERE gebruikernaam ='".$_GET['gebruikernaam']."' LIMIT 1") or die(mysql_error());
  8.  
  9. while($show = mysql_fetch_object($sql)) {
  10. $geld = htmlspecialchars($show->geld);
  11. $som = $geld;
  12.  
  13. if($som['num'] > 209) {
  14. echo 'Je hebt geen genoeg geld om bumpers tekopen !'
  15. }
  16. else{
  17. echo 'Je hebt 1 bumper gekocht';
  18. mysql_query("UPDATE lid SET bumpers = bumpers + 1") or die(mysql_error());
  19. }
  20. }
  21. }
  22.  
  23. ?>

Qua haakjes zou dit moeten werken, maar dit stukje kan ik niet helemaal begrijpen:
  1. $geld = htmlspecialchars($show->geld);
  2. $som = $geld;
  3.  
  4. if($som['num'] > 209) {

Je zegt $som = $geld, vervolgens ga je verder alsof $som een array is, terwijl $geld al geen array meer is.
Volgens mij bedoel je met dat stukje dit:
  1. if (htmlspecialchars($show->geld) > 209) {
  2. //
  3. }

Verder haal je onnodige dingen op uit je database, wat voor extra serverload zorgt.
Dus
  1. $sql = mysql_query("SELECT * FROM lid WHERE gebruikernaam ='".$_GET['gebruikernaam']."' LIMIT 1")

kan je beter vervangen door:
  1. $sql = mysql_query("SELECT geld FROM lid WHERE gebruikernaam ='".$_GET['gebruikernaam']."' LIMIT 1")

Verder is je While ook overbodig, die kan je dus ook weghalen.

Edit 2:
Ik heb een aantal dingen gewijzigd in je script.
  1. <?php
  2.  
  3. include('config.php');
  4.  
  5. if (isset($_POST['bumpers'])) {
  6. $sql = mysql_query("SELECT geld FROM lid WHERE gebruikersnaam='".$_GET['gebruikersnaam']."' LIMIT 1");
  7.  
  8. $show = mysql_fetch_object($sql);
  9.  
  10. if (htmlspecialchars($show->geld) > 209) {
  11. echo 'Je hebt niet genoeg geld om bumpers te kopen!';
  12. }
  13. else {
  14. echo 'Je hebt 1 bumper gekocht';
  15. mysql_query("UPDATE lid SET bumpers = bumpers + 1 WHERE gebruikersnaam='".$_GET['gebruikersnaam']."' ");
  16. }
  17. }
  18. ?>

Een aantal opmerkinge/veranderingen:
1) Je had bij je update geen WHERE ingevoerd, dus bij iedereen in de tabel 'lid' zou dan 1 bij de bumpers worden opgeteld;
2) Je queries zijn niet veilig, omdat je gebruik maakt van een $_GET-waarde. Het lijkt erop dat je een ledensysteem gebruikt, dan houd je mensen dus ook ingelogd. Dan zou je dus het ID van die persoon in een sessie op kunnen slaan. Zo kan je ook voorkomen dat mensen voor elkaar bumpers kunnen kopen door simpelweg de naam in de url te wijzigen, maar je voorkomt ook SQL-injections via de url.
Als het de bedoeling is dat mensen voor elkaar bumpers kunnen kopen kan dat ook via $_GET, maar is het beter om dan in de url het ID van het lid mee te geven. Getallen zijn gemakkelijk te controleren of het wel echt getallen zijn..
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.284s