login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Klikken op een plaatje

Offline MikoB - 05/07/2007 00:03
Avatar van MikoBNieuw lid Geachtte lezers,

Voor mijn eigen spel ben ik een missie systeem aan het maken. Ik maak hierbij gebruik van 3 plaatjes. Elk plaatje moet klikbaar worden en in hetzelfde script een mysql_query doen, mijn kennis van php is niet erg groot vooral de basis. Ik heb het zelf geprobeerd maar dit mislukte.

Met vriendelijke groet,

MikoB

7 antwoorden

Gesponsorde links
Offline BramBo - 05/07/2007 00:05
Avatar van BramBo JS gevorderde wat heb je? wat ging er fout etc. etc. ? we kunnen niet alles voor je doen 
Offline MikoB - 05/07/2007 00:08 (laatste wijziging 05/07/2007 00:12)
Avatar van MikoB Nieuw lid http://www.plaatscode.be/5868/

Dat heb ik. Het is weinig, omdat ik niet weet hoe het precies te maken.
Offline BramBo - 05/07/2007 00:25 (laatste wijziging 05/07/2007 00:29)
Avatar van BramBo JS gevorderde mwa het is een begin,

wat vaak int begin fout gaat is dat je php en html met elkaar gaat verweven. Zoals je waarschijnlijk wel weet dien je een link te gebruiken om een andere pagina te openen en dus ook een waarde naar php te sturen. Er zijn andere manieren om te doen (bijv. dmv javascript (RPC of AJAX) of simpel weg js door php generen) maar daar zal ik niet op in gaan.

een simpele manier om je manier om je probleem op te lossen is om links van je plaatjes te maken dus <a href='bestand.php?waarde=1'><img...></a>

in je php file vraag je de waarde dan op dmv $_GET['waarde'].
dus :
  1. //bestand.php
  2. <?php
  3. if(($_GET['waarde'] == '1')) { echo "Goed gedaan"; }
  4. else { echo "fout antwoord."; }

de waarde 1 moet je natuurlijk dan ophalen uit de database. Maar hierover is genoeg te vinden onder de tutorials.

Zie net een soort gelijke vraag:
http://www.site...aangeklikt
Offline Godlord - 05/07/2007 00:32
Avatar van Godlord PHP gevorderde BramBo die manier is zeer onveilig, even de get waarde aanpassen en je kan zo het juiste antwoord vinden dan dus ik zou daar sowieso al een check opmaken en AJAX is niet echt perse nodig.

Als je echt een beetje random wilt werken ga je gebruik maken van rand().

  1. <?php
  2. if (isset($_GET['kluis']) && is_num($_GET['kluis'])) {
  3. $kluis = $_GET['kluis'];
  4. } else {
  5. // gebruiker heeft geen kluis ingevoerd.
  6. exit();
  7. }
  8. $num = rand(1, 3);
  9. if ($kluis == $num) {
  10. echo 'U heeft de goede kluis gevonden.';
  11. } else {
  12. echo 'Dit is de foutieve kluis, probeer het opnieuw.';
  13. }
  14. ?>
Offline BramBo - 05/07/2007 00:56 (laatste wijziging 05/07/2007 00:57)
Avatar van BramBo JS gevorderde Juist ja, ik probeer een idee over te brengen. Als je het dicht wil spijkeren moet je er sowieso voor zorgen dat ze de pagina maar een keer kunnen benaderen anders kunnen ze blijven klikken of Get waardes blijven veranderen, ook wanneer je een randomized getal gebruikt. Hoewel natuurlijk een randomized getal beter is.

Om ontopic te blijven... Je kan dus bijvoorbeeld door een cookie, session of database query vaststellen dat de gebruiken de pagina reeds heeft geopened. Zelf zou ik een combinatie van session en database gebruiken. Om verder te gaan met Godlords code.

  1. <?php
  2. if($_SESSION['kluisGeopenend'] == true) exit;
  3.  
  4. if (isset($_GET['kluis']) && is_num($_GET['kluis'])) {
  5. $kluis = $_GET['kluis'];
  6. $_SESSION['kluisGeopenend'] = true;
  7. } else {
  8. // gebruiker heeft geen kluis ingevoerd.
  9. exit();
  10. }
  11. $num = rand(1, 3);
  12. if ($kluis == $num ) {
  13. echo 'U heeft de goede kluis gevonden.';
  14. } else {
  15. echo 'Dit is de foutieve kluis, probeer het opnieuw.';
  16. }
  17. ?>
Offline Godlord - 05/07/2007 01:05 (laatste wijziging 05/07/2007 01:09)
Avatar van Godlord PHP gevorderde Eigenlijk zou ik dan gewoon het IP-adres opslaan in een database of juist de accountnaam als dat er is. Dan kan je in het begin van de pagina kijken of de accountnaam of het IP-adres in de database zit en dan kan je dus kijken of die persoon er dus al eens is geweest op die pagina. Dat doe je dus met INSERT INTO en SELECT. Als je tenminste mySQL hebt.
  1. <?php
  2. mysql_connect('host', 'username', 'password');
  3. mysql_select_db('database');
  4. $ip = $_SERVER['REMOTE_ADDR'];
  5. $result = mysql_query("SELECT * FROM kluis WHERE ip = '".$ip."'");
  6. $count = mysql_num_row($result);
  7. if ($count > 0) {
  8. exit(); // pagina is al bezocht.
  9. }
  10. if (isset($_GET['kluis']) && is_num($_GET['kluis'])) {
  11. $kluis = $_GET['kluis'];
  12. mysql_query("INSERT INTO kluis (ip, bezocht) VALUES ('".$ip."', 1)") or die(mysql_error());
  13. } else {
  14. // gebruiker heeft geen kluis ingevoerd.
  15. exit();
  16. }
  17. $num = rand(1, 3);
  18. if ($kluis == $num) {
  19. echo 'U heeft de goede kluis gevonden.';
  20. } else {
  21. echo 'Dit is de foutieve kluis, probeer het opnieuw.';
  22. }
  23. ?>


Edit
Je kan ook sessies gebruiken maar daar heb ik altijd nare tijden mee gehad . Tenzij er een account is zou ik het dus op deze manier doen.
Offline MikoB - 05/07/2007 14:04
Avatar van MikoB Nieuw lid Jullie gaan ff de verkeerde kant op.
De middelste is een specifiek kluisje wat geklikt moet worden om zo een beloning op te halen, dus geen random jullie maken het dus ietsje moeilijker dan het is 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.207s