Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Ennätyslista skripti ei toimi, neuvoja?

Clacier [12.02.2010 17:57:14]

#

peli ei ole itse tekemäni, vaan se löytyy myös täältä ohjelmointiputkasta kai.
yritin liittää siihen ennätylistaa, mutta se siis failaa kun tiedostoon kirjoittaessa pistää aina rahamääräksi sen oletusrahamäärän, 20e.

neuvoja / korjauksia(?)

<?php
session_start();
$rahat = $_POST['rahat'];
$panos = $_POST['panos'];
$rulla0= $_POST['rulla0'];
$rulla1= $_POST['rulla1'];
$rulla2= $_POST['rulla2'];
if(!isset($rahat)) {
        $rahat = 20;
}
$rivi = explode("|",$_POST['rullat']);
if ($rulla0 == "" && $rulla1 == "" && $rulla2 == "") {$lukitus = "false";}
if (isset($_GET[peli])) {
if($rahat==0) {exit("Rahat loppuivat, <a href=jokeri.php>aloita alusta</a>!");}
if ($panos == "--VALITSE--") {exit("Panos olisi hyvä valita!");}
if($panos>$rahat) {
        exit("Liian iso panos, rahat ei riitä!");
}
}
$a = "jokeri";
$b = "a";
$c = "k";
$d = "q";
$e = "j";
$f = "10";
$rulla[0] = Array($b,$f,$c,$a,$f,$d,$e,$b,$f,$c,$e,$d,$f,$d,$e,$a,$f,$e,$d,$e,$f,$d,$e,$c);
$rulla[1] = Array($e,$f,$c,$d,$b,$f,$e,$a,$f,$c,$f,$d,$e,$b,$f,$d,$e,$d,$f,$a,$e,$b,$f,$d);
$rulla[2] = Array($f,$b,$e,$b,$f,$c,$e,$d,$f,$c,$e,$a,$f,$d,$c,$e,$b,$f,$d,$e,$d,$f,$a,$e);
if ($rulla0 != 1) {$rivi[0] = $rulla[0][rand(0,23)];}
if ($rulla1 != 1) {$rivi[1] = $rulla[1][rand(0,23)];}
if ($rulla2 != 1) {$rivi[2] = $rulla[2][rand(0,23)];}
if (isset($_GET[peli])) {
if($rivi[0] == $rivi[1] && $rivi[1] == $rivi[2] && $rivi[0] == "a") {
        $voitto = $panos*20;
}
elseif($rivi[0] == $rivi[1] && $rivi[1] == $rivi[2] && $rivi[0] == "k") {
        $voitto = $panos*20;
}
elseif($rivi[0] == $rivi[1] && $rivi[1] == $rivi[2] && $rivi[0] == "q") {
        $voitto = $panos*10;
}
elseif($rivi[0] == $rivi[1] && $rivi[0] == $rivi[2] && $rivi[1] == $rivi[2]) {
        $voitto = $panos*5;
}
elseif($rivi[0] == $rivi[1] && $rivi[1] == $rivi[2] && $rivi[0] == "j") {
        $voitto = $panos*4;
}
elseif($rivi[0] == $rivi[1] && $rivi[1] == $rivi[2] && $rivi[0] == "10") {
        $voitto = $panos*4;
}
else {
        $havisit = $panos;
}
for($i=0;$i<3;$i++) {
if($rivi[$i] == $a) {
        $voitto = $panos*2;
}
}
$rahat-=$panos;
$rahat+=$voitto;
}
?>
<form method="post" action="?peli=1">
<table border="0"><tr>
<?
for($i=0;$i<3;$i++) {
        echo "<td><img src=\"$rivi[$i].png\"></td>\n";
}
?>
</tr>
<?
for($i=0;$i<3;$i++) {
        if ($lukitus == "false" && !isset($voitto) && isset($_GET['peli'])) {
                echo "<td><input type=\"checkbox\" name=\"rulla" . $i . "\" value=\"1\">";
                } else {
                echo "<td><input type=\"checkbox\" name=\"rulla" . $i . "\" value=\"1\" disabled=\"disabled\">";
                }
                echo "<small>lukitse</small></td>\n";
                }
