Nerock Posted December 1, 2012 Share Posted December 1, 2012 Hey guys, I recently posted here and I am now trying to fix the ereg because I was told it was deprecated I read some of the stuff in the php manual however I don't understand most of it since I am extremely new to programming. Here's my code, which works fine when i use the ereg function but when i use preg_match() it doesnt work it gives always give me the output "please restrict your input to numbers." However it works just fine when I use !ereg. If i enter numbers it gives me an answer and I enter letters it gives me the "please restrict your input to numbers." message. Here's the code. <HTML> <HEAD> <TITLE> Grade calculator </TITLE> </HEAD> <center><h1 style="Font-family:Vijaya;font-size:34;Color:#556B2F;"> Grade Calculator </h1></center> <BODY bgcolor="#9BCD9B"> <?php $submit = $_POST["submit"]; $Lab1 = $_POST["Lab1"]; $Lab2 = $_POST["Lab2"]; $Lab3 = $_POST["Lab3"]; $LA1 = $_POST["LA1"]; $LA2 = $_POST["LA2"]; $LA3 = $_POST["LA3"]; $LA4 = $_POST["LA4"]; $Quiz1 = $_POST["Quiz1"]; $Quiz2 = $_POST["Quiz2"]; $Quiz3 = $_POST["Quiz3"]; $Quiz4 = $_POST["Quiz4"]; $Final = $_POST["Final"]; if ($submit) { if (($Lab1 == "") || ($Lab2 =="") || ($Lab3 =="") || ($LA1 =="") || ($LA2 =="") || ($LA3 =="") || ($LA4 =="") || ($Quiz1 =="") || ($Quiz2 =="") || ($Quiz3 =="") || ($Quiz4 =="") || ($Final =="")) { echo("<font face=\"Tahoma\" size=\"2\" color=\"#FF0000\"><b>You Left an area blank, please try again.</b></font><br>"); } elseif ( ( !preg_match("[0-9]",$Lab1) ) || ( !preg_match("[0-9]",$Lab2) ) || ( !preg_match("[0-9]",$Lab3)) || ( !preg_match("[0-9]",$LA1))|| ( !preg_match("[0-9]",$LA2))|| ( !preg_match("[0-9]",$LA3)) || ( !preg_match("[0-9]",$LA4))||( !preg_match("[0-9]",$Quiz1))|| ( !preg_match("[0-9]",$Quiz2)) || ( !preg_match("[0-9]",$Quiz3))||( !preg_match("[0-9]",$Quiz4)||( !preg_match("[0-9]",$Final)))) { echo("<font face=\"Tahoma\" size=\"2\" color=\"#FF0000\"><b>Please restrict your input to numbers.</b></font><br>"); } else { $LabTotal=($Lab1 + $Lab2 + $Lab3)*(.08); $LAtotal=($LA1+$LA2+$LA3+$LA4)*(.06); $Quiztotal=($Quiz1+$Quiz2+$Quiz3+$Quiz4)*(.2); $Finalscore=($Final)*(.36); $FinalGrade=($Finalscore+$Quiztotal+$LAtotal+$LabTotal); if ($FinalGrade> 93 and $FinalGrade <=1000) { print("your grade is: " . $FinalGrade . "% " . "A"); } elseif ($FinalGrade>88 and $FinalGrade<=93) { print("your grade is: " . $FinalGrade . "% " . "A-"); } elseif ($FinalGrade>84 and $FinalGrade<=88) { print("your grade is: " . $FinalGrade . "% " . "B+"); } elseif ($FinalGrade>79 and $FinalGrade<=84) { print("your grade is: " . $FinalGrade . "% " . "B"); } elseif ($FinalGrade>76 and $FinalGrade<=79) { print("your grade is: " . $FinalGrade . "% " . "B-"); } elseif ($FinalGrade>72 and $FinalGrade <=76) { print("your grade is: " . $FinalGrade . "% " . "C+"); } elseif ($FinalGrade>69 and $FinalGrade <=72) { print("your grade is: " . $FinalGrade . "% " . "C"); } elseif ($FinalGrade>63 and $FinalGrade <=69) { print("your grade is: " . $FinalGrade . "% " . "C-"); } elseif ($FinalGrade>59 and $FinalGrade <=63) { print("your grade is: " . $FinalGrade . "% " . "D+"); } elseif ($FinalGrade>54 and $FinalGrade<=59) { print("your grade is: " . $FinalGrade . "% " . "D"); } elseif ($FinalGrade>50 and $FinalGrade<=53) { print("your grade is: " . $FinalGrade . "% " . "D-"); } elseif ($FinalGrade<49) { print("your grade is: " . $FinalGrade . "% " . "F"); } } } ?> <FORM METHOD="post" ACTION="test.php"> <P><font face="Tahoma" size="2"><b>Enter your Lab Scores: <br><INPUT TYPE="text" NAME="Lab1" SIZE=3></b></font></p> <font face="Tahoma" size="2"><b><INPUT TYPE="text" NAME="Lab2" SIZE=3></b></font></p> <font face="Tahoma" size="2"><b><INPUT TYPE="text" NAME="Lab3" SIZE=3></b></font></p> <font face="Tahoma" size="2"><b>Enter your Lecture Assignment Scores: <br><INPUT TYPE="text" NAME="LA1" SIZE=3></b></font></p> <font face="Tahoma" size="2"><INPUT TYPE="text" NAME="LA2" SIZE=3></b></font></p> <font face="Tahoma" size="2"><INPUT TYPE="text" NAME="LA3" SIZE=3></b></font></p> <font face="Tahoma" size="2"><INPUT TYPE="text" NAME="LA4" SIZE=3></b></font></p> <font face="Tahoma" size="2"><b>Enter your Quiz Scores: <br><INPUT TYPE="text" NAME="Quiz1" SIZE=3></b></font></p> <font face="Tahoma" size="2"><INPUT TYPE="text" NAME="Quiz2" SIZE=3></b></font></p> <font face="Tahoma" size="2"><INPUT TYPE="text" NAME="Quiz3" SIZE=3></b></font></p> <font face="Tahoma" size="2"><INPUT TYPE="text" NAME="Quiz4" SIZE=3></b></font></p> <font face="Tahoma" size="2"><b>Enter your Final Score: <br><INPUT TYPE="text" NAME="Final" SIZE=3></b></font></p> </b></font> <P><INPUT TYPE="submit" NAME="submit" VALUE="Evaluate Grade"></p> </FORM> </BODY> </HTML> </HTML> </html> Link to comment https://forums.phpfreaks.com/topic/271434-php-calculator-changing-ereg-to-preg_match/ Share on other sites More sharing options...
Christian F. Posted December 1, 2012 Share Posted December 1, 2012 You're missing the delimiters around the ReExps. In short, add a "/" after the opening quote and before the closing quote. Which should make the RegExp look like this: "/[0-9]/" For more information, I can highly recommend Regular-Expressions.info. It contains all the information you'll ever need on Regular Expression. PS: You can use \d instead of the [0-9] group, means the same. Link to comment https://forums.phpfreaks.com/topic/271434-php-calculator-changing-ereg-to-preg_match/#findComment-1396630 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.