Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: keksin tarkistus

abina [18.11.2003 11:21:46]

#

Tuota noin! mitenkäs onnistuisi vaikka if lauseella tarkistaminen onko keksi olemassa?
$HTTP_COOKIE_VARS tällä eikös se onnistu mutta en tiedä miten laitan tuohon if lauseeseen sen "jos siellä on jotain" kohdan. vaikea selittää mutta kertokaa jokuvaihtoehto. kiitos suuresti..

Antti Laaksonen [18.11.2003 11:27:44]

#

Itse tapaan tarkistaa, onko muuttuja erisuuri kuin tyhjä merkkijono (kun kyseessä on evästeet).

<?php
if ($muuttuja <> "") {
   echo "On siellä jotain.";
}
?>

Mutta PHP:ssä on myös oma funktio: isset(muuttuja) on tosi, jos muuttujalle on annettu arvo.

<?php
if (isset($muuttuja)) {
   echo "On siellä jotain.";
}
?>

abina [18.11.2003 12:10:24]

#

onkos keksiin mahdollista laittaa lukua? koska olen tekemässä todella yksinkertaista verkkokauppa sivua. ja ajattelin että yhdessä keksissä kulkisi luku joka aina kun laittaa esim. näitä paitoja haluan 2 kappaletta niin se luku aina lisääntyy yhdellä. vai mitenkä voisin välttää sen että jos joku tilaa esim. ensiksi paitaa 1 s-kokoisia 3 kappaletta ja sen jälkeen paitaa 1 m-kokoisia 1 kappaleen. niin senhän on lisättävä tämän tilauksen tiedot erinimiseen keksiin muuten se laittaa ne tuon ensimmäisen tilauksen päälle. joten aattelin että jos siellä yhdessä keksissä juoksisi luku ja jonka laittaisi sen lisäämään aina sen keksin nimen alkuun. vai kannattaako ylipäätänsä tämmöisessä verkkokaupassa tilauksien tiedot lisätä kekseihin vai onko parempaa vaihtoehtoa tälle?

tulipas taas selitettyä todella sekavasti mutta toivottavasti ymmärsitte.

arcatan [18.11.2003 12:34:52]

#

No empähän saanut nyt selostuksestasi mitään selvää. Mutta ensinnäkin itse käyttäisin sessioita eli istuntoja enkä keksejä (tosin sessio-id usein lähetetään keksinä). Pieni esimerkkikoodi:

<?php
  // Tehdään nyt taulukko jossa on tuotteet.
  // Oikeasti kannattaisi sijoittaa nämä tiedostoon,
  // jolloin ylläpito helppottuisi.
  $tavarat[] = array("t-paita, S", 10);
  $tavarat[] = array("t-paita, M", 10);
  $tavarat[] = array("t-paita, L", 10);
  $tavarat[] = array("akkurotta", 1337);
  $tavarat[] = array("purskepallopää, vihreä", 707);
  $tavarat[] = array("purskepallopää, sininen", 707);
  $tavarat[] = array("ovimarsu", 2003);

  // aloitetaan istunto
  session_start();
?>
<HTML>
<BODY>
<?php
  if ($_GET['do'] == 'tyhjenna') {
    // jos saadaan sopiva komento, tyhjennetään kori
    session_unset();
    echo "<P>Kori tyhjennetty</P>";
  }
  elseif ($_GET['do'] == 'lisaa') {
    // koriin voidaan lisätä
    $_SESSION['kori'][$_GET['id']]++;
  }
  elseif ($_GET['do'] == 'vahenna') {
    // korista voidaan ottaa pois
    if ($_SESSION['kori'][$_GET['id']] > 0)$_SESSION['kori'][$_GET['id']]--;
  }

  // "tyhjennysnappi"
  echo "<P><A HREF=\"" . $_SERVER['PHP_SELF'] . "?do=tyhjenna\">Tyhjennä ostoskori</A></P>";

  $summa = 0;

  // HTML-tauhkaa
  echo "<TABLE BORDER=\"1\">\n";
  echo "<TR><TD>id</TD><TD>nimi</TD><TD>à</TD><TD>maara</TD>";
  echo "<TD>yht</TD><TD COLSPAN=\"2\">&nbsp;</TD></TR>";

  // käydään kaikki tavarat läpi ja näytetään ne
  // ihan normaalia PHP/HTML-tauhkaa
  foreach ($tavarat as $avain => $sisalto) {
    echo "<tr>";
    echo "<td>$avain</td>";
    echo "<td>" . $sisalto[0] . "</td>";
    echo "<td>" . $sisalto[1] . " &euro;</td>";
    echo "<td>" . $_SESSION['kori'][$avain] . "</td>";
    echo "<td>" . ($_SESSION['kori'][$avain] * $sisalto[1]) . " &euro;</td>";
    echo "<td><A HREF=\"" . $_SERVER['PHP_SELF'] . "?do=lisaa&id=$avain\">+</A></td>";
    echo "<td><A HREF=\"" . $_SERVER['PHP_SELF'] . "?do=vahenna&id=$avain\">-</A></td>";

    // Lasketaan yhteissummaa
    $summa += ($_SESSION['kori'][$avain] * $sisalto[1]);
  }
  echo "<TR><TD></TD><TD>Yhteensä:</TD><TD></TD><TD></TD>";
  echo "<TD>$summa &euro;</TD><TD COLSPAN=\"2\"><TD></TR>";
  echo "</TABLE>\n";
?>
</BODY>
</HTML>

Istunnoista ja kekseistä lisää:
https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=phpj7

edit: koodia korjailin. Koodia voi kokeilla osoitteessa: http://dsword.se8.org/grafcnt/kauppa.php/
edit2: kirjoitusvirheitä korjailin. Tuli oikeastaan keskikokoinen esimerkkikoodi :)
edit3: Yhteensä-rivi lisätty
edit4: Ai niin! Keksiin on mahdollista laittaa luku.

abina [18.11.2003 13:20:29]

#

WAU! kiitos suuresti! en edes odottanut saavani näin paljon apua mutta tuostahan on apua todella paljon!! kiitos suuresti!

trinit [18.11.2003 16:45:42]

#

lainaus:

mitenkäs onnistuisi vaikka if lauseella tarkistaminen onko keksi olemassa?
$HTTP_COOKIE_VARS tällä eikös se onnistu mutta en tiedä miten laitan tuohon if lauseeseen sen "jos siellä on jotain" kohdan. vaikea selittää mutta kertokaa jokuvaihtoehto.

FAQ:ssa on tietoa evästeistä jonkin verran: https://www.ohjelmointiputka.net/faq.php?sivu=3#22

Ja evästeen olemassaolon voi tarkistaa näin:

<?php
    if (isset($_COOKIE['evasteen_nimi'])) { echo "Eväste on asetettu"; }
    else { echo "Evästettä ei ole asetettu"; }
?>

Vastaus

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

Tietoa sivustosta