IF word niet uitgevoerd. Weet iemand waarom?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Bernardo

Bernardo

12/01/2006 19:54:00
Quote Anchor link
Met dit script kunnen mensen iets kopen, er word geld van hun 'rekening' afgehaald. Dit werkt allemaal.

Nu wou ik er in bouwen dat als ze niet genoeg geld hebben op hun rekening, dat ze dan ook niets kunnen kopen.. :S Hij geeft de vars wel goed neer.

Het gaat om dit IFje onderaan: }elseif($tot > $geld){

Quote:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
include "../safe.php";
?>

<link rel="stylesheet" href="../style.css" type="text/css">
<h1>Bix kopen</h1>
<p>
Instructies: Hier kun je de gegevens van de paarden wijzigen. Als je de eigenaar niet wilt wijzigen, kun je het laten zo als het is.
<p>
<hr>
<p>
<form method="get" action="bix_kopen2.php">
<table>
<tr>
<td><select name="voer_id" size="1" style="width: 145px;">
<option value="">&nbsp;</option>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?
      $sql
= "SELECT id, voer_naam FROM voer ORDER BY voer_naam ASC";
      $query = mysql_query($sql);
      while($rij = mysql_fetch_object($query)){
      $id = htmlspecialchars($rij->id);
      $voer_naam = htmlspecialchars($rij->voer_naam);
      echo "<option value=\"".$id."\">".$voer_naam."</option>\n";
      }

            ?>
</select>
</td>
<td><input type="submit" value="Voer kiezen!" /></td>
</tr>
</table>
</form>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
if(isset($_GET['voer_id'])) {    
  if(is_numeric($_GET['voer_id'])) {
    $voer_id = $_GET['voer_id'];
    $sql = "SELECT * FROM voer WHERE id='$voer_id'";
  $query = mysql_query($sql);
  $rij = mysql_fetch_object($query);
  $voer_naam = htmlspecialchars($rij->voer_naam);
    $voer_prijs = htmlspecialchars($rij->voer_prijs);
    $voer_voorraad = htmlspecialchars($rij->voer_voorraad);
     ?>

<form method="post" action="bix_kopen2.php?voer_id=
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?= $_GET['voer_id'] ?>
">
<table>
<tr>
<td>Soort voer:</td>
<td>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo"$voer_naam"; ?>
</td>
</tr>
<tr>
<td>Prijs per kilogram:</td>
<td>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo"$voer_prijs"; ?>
€</td>
</tr>
<tr>
<td>Hoeveelheid:</td>
<td><input type=text name=aantal size=20></td>
</tr>
<tr>
<td></td><td><input type="submit" name="submit" value="Kopen!" /></td>
</tr>
</table>
</form>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
     }
}

?>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$user_id
= $_SESSION['user_id'];

$sqlv = "SELECT * FROM gebruikers WHERE id='$user_id'";
$queryv = mysql_query($sqlv);
$rijv = mysql_fetch_object($queryv);
$geld = htmlspecialchars($rijv->geld);
$aantal = $_POST['aantal'];
if(isset($_POST[submit])){
$tot = $voer_prijs*$aantal;
    if($_POST['aantal'] == ""){
      echo "Je moet wel aangeven hoeveel kilogram bix je wil kopen!";
  }
elseif($tot > $geld){
         mysql_query("UPDATE gebruikers SET $voer_naam=$voer_naam+'$aantal' WHERE id='$user_id'") or die(mysql_error());
         mysql_query("UPDATE gebruikers SET geld=geld-'$tot' WHERE id='$user_id'") or die(mysql_error());
         echo "Je hebt succesvol $aantal kilogram $voer_naam gekocht!";
    }
else{
    echo "Je hebt niet genoeg geld!";
    }    
}

?>
Gewijzigd op 12/01/2006 19:56:00 door Bernardo
 
PHP hulp

PHP hulp

29/03/2024 02:55:16
 
Arjan Kapteijn

Arjan Kapteijn

12/01/2006 20:12:00
Quote Anchor link
Echt netjes is het niet... als de query mislukt krijg je alsnog een 'succes' melding..

if(empty($_POST['aantal'])){
echo 'Ongeldige waarde';
exit
}

if($tot > $geld){
blabla
}

Gebruik ook eens wat issets, om te kijken of er uberhoud een waarde is ingevuld. En beveilig je input want ik kan nu je hele database leeghalen (hint: mysql_real_escape_string).
 
Bernardo

Bernardo

12/01/2006 20:42:00
Quote Anchor link
ok dus als ik die IFjes zo zou maken moet het gaan werken...? ok ..

sja .. ben net begonnen, weet nog niet zoveel van PHP..

kgaat proberen ..! alvast bedankt! :D
 
Burdy

Burdy

12/01/2006 20:43:00
Quote Anchor link
Hier zit in ieder geval ook een foutje in:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
  mysql_query("UPDATE gebruikers SET $voer_naam=$voer_naam+'$aantal' WHERE id='$user_id'") or die(mysql_error());
  mysql_query("UPDATE gebruikers SET geld=geld-'$tot' WHERE id='$user_id'") ?>

?>

Maak daar eens het volgende van:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
  mysql_query("UPDATE gebruikers SET
  voer_naam = voer_naam + $aantal,
  geld = geld - $tot
  WHERE id = $user_id"
) or die(mysql_error());
?>


Overigens, het veld met de naam 'voer_naam' ophogen met een aantal?
Je zou de benaming van de velden eens na moeten lopen en ze goed benoemen.
 
Arjan Kapteijn

Arjan Kapteijn

12/01/2006 20:45:00
Quote Anchor link
En haal die variabelen buiten de quotes!
 
Bernardo

Bernardo

12/01/2006 20:52:00
Quote Anchor link
oké ... dus variabelen hoeven niet tussen ' te staan .... ok nouja .. ik zal het nu even proberen .. :D
 
Bernardo

Bernardo

12/01/2006 21:40:00
Quote Anchor link
Ok hij doet het nu! Bedankt.. en ik wist niet dat je de query's zo aan mekaar kon knopen .. :D
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.