运行代码出现502错误

运行代码出现502错误

http://img1.sycdn.imooc.com//climg/5e5e837f09c360f504100152.jpg

http://img1.sycdn.imooc.com//climg/5e5e838f0967f9a307700188.jpg

http://img1.sycdn.imooc.com//climg/5e5e839d091c845f11470081.jpg

http://img1.sycdn.imooc.com//climg/5e5e840309e7417906670598.jpg

代码:

<!doctype html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <meta name="viewport"
         content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
   <meta http-equiv="X-UA-Compatible" content="ie=edge">
   <title>Document</title>
</head>
<body>
<form action="#" method="post">
   <input style="text" name="num" placeholder="请输入要打印的行数"><br>
   <input type="submit" name="sub" value="金字塔">
   <input type="submit" name="sub1" value="空心菱形">
</form>

<?php
header('content-type:text/html;charset=utf-8');//防止中文乱码
error_reporting(E_ALL & ~E_NOTICE);//设置错误级别,E_ALL但是除了E_NOTICE
$sub=$_POST['sub'];
$n=$_POST['num'];
//先判断按钮状态
if ($sub){
   if (is_numeric($n)&&$n>=1&&floor($n)==$n){
       for ($a=1;$a<=$n;$a++){
           for ($b=1;$b<=$n;$b++){
               echo "<span style='color:#FFF'>*</span>";
           }

           for ($c=1;$c=$n*2-1;$c++){
               echo '*';
           }echo '<br/>';

       }
   }else{
       exit('请输入正整数');
   }
}
?>
</body>
</html>

碰到的问题:

1、输入不是正整数类型的就能正常显示运行

2、如图标记的代码段,屏蔽掉就不会出现502错误,老师帮看下是不是哪里写错了?

3、如果连续几次出现502错误页面,在重新运行代码打开页面就一直转圈圈,如上图所示,是哪里的问题呢?百度找了个遍也没找到解决方法

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
guly 2020-03-04 19:57:36

你好,1、输入不是正整数,是输出 “请输入正整数”。能正常运行是因为没有走 if (is_numeric($n)&& $n>=1 && floor($n)==$n){  中的判断,

2、作为行数循环输出等腰三角形标出部分应该改为:

for ($c= 1; $c <= 2 * $a - 1; $c++) {
                echo "*"; //打印星星个数
            }

3、老师运行你的代码没有出现第三中情况,出现502 和本地PHP环境有关

老师已经根据你的代码进行修改,建议参考上次的回复

如果解决您的问题请采纳,祝学习愉快!

guly 2020-03-04 10:45:02

你好,建议参考代码如下:

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
<form action="#" method="post">
    <input style="text" name="num" placeholder="请输入要打印的行数"><br>
    <input type="submit" name="sub" value="金字塔">
    <input type="submit" name="sub1" value="空心菱形">
</form>

<?php
header('content-type:text/html;charset=utf-8');//防止中文乱码
error_reporting(E_ALL & ~E_NOTICE);//设置错误级别,E_ALL但是除了E_NOTICE
$sub=$_POST['sub'];
$n=$_POST['num'];
//先判断按钮状态
if ($sub){
    if (is_numeric($n)&& $n>=1 && floor($n)==$n){
        $n = $_POST['num'];  //层数
        for ($a = 1; $a<= $n; $a++) {
            //打印一个由空格组成的倒直角三角形
            for ($b = 1; $b<= $n - $a; $b++) {
                //echo "&nbsp"; //打印空格
                echo "<span style='color:#fff;'>*</span>";
            }
            //负责打印一个由星号组成的等腰三角形,三角星星个数=层数减1乘以2加1
            for ($c= 1; $c <= 2 * $a - 1; $c++) {
                echo "*"; //打印星星个数
            }
            echo "<br/>";
        }
    }else{
        exit('请输入正整数');
    }
}
?>
</body>
</html>

如果解决您的问题请采纳,祝学习愉快!

  • 提问者 张宝诚 #1
    这段代码可以,老师还没帮我指出问题出现在哪里?
    2020-03-04 16:55:18
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
PHP小白零基础入门
  • 参与学习           人
  • 提交作业       626    份
  • 解答问题       4930    个

想要学好Web后端开发的中流砥柱语言,本阶段为你轻松铺就扎实的基础,从前端网页布局的搭建到后台PHP开发,助你从零基础到掌握主流开发语言。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师