通过PHP传递URL变量的基本算法?

时间:2012-01-03 04:52:50

标签: php url variables

我正在尝试做一些非常基本的算法,我会挂断电话。我从这样的URL中提取变量:

http://mysite.com/page.php?var1=100&var=5

这是我正在使用的基本/page.php代码:

<?php
$var1 = "var1";
$var2 = "var2";
$divided_amount = $var1/$var1;
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
        <title>Derp</title>
</head>
<body style="background-color: #fff; text-align: center;">

        <div style="text-align: center; width: 1000px; background-color: #fff; margin: auto;">

<p>This should be the divided amount: <?php echo $divided_amount ?> </p>


</body>
</html>

但是,我最终收到此错误消息:

Warning: Division by zero in /derp.php on line 4

这甚至可以用传递的变量吗?如果是的话,我哪里错了?非常感谢任何帮助!

3 个答案:

答案 0 :(得分:1)

  

问:这个(PHP算术)甚至可以用传递的变量吗?

答:当然。

  问:我哪里出错了?

答:您正在为变量分配字符串(“var1”),然后尝试对它们进行算术运算。

请改为尝试:

<?php
$var1 = 4;
$var2 = 2;
$divided_amount = $var1/$var1;
?>

至少,您可能希望在执行算术之前使用is_numeric()进行测试:

http://php.net/manual/en/function.is-numeric.php

答案 1 :(得分:0)

您正在将字符串除以另一个字符串。尝试用以下代码替换PHP代码:

<?php
$var1 = $_GET["var1"];
$var2 = $_GET["var2"];
if(is_numeric($var1) && is_numeric($var2) && $var2 != 0)
{
    // Perform division only if the variables are numeric and $var2 is not 0
    $divided_amount = $var1/$var2;
}
else
{
    // Value to be displayed if division is not possible.
    $divided_amount = 0;
}
?>

答案 2 :(得分:0)

您需要通过$_GET访问您的变量 例如:

<?php
$sum = 0;
if (isset($_GET['var1']) && isset($_GET['var'])) {
    $var1 = $_GET['var1'];
    $var = $_GET['var'];
    $sum = $var1 / $var;
}
?>