没钱吃菜了 2023-05-31 20:23 采纳率: 33.3%
浏览 7

留言上传,后台数据库没有记录

想做一个留言上传,没有别的限制,就是留言不能为空就好了,但是好像if语句嵌套这里出问题了,显示不出来

img

img

  • 写回答

1条回答 默认 最新

  • IT论之程序员 2023-05-31 21:40
    关注

    从你的描述来看,可能有几个问题:

    1. 如果留言为空,前端没有进行校验,直接发送了空请求,这时后端需要额外判断留言是否为空,为空则提示错误,不为空再插入数据库。
    2. 后端在插入数据库时,由于某些原因插入失败了,这时也需要有提示,告知用户留言失败。
    3. 前端发送请求后,如果长时间没有响应,也需要提示用户请求正在处理中,避免用户重复提交。
      所以,你可以在前端进行如下判断:
    js
    // 前端校验
    if (message.trim() === '') {
      alert('留言不能为空!')
      return
    }
    
    // 发送请求
    axios.post('/message', { message })
      .then(res => {
        // 成功提示
        alert('留言成功!')
      })
      .catch(err => {
        // 失败提示
        alert('留言失败,请稍后再试!')
      })
    在后端可以这样:
    php
    // 接收请求
    $message = $_POST['message'];
    
    // 后端校验
    if (empty($message)) {
      die('留言不能为空!');
    }
    
    // 数据库插入
    $result = mysqli_query($conn, "INSERT INTO messages (message) VALUES ('$message')");
    
    // 判断是否成功
    if ($result) {
      die('success'); 
    } else {
      die('fail'); 
    }
    
    

    这样在每一步都有相应的提示和判断,可以避免你提到的问题。

    评论

报告相同问题?

问题事件

  • 创建了问题 5月31日