empty en isset zijn niet helemaal elkaars tegenpolen. Een variabele kan best een waarde hebben (isset) en toch leeg zijn (empty).quote:Op zaterdag 10 januari 2009 17:12 schreef Kerol het volgende:
Bij een IF Isset word gekeken of de variabele die je aangeeft (in jouw geval $value) een waarde heeft.
Dit kun je bijvoorbeeld gebruiken om te controleren of iemand op de Submit knop heeft gedrukt o.i.d.
Ik gebruik liever empty.
1 2 3 4 5 6 7 8 9 | $a = 'a random string'; $b = 0; if ( $a == true && $b == false && $a == $b ) { die ( 'The universe is broken' ); } ?> |
quote:Op zaterdag 10 januari 2009 16:35 schreef cablegunmaster het volgende:
ik heb nu alles werkend behalve het toevoegen.
hoe krijg je dat een form submit en dan insert?
ik zit nu namelijk met dat hij niet wil toevoegen.
hij kan de database wel connecten.
<?php
if (isset($_POST['submit'])){
<inc 'connect.php' >
$submit = "insert into reis
(bestemming )
values ( ' ".strip_tags($_POST['bestemming']." ' )" ;
$voegtoe = mysql_query($submit) or die (mysql_error ());
} else {
?>
<html>
<body>
<form action="<?php echo($_server["php_self"]);?> method="post">
<input type="text" name="bestemming">
<input type ="submit" name="submit" value="verzenden">
<input type="reset" name="reset" value="leegmaken">
</form>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | if ((int)0) { echo " int 0 is true "; } else { echo " int 0 is false "; } if ((string)"0") { echo " string 0 is true "; } else { echo " string 0 is false "; } if ((string)"wat dan ook maar niet 0") { echo " n.e. string is true "; } else { echo " n.e. string is false "; } if ((string)"watdanook" == (int)0) { echo " n.e. string is equal to int 0 "; } else { echo " n.e. string is not equal to int 0 "; } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | var_dump(0 == "a"); // 0 == 0 -> true var_dump("1" == "01"); // 1 == 1 -> true var_dump("1" == "1e0"); // 1 == 1 -> true switch ("a") { case 0: echo "0"; break; case "a": // never reached because "a" is already matched with 0 echo "a"; break; } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | if(isset($_POST['code'])) { $code = preg_replace("/[^a-zA-Z0-9s]/", '', strtolower(trim($_POST['code']))); $result = $db->query("SELECT iets FROM tabel WHERE code = '". $db->real_escape_string($code) ."';"); if($result->num_rows) { // doe iets header('Location: http://het.is.gelukt.nl/pagina.html'); exit; } else { echo 'Je code is onjuist.'; exit; } echo 'Oké... wat nu?'; } ?> |
Dan zal in dat proces wel iets fout zijn gegaan. Exit vergeten na de location-header ofzo.quote:Op zaterdag 10 januari 2009 19:29 schreef HuHu het volgende:
PS: uiteraard had ik er wat anders/netjes van gemaakt, maar het gaat om het idee. Dit is echt het meest vage wat ik tot nu toe met PHP ben tegen gekomen.
Jawel, als je error_reporting op E_ALL zet, zal je zien dat php een warning geeft dat je een ongedefinieerde variable gebruikt als je if($value) gebruikt.quote:Op zaterdag 10 januari 2009 17:03 schreef Likkende_Lassie het volgende:
isset... gebruiken jullie die nou altijd? Ik vind het echt een rare functie..snap hem wel, maar zonder isset, heb je toch hetzelfde?
Bijvoorbeeld:
if(ifset($value)){
}
tegen
if($value){
}
geen verschil toch?
1 2 3 4 5 6 7 8 | $query = "SELECT COUNT(*) FROM members WHERE username='".$myusername."' AND password='".$password."'"; $result = mysql_query($query); $rowcount = mysql_num_rows($result); // als er een resultaat is.. (dus groter dan 0) if($rowcount > 0) ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | error_reporting(E_ALL); mysql_connect("localhost", "root", "")or die("mysql_error"); mysql_select_db("opdracht1")or die("mysql_error"); if(!empty($_POST)) { // username and password verstuurd uit formulier $myusername=$_POST['username']; $mypassword=$_POST['wachtwoord']; // kleine protectie MySQL injection $myusername = stripslashes($myusername); $mypassword = stripslashes($mypassword); $myusername = mysql_real_escape_string($myusername); $mypassword = mysql_real_escape_string($mypassword); $password = md5($mypassword); // kijk of er een username is met het ingevulde wachtwoord $query = "SELECT COUNT(*) FROM members WHERE username='".$myusername."' AND password='".$password."'"; $result = mysql_query($query); $rowcount = mysql_num_rows($result); // als er een resultaat is.. (dus groter dan 0) if($rowcount > 0) { $user = $_POST["username"]; $wachtwoord = $_POST["wachtwoord"]; $_SESSION['username'] = $user; $_SESSION['wachtwoord'] = $wachtwoord; header("Location: beveiligd.php"); } else { echo "U heeft geen goede combinatie van emailadres en wachtwoord gebruikt."; } } else { echo "U heeft de pagina verkeerd opgeroepen."; } ?> |
Dus ik kan beterquote:Op zondag 11 januari 2009 00:09 schreef GlowMouse het volgende:
count(*) geeft altijd een rijtje terug, namelijk een rij met daarin een getal dat het aantal rijen dat aan WHERE voldoet voorstelt.
1 2 3 | $query = "SELECT `username` FROM `members` WHERE `username`='".$myusername."' AND password='".$password."'"; ?> |
En waarom niet? Nu bekijkt hij toch hoeveel rijen usernames er zijn met de ingevoerde username en password.quote:Op zondag 11 januari 2009 00:19 schreef GlowMouse het volgende:
Nee, je moet niet mysql_num_rows gebruiken.
Eensquote:Op zondag 11 januari 2009 00:26 schreef Kerol het volgende:
[..]
En waarom niet? Nu bekijkt hij toch hoeveel rijen usernames er zijn met de ingevoerde username en password.
Bestaan de ingevoerde username en password in de db? -> Dan zal hij $rowcount = 1 geven. (Groter dan 1 kan ook niet omdat een username uniek is)
Bestaan de ingevoerde username en password niet in de db? -> Dan zal hij $rowcount = 0 geven en zal hij direct door gaan naar de ELSE statement omdat alleen als $rowcount groter dan 0 is hij in die IF terugkomt.
het is gelukt alleen maar een veld aanpassenquote:Op zondag 11 januari 2009 13:22 schreef GlowMouse het volgende:
http://dev.mysql.com/doc/refman/5.1/en/datetime.html
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |