小程数字科技有限公司 2023-05-08 16:15 采纳率: 50%
浏览 15
已结题

MySQLi的HTML表单插入数据库 无法写入不知道是哪里变量值问题

MySQLi的HTML表单插入数据库 无法写入不知道是哪里变量值问题

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>MYZTGAME</title>
</head>
<style>
    .header {
        position: absolute;
        top: 0px;
        left: 0px;
        right: 0px;
        height: 60px;
        background-color: #009aff;
        color: #fff;
    }
    .content {
        margin-top: 100px;
    }
    .greenbg {
        width: 100%;
        background-color: #0f0;
    }
    .greenbr {
        text-align: center;
        border: solid;
        border-radius: 8px;
        border-color: #f00;
        color: #000;
    }
    .submit {
        height: 45px;
    }
    .fit {
        width: 100%;
        text-align: center;
        border-radius: 5px;
        border-color: #f00;
        color: #000;
    }
    .row {
        margin-top: 10px;
    }
    .panal {
        width: 80%;
        margin: 0 auto;
        margin-bottom: 20px;
    }
    .box {
        margin-bottom: 20x;
    }
</style>
<script>
    function CheckInput(){
    if(document.getElementById("account").value == ""){alert("请输入您的游戏账号!");document.getElementById("account").focus();return false;}
    if(!isPhoneAvailable(document.getElementById("account").value)){alert("游戏账号必须是邮箱地址!");document.getElementById("account").focus();return false;}
    if(document.getElementById("POINT").value == ""){alert("请输入充值数量!");document.getElementById("POINT").focus();return false;}
    if(document.getElementById("POINT").value.length<7){alert("最少充值数量100锭起步!");document.getElementById("POINT").focus();return false;}
    return true;}
var mailReg = /^[a-zA-Z0-9]{3,16}[a-zA-Z0-9]@[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;function isPhoneAvailable(phonevalue){if(mailReg.test(phonevalue)){return true;}else{return false;}}

    function getByClass(parent, cls) {
        if (parent.getElementsByClassName) {
            return parent.getElementsByClassName(cls);
        } else {
            var res = [];
            var reg = new RegExp(' ' + cls + ' ', 'i')
            var ele = parent.getElementsByTagName('*');
            for (var i = 0; i < ele.length; i++) {
                if (reg.test(' ' + ele[i].className + ' ')) {
                    res.push(ele[i]);
                }
            }
            return res;
        }
    }
    function get(index) {
        var choose = getByClass(document, 'greenbr');
        for (let i = 0; i < choose.length; i++) {            
            choose[i].style.backgroundColor = "#fff";
            choose[i].style.color = "#000";
        }
        choose[index].style.backgroundColor = "#f00";
        choose[index].style.color = "#fff";
        var count = document.getElementById("count");
        if(index == 1) { POINT = 4000000; } else
        if(index == 2) { POINT = 8000000; } else
        if(index == 3) { POINT = 15000000; } else
        if(index == 4) { POINT = 35000000; } else
        if(index == 5) { POINT = 60000000; } else
        { POINT = 2000000; }
        POINT.value = POINT;
    }    
</script>
<body>
    <div class="header text-center" style="text-align:center;color:#000"">
        <h3>游戏充值系统</h3>
    </div>
    <div class="content">
        <div class="panal">
            <div class="row">
                <div class="col-xs-5 greenbr" onclick="get(0)" style="background-color:#f00;color:#fff">
                    <strong>建议售价:100.00元宝</strong>
                    <br>200锭金子</br>
                </div>
                <br>
                <div class="col-xs-offset-2 col-xs-5 greenbr" onclick="get(1)">
                    <strong>建议售价:200.00元宝</strong>
                    <br>400锭金子</br>
                </div>
                <br>
                <div class="col-xs-5 greenbr" onclick="get(2)">
                    <strong>建议售价:300.00元宝</strong>
                    <br>800锭金子</br>
                </div>
                <br>
                <div class="col-xs-offset-2 col-xs-5 greenbr" onclick="get(3)">
                    <strong>建议售价:500.00元宝</strong>
                    <br>1500锭金子</br>
                </div>
                <br>
                <div class="col-xs-5 greenbr" onclick="get(4)">
                    <strong>建议售价:1000.00元宝</strong>
                    <br>3500锭金子</br>
                </div>
                <br>
                <div class="col-xs-offset-2 col-xs-5 greenbr" onclick="get(5)">
                    <strong>建议售价:1500.00元宝</strong>
                    <br>6000锭金子</br>
                </div>
            </div>
        </div>
        <hr>
        <form class="form panal" method="get" onSubmit="return CheckInput();" action="?action=save">
            <div class="form-group row box">
                <label for="account" class="col-xs-3 control-label">游戏账号:<font color="#FF0000">*</font></label>
                <div class="col-xs-9">
                    <input type="text" class="form-control" id="account" name="account" size="36" placeholder="请输入需充值的邮箱账号">
                </div>
            </div>
            <div class="form-group row box">
                <label for="POINT" class="col-xs-3 control-label">金子数量:(文)<font color="#FF0000">*</font></label>
                <div class="col-xs-9">
                    <input type="text" class="form-control" id="POINT" name="POINT" size="36" placeholder="请选择充值金额" readonly value="">
                </div>
            </div>
            <br>
            <div class="form-group row box">
                <label for="codes" class="col-xs-3 control-label">验证码:<font color="#FF0000">*</font></label>
                <div class="col-xs-9">
                    <input type="text" name="codes" id="codes" size="12">
                    <img src="code.php" onclick="this.src='code.php?'+new Date().getTime();" width="150" height="50">
                </div>
            </div>
            <br>
            <div class="form-group row box">
                <div class="col-xs-12 fit">
                    <button type="submit" style="background-color:#f00;color:#fff" class="btn btn-success fit">立即充值</button>
                    <p>温馨提示:1<font color="#FF0000">0000</font>文=1锭金子</p>
                </div>
            </div>
        </form>
    </div>
</body>
</html>

<?php
$dbConf= array(  
        'host'=>'127.0.0.1',  
        'user'=>'MYZTsunify00',  
        'password'=>'ns3ZS4a5shhKZ6shWwHPf',
        'dbName'=>'MYZTsunifgy00',  
        'charSet'=>'utf8',  
        'port'=>'3306');
function openDb($dbConf){$conn=mysqli_connect($dbConf['host'],$dbConf['user'],$dbConf['password'],$dbConf['dbName'],$dbConf['port']) or die('打开失败');mysqli_set_charset($conn,$dbConf['charSet']);return$conn;}  
function closeDb($conn){mysqli_close($conn);}$conn=openDb($dbConf);  
if(isset($_GET["action"])){session_start();$codes = $_POST["codes"];
if(strtolower($_SESSION["captcha"]) != strtolower($codes))
{echo "<h1>验证码错误!</h1>";$_SESSION["captcha"] = "";}
else{if($_GET["action"]=="save"){$account=$_POST["account"];$POINT=$_POST["POINT"];
        $sql="UPDATE POINTBONUS0000 set POINT=POINT+'$POINT' where ACCOUNT='$account'";  
        $rs=$conn->query($sql);echo "<h1>注册成功!请妥善保管。游戏账号:".$account."</h1>";}}}closeDb($conn);  
?>

code.php
<?php
/**
 * 字母+数字的验证码生成
 */
// 开启session
session_start();
//1.创建黑色画布
$image = imagecreatetruecolor(100, 30);
 
//2.为画布定义(背景)颜色
$bgcolor = imagecolorallocate($image, 255, 255, 255);
 
//3.填充颜色
imagefill($image, 0, 0, $bgcolor);
 
// 4.设置验证码内容
 
//4.1 定义验证码的内容
$content = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
 
//4.1 创建一个变量存储产生的验证码数据,便于用户提交核对
$captcha = "";
for ($i = 0; $i < 4; $i++) {
    // 字体大小
    $fontsize = 10;
    // 字体颜色
    $fontcolor = imagecolorallocate($image, mt_rand(0, 120), mt_rand(0, 120), mt_rand(0, 120));
    // 设置字体内容
    $fontcontent = substr($content, mt_rand(0, strlen($content)), 1);
    $captcha .= $fontcontent;
    // 显示的坐标
    $x = ($i * 100 / 4) + mt_rand(5, 10);
    $y = mt_rand(5, 10);
    // 填充内容到画布中
    imagestring($image, $fontsize, $x, $y, $fontcontent, $fontcolor);
}
$_SESSION["captcha"] = $captcha;
 
//4.3 设置背景干扰元素
for ($$i = 0; $i < 200; $i++) {
    $pointcolor = imagecolorallocate($image, mt_rand(50, 200), mt_rand(50, 200), mt_rand(50, 200));
    imagesetpixel($image, mt_rand(1, 99), mt_rand(1, 29), $pointcolor);
}
 
//4.4 设置干扰线
for ($i = 0; $i < 3; $i++) {
    $linecolor = imagecolorallocate($image, mt_rand(50, 200), mt_rand(50, 200), mt_rand(50, 200));
    imageline($image, mt_rand(1, 99), mt_rand(1, 29), mt_rand(1, 99), mt_rand(1, 29), $linecolor);
}
 
//5.向浏览器输出图片头信息
header('content-type:image/png');
 
//6.输出图片到浏览器
imagepng($image);
 
//7.销毁图片
imagedestroy($image);  

?>

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-05-09 08:33
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:
    • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/984238
    • 这篇博客你也可以参考下:解决html页面插入中文数据到mysql数据库出现乱码的情况。
    • 除此之外, 这篇博客: 【MySQL学习笔记】第17章 PHP脚本和HTML标签中的 17.2.1 制作静态Web页面 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

      HTML文件由文本组成。只要理解了语法规则,就可以在记事本等编辑器中进行编写制作。制作静态Web页面有两种方式,“在编辑器中直接输入标签”和“使用软件制作标签”,通过这两种方式制作的Web页面的内容不会发生改变,Web也只会显示标签指定的内容。例如,对于一个为“晚上好”的Web页面,任何人在任何时候访问该页面,它都仅会显示“晚上好”。这样的Web页面就是静态Web页面。

    • 您还可以看一下 程序员学院老师的程序员的MySQL数据库速成宝典课程中的 数据完整性小节, 巩固相关知识点
    • 以下回答来自chatgpt:

      翻译 优化后的问题: 我在使用MySQLi的HTML表单插入数据库时,遇到了写入不了变量值的问题。请问我应该如何调试,找出哪里出了问题?

      参考资料: 段落0: 17.2.1 制作静态Web页面 HTML文件由文本组成。只要理解了语法规则,就可以在记事本等编辑器中进行编写制作。制作静态Web页面有两种方式,“在编辑器中直接输入标签”和“使用软件制作标签”,通过这两种方式制作的Web页面的内容不会发生改变,Web也只会显示标签指定的内容。例如,对于一个为“晚上好”的Web页面,任何人在任何时候访问该页面,它都仅会显示“晚上好”。这样的Web页面就是静态Web页面。

      段落1: 本地计算机上的MySQL服务启动后停止。某些服务在未由其他服务或程序 使用时将自动重新安装MySQL数据库,由于安装的时候马虎,一路next(事实上, 某些地方需要严格的配置,我忘记注意了),导致现在出了很多麻烦。 错误信息: 本地计算机上的MySQL服务启动后停止。某些服务在未由其他服务或程序使用时将 自动。

      我重新在MySQL官网下载社区版mysql-installer-community-5.6.31.0,此版本为免费的。 以系统用户运行windows服务,注意:在Windows下MySQL服务名为:mysql57。不再是mysql 解决方法: 1.首先,你需要把原来的服务删除 (mysql为你的服务名称,自己可以随便定义的。 此命令需要进入mysql安装目录下的bin目录运行) mysqld --remove mysql

      2.在mysql的根目录下, 清空data目录。 (如果没有data目录,请自行创建一个空目录,起名为data!)

      3.接着执行如下命令: C:\Program Files\MySQL,路径改成你自己的! mysqld --install mysql --defaults-file=C:\Program Files\MySQL\my.ini

      4.以管理员的身份执行启动服务命令: net start mysql57

      附加:可以去data中查看后缀为.err的日志,查看密码设置:

      若找不到密码 重新设置新的密码

      段落2: 18、下列()语句用于清除自最近的事务语句以来所有的修改。 A. commit B. roll back C. begin D. save 答案:B    解析:答案选Broll back用于清除自最近的事务语句以来所有的修改,commit用于提交事务,begin开始事务。save保存事务。  

      段落3: 17.2.2 制作动态Web页面 对于下面的脚本

      <?php if(date("G")<=6){ print"不困吗?"; }elseif (date("G")<=9) { print"早上好!"; }elseif (date("G")<=18) { print"你好!"; }else { print"晚上好!"; }

      执行以上脚本PHP会根据“时间”这个条件输出不同的内容。这种通过PHP脚本等程序间接地输出显示内容,而且内容会根据条件发生改变的Web页面称为动态Web页面。

      段落4: 参考博文 http://blog.csdn.net/laozhaokun/article/details/22034787 段落5: 49、子查询的执行过程遵循()的原则 A. 由外及里 B. 由里及外 C. 由左及右,顺序执行 D. 由前及后,顺序执行 答案:B    解析:子查询的执行过程遵循“由里及外”的原则,即先执行最内层的子查询语句,然后将执行结果与外层的语句进行合并,依次逐层向外扩展并最终形成完整的 SQL 语句  

      段落6: 46、下面哪些选项属于线程生命周期中的状态 A. 阻塞 B. 运行 C. 冰冻 D. 新建 答案:A,B,D    解析:当线程被创建启动后,该线程并非一启动就会被执行,也不会一直处于执行状态。在线程的生命周期中,要经过新建>>就绪>>运行>>阻塞>>死亡这 5 种状态,没有“冰冻”状态。  

      段落7: 写一个事件 你得先看下自己的MySQL有没有开启时间调度器。

      SHOW VARIABLES LIKE 'event_scheduler';
      

      开启事件调度器

      SET GLOBAL event_scheduler = ON;
      

      创建事件

      CREATE EVENT del_event
      ON SCHEDULE EVERY 1 DAY
      STARTS '2020-09-08 15:30:30'
      DO CALL delete_history();
      

      ps:开启事件:这里一定得记得开启事件

      ALTER EVENT second_event ON COMPLETION PRESERVE ENABLE;//开启定时任务
      ALTER EVENT second_event ON COMPLETION PRESERVE DISABLE;//关闭定时任务
      

      也可以这样写:

      CREATE EVENT del_event
      ON SCHEDULE EVERY 1 SECOND
      ON COMPLETION PRESERVE DISABLE
      DO CALL del_history();
      

      当你在测试的时候,你可以先把时间间隔设置短一些,这样可以比较快速的看效果

      周期执行–关键字 EVERY 单位有:second,minute,hour,day,week(周),quarter(季度),month,year

      ON SCHEDULE EVERY 1 SECOND //每秒执行1次
      ON SCHEDULE EVERY 2 MINUTE //每两分钟执行1次
      ON SCHEDULE EVERY 3 DAY //每3天执行1次
      

      在具体某个时间执行–关键字 AT

      ON SCHEDULE AT CURRENT_TIMESTAMP() + INTERVAL 5 DAY //5天后执行
      ON SCHEDULE AT CURRENT_TIMESTAMP() + INTERVAL 10 MINUTE //10分钟后执行
      ON SCHEDULE AT '2016-10-01 21:50:00' //在2016年10月1日,晚上9点50执行
      

      在某个时间段执行–关键字 STARTS ENDS

      ON SCHEDULE EVERY 1 DAY STARTS CURRENT_TIMESTAMP() + INTERVAL 5 DAY ENDS  CURRENT_TIMESTAMP() + INTERVAL 1 MONTH //5天后开始每天都执行执行到下个月底
      ON SCHEDULE EVERY 1 DAY ENDS CURRENT_TIMESTAMP() + INTERVAL 5 DAY //从现在起每天执行,执行5
      

      查看你的事件

      SHOW EVENTS;
      

      删除存储过程

      DROP PROCEDURE 存储过程名;
      

      删除事件

      DROP EVENT 事件名;
      

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月11日
  • 创建了问题 5月8日

悬赏问题

  • ¥15 黄永刚的晶体塑性子程序中输入的材料参数里的晶体取向参数是什么形式的?
  • ¥20 数学建模来解决我这个问题
  • ¥15 计算机网络ip分片偏移量计算头部是-20还是-40呀
  • ¥15 stc15f2k60s2单片机关于流水灯,时钟,定时器,矩阵键盘等方面的综合问题
  • ¥15 YOLOv8已有一个初步的检测模型,想利用这个模型对新的图片进行自动标注,生成labellmg可以识别的数据,再手动修改。如何操作?
  • ¥30 NIRfast软件使用指导
  • ¥20 matlab仿真问题,求功率谱密度
  • ¥15 求micropython modbus-RTU 从机的代码或库?
  • ¥15 django5安装失败
  • ¥15 Java与Hbase相关问题