【问题标题】:Undefined index:usernames未定义索引:用户名
【发布时间】:2020-10-13 18:00:47
【问题描述】:

我正在尝试使用 ajax 将 php 变量传递给另一个名为 post.php 的类。当我尝试在另一个类中将其打印为 $echo $nameOfUser 时,它一直在另一个类 post.php 中说“未定义的索引:用户名”,谁能想到我做错了什么?谢谢 index.php

<?php
 session_start();
   ?>
  <html>
  <head>
    <script src=“ https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js ”</script>
  </head>

   <body>
    <?php
   global $username;
     $nameOfUser = $_SESSION['name'];
        ?>
        
        <script>
        var username = '<?php echo $nameOfUser ?>';
        console.log(username); //it prints the right username here

        $.ajax({
            type:'POST',
            url: 'post.php',
            data: {function : 'testing',  usernames: username},
            success: function() {
           alert('success');
            }


        });
        </script>

post.php

 <?php
 session_start();
 ini_set('display_errors', '1');
  ini_set('error_reporting', E_ALL);
   ?>
  <html>
  <head>
  </head>
  <body>
  <hr>
  <?php
   $username = $_POST['usernames'];

   echo $username; // it says here undefined index usernames


   if ($functionname == 0){
    testing($username);
    }

  function testing($username) {
    echo 'my name is: '; //it prints that
   echo $username;   

  }

  ?>
 </body>
 </html>

【问题讨论】:

  • type:'POST' != $_GET['usernames']
  • @quentin 抱歉,我在上发布我的问题时打错了,所以我确实有 $_POST 代替
  • @nigelren 是的,抱歉。我用我的手机发布它,当我从 GET 更改为 POST 时,我犯了一个错字,有人可以解决这个问题吗?在我的手机里我没有那个报价
  • 你怎么看未定义的索引错误?向它发出请求的 JavaScript 不会对响应做任何事情,它只是提醒一个静态字符串。
  • 危险 jQuery 1.x 已经过时了,并且存在已知的安全漏洞。升级到受支持的 jQuery 版本。

标签: javascript php html ajax


【解决方案1】:

$_POST[...] 从请求中读取数据。

当您向 URL 发出 POST 请求时,该请求中的数据将可供处理该 URL 的 PHP 使用。

当您向 URL(或使用某些相同代码的另一个 URL)发出另一个单独的请求时,它将有权访问第二个请求。

它将无法访问来自第一个请求的数据。

如果您想在请求之间保留该数据,则需要将其存储在某个地方(例如会话或数据库)并在您想要使用时检索它。

【讨论】:

  • 你的意思是我应该先将它存储在数据库中,然后尝试从同一个类 index.php 中从那里获取并使用 ajax 将它传递给另一个类,所以这里是 post.php?
【解决方案2】:

您的 ajax 请求类型是“POST”,您应该使用 $_POST 而不是 $_GET。 或者您可以使用包含 $_GET$_POST$_COOKIE$_REQUEST 变量。

【讨论】:

  • 抱歉,我在 SO 上发帖时使用了一个拼写错误的 _POST
猜你喜欢
  • 2018-03-17
  • 2014-11-23
  • 2015-04-09
  • 2018-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多