?>
</tr>
</table>
<br>
<?
echo "<input type=\"hidden\" value=\"$rahat\" name=\"rahat\">\n";
echo "<input type=\"hidden\" value=\"$rivi[0]|$rivi[1]|$rivi[2]\" name=\"rullat\">\n";
echo "Panos: <select name=\"panos\">\n";

if(isset($panos)) {
        echo "<option value=\"$panos\">$panos</option>\n";
}
else {
        echo "<option value=\"--VALITSE--\">--VALITSE--</option>\n";
}
?>
<option value="0.20">0.20</option>
<option value="0.40">0.40</option>
<option value="0.60">0.60</option>
<option value="0.80">0.80</option>
<option value="1.00">1.00</option>
<option value="2.00">2.00</option>
<option value="3.00">3.00</option>
</select>
<br>
Sinulla on rahaa: <? echo $rahat; ?><br>
<a href="?savemoneys=true">Tallenna ennätyslistalle</a><br><br>
<br>
<input type="submit" value="Pelaa">
<br>
<?
//Tulostetaan voitto/häviö
if (isset($_GET['peli'])) {
if(isset($voitto)) {
echo "<br>Voitit " . $voitto . "€!";
} else {
echo "<br>Hävisit " . $havisit . "€!";
}
}
if($_GET['savemoneys'] == "true"){
  $nick = $_SESSION['tun'];
  $aika = date('Y-m-d - H:i:s');
  $ip = $_SERVER['REMOTE_ADDR'];
  $logit = "$nick $rahat <!--$ip $aika-->";
  $fp = fopen("saves.txt", "a+");
  fwrite($fp, $logit);
  fclose($fp);
  header("location: ok.php?moneys=saved");
}
?>

sen verran taidan ymmärtää, että tuossa kirjoitusvaiheessa se hakee ton muuttujan $rahat tuolta ylhäältä missä se on määriteltynä, eikä osaa päivittää sitä nykyistä rahatilannetta. jotenkin.

Clacier [12.02.2010 21:11:07]

#

jotain apujaa, camoon..?

vai olisko järkevämpää toteuttaa ennätyslista jollain toisella tavalla? millaisella?

Grez [12.02.2010 21:56:55]

#

Alkuperäisessä pelissä rahat välitetään joka kierroksella POST-lomakkeen rahat-nimisessä kentässä.

Tuo "tallenna rahat" on linkki ja näin ollen ihan normaali GET-pyyntö, joten siinä ei voi välittää POST-kenttää ja näin ollen rahat-tieto katoaa kun sitä klikataan.

Jos jotain ennätyslistaa haluaa pitää, niin rahat olisi ylipäätään järkevämpi laittaa talteen palvelimen päässä, esimerkiksi sessio-muuttujaan, koska nythän käyttäjä voi äärimmäisen helposti määritellä itselleen ziljoona rahaa.

Clacier [12.02.2010 22:03:21]

#

jee, vielä kun osaisi.

Grez [12.02.2010 22:20:51]

#

Ei oo paha rasti opetella
https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=phpj

Clacier [25.02.2010 22:44:51]

#

tein omanlaisen ratkaisun:

