PHP 板


LINE

看板 PHP  RSS
sincostan.php 程式码如下: <!doctype html> <html> <head> <style> .press { width:162px; } .error { color:#F00; } </style> <meta charset="utf-8"> <title>三角函数</title> </head> <body> <?php $scaleErr=""; settype($scale,"double"); //scale变成double型态 if ($_SERVER["REQUEST_METHOD"] == "POST") { if (empty($_POST["scale"])) { $scaleErr = "忘了写倍数了"; } else { $scale=test_input($_POST["scale"]); $scale=$scale*pi(); //倍数可以是小数或整数 } } function test_input($data) { if(!is_string($data)) $data='scale'; $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data); return $data; } ?> <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> 请输入倍数:<input type="text" name="scale" class="press"> <span class="error">* <?php echo $scaleErr;?></span> <br><br><input type="submit" name="submit" value="送出"><br> </form> <?php if($scale!=0){ echo "<br>"; echo "sin(".$scale.")=".sin($scale)."<br>"; echo "cos(".$scale.")=".cos($scale)."<br>"; echo "tan(".$scale.")=".tan($scale)."<br>"; echo "cot(".$scale.")=".(1/tan($scale))."<br>"; echo "sec(".$scale.")=".(1/cos($scale))."<br>"; echo "csc(".$scale.")=".(1/sin($scale))."<br>"; } else { $scale=@($scale==0); echo "$php_errormsg"; } ?> </body> </html> 假设我倍数输入0.666666666666666 结果如下: sin(2.09439510239)=0.866025403784 cos(2.09439510239)=-0.5 tan(2.09439510239)=-1.73205080757 cot(2.09439510239)=-0.57735026919 sec(2.09439510239)=-2 csc(2.09439510239)=1.15470053838 结果正确 可是我输入0 结果是* 忘了写倍数了 拜托各位看看哪里有问题 感激不尽 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.112.130.165
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/PHP/M.1463639210.A.1C1.html
1F:→ bibo9901: 恭喜你踩到php的#1地雷: empty("0") === true 05/19 14:29
2F:→ MOONRAKER: 学php第一件事就是记起来intval() floatval() strval() 05/19 14:39
3F:→ xdraculax: get post 有没输入用 == "" 检查(阵列除外) 05/19 18:07
4F:推 LaPass: isset($_POST["scale"]) 05/20 12:57
5F:→ todo70192: 楼上 isset($_POST["scale"])要写在哪里呢? 05/21 09:05
6F:→ tkdmaf: 你code是抄来的吗?怎麽会连要写在那都不知道? 05/21 10:58
7F:→ todo70192: 不是 我参考人家写的 然後再修改 05/21 11:15
程式码如下(有isset()这个函数): <!doctype html> <html> <head> <style> .press { width:162px; } .error { color:#F00; } </style> <meta charset="utf-8"> <title>三角函数</title> </head> <body> <?php $scaleErr=""; settype($scale,"double"); //scale变成double型态 if ($_SERVER["REQUEST_METHOD"] == "POST") { if (empty($_POST["scale"])) { $scaleErr = "忘了写倍数了"; } else { $scale=test_input($_POST["scale"]); if(isset($_POST["scale"])){ $scale=$scale*pi(); //倍数可以是小数或整数 } } } function test_input($data) { //if(!is_string($data)) $data='scale'; $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data); return $data; } ?> <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> 请输入倍数:<input type="text" name="scale" class="press"> <span class="error">* <?php echo $scaleErr;?></span> <br><br><input type="submit" name="submit" value="送出"><br> </form> <?php if($scale!=0){ echo "<br>"; echo "sin(".$scale.")=".sin($scale)."<br>"; echo "cos(".$scale.")=".cos($scale)."<br>"; echo "tan(".$scale.")=".tan($scale)."<br>"; echo "cot(".$scale.")=".(1/tan($scale))."<br>"; echo "sec(".$scale.")=".(1/cos($scale))."<br>"; echo "csc(".$scale.")=".(1/sin($scale))."<br>"; } else { $scale=@($scale==0); $scale=floatval($scale); echo "$php_errormsg"; } ?> </body> </html> 输入非0时结果对 可是输入0还是一样 *忘了写倍数了 拜托各位看一下是哪里有问题 感激不尽 ※ 编辑: todo70192 (59.125.122.241), 05/21/2016 11:39:01
8F:→ xdraculax: 这麽多个答案你就没个都试试吧,要改的是 empty($_POST 05/21 13:22
9F:→ xdraculax: 那边 05/21 13:22
10F:→ imhaha: 先去看入门书吧 05/21 14:09
11F:→ Johnnyvip: http://www.php.net/empty 05/22 04:47
12F:→ Johnnyvip: 看Return Values那段 05/22 04:52







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Boy-Girl站内搜寻

TOP