01. januar 2008 - 17:52
Der er
9 kommentarer
Tjek om det er tal
Hej, jeg vil have at den skal tjekke på $antal er et tal sådan at hvis det ikke er tal så giver den fejl. En der kan finde fejlen? <? session_start(); include "sql.php"; $username = $_SESSION['username']; if($side=="overforelsel") { $select_over = mysql_query("SELECT * FROM users WHERE(username='$username')"); $row_over = mysql_fetch_array($select_over); echo "<form action='?side=overfor' method='post'> Brugernavn: <input type='text' name='bruger'><br> Antal Credits: <input type='text' name='antal'> <input type='submit' value='Overfør'>"; } if($side=="overfor") { if(empty($bruger) OR empty($antal)) { echo "Du mangler noget!"; } elseif(eregi("[^a-z æøåÆØÅ]",$_POST["antal"])) { $fejl[] = "Dit antal skal være tal!"; }else{ $bruger = $_POST["bruger"]; $antal = $_POST["antal"]; mysql_query("UPDATE users SET credits=credits-$antal WHERE(username='$username')"); mysql_query("UPDATE users SET credits=credits+$antal WHERE(username='$bruger')"); echo "Overført!"; } } ?>
Annonceindlæg fra SuperOffice
01. januar 2008 - 17:58
#1
Den checker vel kun eet tegn ... måske elseif(!eregi("^\d+$",$_POST["antal"])) {
01. januar 2008 - 18:05
#2
01. januar 2008 - 18:17
#3
Nej den tjekker tallet fx. 15 Og hvis det er skrevet et bogstav skulle den gerne give en fejl men det gør den ikke
gf
Nybegynder
01. januar 2008 - 18:23
#4
Hvad med noget i retningen af: if (!ereg("[a-å]", $variabelnavn){ //Det er et tal } else { // Der er et bogstav i } mvh gf
gf
Nybegynder
01. januar 2008 - 18:32
#5
Du kunne jo også lave "snigeren" og dividere med en og tjekke om det giver et helt tal :) mvh gf
01. januar 2008 - 20:21
#6
Brug preg_xxxx() funktionerne - de er bedre, og desuden er ereg_xxx() funktionerne på vej til at blive udfaset af PHP. <? session_start(); include "sql.php"; $username = $_SESSION['username']; if ($side=="overforelsel") { $select_over = mysql_query("SELECT * FROM users WHERE(username='$username')"); $row_over = mysql_fetch_array($select_over); echo "<form action='?side=overfor' method='post'> Brugernavn: <input type='text' name='bruger'><br> Antal Credits: <input type='text' name='antal'> <input type='submit' value='Overfør'>"; } if ($side=="overfor") { if (empty($bruger) OR empty($antal)) { echo "Du mangler noget!"; } elseif (! preg_match("/^$\d+$/", $_POST["antal"])) { $fejl[] = "Dit antal skal være et heltal!"; } else { $bruger = $_POST["bruger"]; $antal = $_POST["antal"]; mysql_query("UPDATE users SET credits = credits - $antal WHERE username = '$username')"); mysql_query("UPDATE users SET credits = credits + $antal WHERE username = '$bruger')"); echo "Overført!"; } } ?>
01. januar 2008 - 20:48
#7
En af de ting som ereg_xxxx() ikke kender er "\d". Derfor skal roenving's kode ændres fra: elseif(!eregi("^\d+$",$_POST["antal"])) { til: elseif(!ereg("^[0-9]+$",$_POST["antal"])) {
01. januar 2008 - 20:49
#8
Jeg tror ikke du mener } elseif (! preg_match("/^$\d+$/", $_POST["antal"])) { men } elseif (! preg_match("/^\d+$/", $_POST["antal"])) { Må der være et minus foran tallet?
01. januar 2008 - 20:57
#9
Hmmm, ja. En stavebøf der :^|
Vi tilbyder markedets bedste kurser inden for webudvikling