<?php
session_start();
$rahat = $_POST['rahat'];
$panos = $_POST['panos'];
$rulla0= $_POST['rulla0'];
$rulla1= $_POST['rulla1'];
$rulla2= $_POST['rulla2'];
if(!isset($rahat)) {
        $rahat = 20;
}
$rivi = explode("|",$_POST['rullat']);
if ($rulla0 == "" && $rulla1 == "" && $rulla2 == "") {$lukitus = "false";}
if (isset($_GET[peli])) {
if($rahat==0) {exit("Rahat loppuivat, <a href=jokeri.php>aloita alusta</a>!");}
if ($panos == "--VALITSE--") {exit("Panos olisi hyvä valita!");}
if($panos>$rahat) {
        exit("Liian iso panos, rahat ei riitä!");
}
}
$a = "jokeri";
$b = "a";
$c = "k";
$d = "q";
$e = "j";
$f = "10";
$rulla[0] = Array($b,$f,$c,$a,$f,$d,$e,$b,$f,$c,$e,$d,$f,$d,$e,$a,$f,$e,$d,$e,$f,$d,$e,$c);
$rulla[1] = Array($e,$f,$c,$d,$b,$f,$e,$a,$f,$c,$f,$d,$e,$b,$f,$d,$e,$d,$f,$a,$e,$b,$f,$d);
$rulla[2] = Array($f,$b,$e,$b,$f,$c,$e,$d,$f,$c,$e,$a,$f,$d,$c,$e,$b,$f,$d,$e,$d,$f,$a,$e);
if ($rulla0 != 1) {$rivi[0] = $rulla[0][rand(0,23)];}
if ($rulla1 != 1) {$rivi[1] = $rulla[1][rand(0,23)];}
if ($rulla2 != 1) {$rivi[2] = $rulla[2][rand(0,23)];}
if (isset($_GET[peli])) {
if($rivi[0] == $rivi[1] && $rivi[1] == $rivi[2] && $rivi[0] == "a") {
        $voitto = $panos*20;
}
elseif($rivi[0] == $rivi[1] && $rivi[1] == $rivi[2] && $rivi[0] == "k") {
        $voitto = $panos*20;
}
elseif($rivi[0] == $rivi[1] && $rivi[1] == $rivi[2] && $rivi[0] == "q") {
        $voitto = $panos*10;
}
elseif($rivi[0] == $rivi[1] && $rivi[0] == $rivi[2] && $rivi[1] == $rivi[2]) {
        $voitto = $panos*5;
}
elseif($rivi[0] == $rivi[1] && $rivi[1] == $rivi[2] && $rivi[0] == "j") {
        $voitto = $panos*4;
}
elseif($rivi[0] == $rivi[1] && $rivi[1] == $rivi[2] && $rivi[0] == "10") {
        $voitto = $panos*4;
}
else {
        $havisit = $panos;
}
for($i=0;$i<3;$i++) {
if($rivi[$i] == $a) {
        $voitto = $panos*2;
}
}
$rahat-=$panos;
$rahat+=$voitto;
}
?>
<form method="post" action="?peli=1">
<table border="0"><tr>
<?
for($i=0;$i<3;$i++) {
        echo "<td><img src=\"$rivi[$i].png\"></td>\n";
}
?>
</tr>
<?
for($i=0;$i<3;$i++) {
        if ($lukitus == "false" && !isset($voitto) && isset($_GET['peli'])) {
                echo "<td><input type=\"checkbox\" name=\"rulla" . $i . "\" value=\"1\">";
                } else {
                echo "<td><input type=\"checkbox\" name=\"rulla" . $i . "\" value=\"1\" disabled=\"disabled\">";
                }
                echo "<small>lukitse</small></td>\n";
                }
?>
</tr>
</table>
<br>
<?
echo "<input type=\"hidden\" value=\"$rahat\" name=\"rahat\">\n";
echo "<input type=\"hidden\" value=\"$rivi[0]|$rivi[1]|$rivi[2]\" name=\"rullat\">\n";
echo "Panos: <select name=\"panos\">\n";

if(isset($panos)) {
        echo "<option value=\"$panos\">$panos</option>\n";
}
else {
        echo "<option value=\"--VALITSE--\">--VALITSE--</option>\n";
}
?>
<option value="0.20">0.20</option>
<option value="0.40">0.40</option>
<option value="0.60">0.60</option>
<option value="0.80">0.80</option>
<option value="1.00">1.00</option>
<option value="2.00">2.00</option>
<option value="3.00">3.00</option>
</select>
<br>
Sinulla on rahaa: <? echo $rahat; ?><br>
<input type="submit" value="Pelaa">
<br><br></form>
<form method="post" action="jokeri.php?save=moneys&rahat=<?php echo $rahat; ?>">
<input type="submit" name="submit" value="Tallenna ennätyslistalle!"></form>
<?
if (isset($_GET['peli'])) {
if(isset($voitto)) {
echo "<br>Voitit " . $voitto . "€!";
} else {
echo "<br>Hävisit " . $havisit . "€!";
}
}
if($_GET['save'] == "moneys"){
  $nick = $_SESSION['tun'];
  $rahat = $_REQUEST['rahat'];
  $aika = date('Y-m-d - H:i:s');
  $ip = $_SERVER['REMOTE_ADDR'];
  $logit = "$rahat ,<a href=pelaaja.php?nimimerkki=$nick>$nick</a><!--$ip $aika--><br>\n";
  $fp = fopen("saves.txt", "a+");
  fwrite($fp, $logit);
  fclose($fp);
  header("location: ok.php?moneys=saved");
}
?>

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta