1

我有一个处理会话和 cookie 的函数。

函数.php

function getUser()
{
     if(isset($_COOKIE["auth"]))
     {
         /* check cookie */
         echo $_COOKIE['auth'];
     }else if(isset($_SESSION["auth"])){
         echo $_SESSION["user_auth"];
     }
}

我也有一个表格,并且有一个与之相关的警报。我有一个 ajax,当用户提交表单时,会提醒该功能。

一切正常,但唯一的问题是弹出的警报中有很多空格。我试过用

trim(getUser);

和 str_replace("","",getUser());

这给我带来了问题,因为我试图将会话值或 cookie 值输入到 mysql 数据库中。当我检查我的 mysql 数据库中是否有任何值时,它只是空的,而不是 NULL。

谢谢!

阿贾克斯:

表单.php

$(".inputSubmit").submit(function(e){
      e.preventDefault();
      var inputs= $('.inputForm').serialize();
      $.ajax({
           url: "submit.php",
           type: "POST",
           data: input,
           error: function(data){
                 alert(data.responseText);  
                 alert(data.responseStatus);
                 alert(data);
           }
      }).done(function(data){
           alert(data);
      });
});

提交.php

require "functions.php";

$users = str_replace("","",getUser());
echo $users;

假设我有警报框:

--------------------------------------
|                                    |
|                                    |
|                                    |
|                                    |
|                                    |
|  1                                 |
|                                    |
|                                    |
|                           OK       |
--------------------------------------

1 是会话输出。弹出警报时,好的是确定按钮。通常 1 应该是更高和更小的警报框,但它的扩展就像有空白一样。

4

3 回答 3

1

你需要return,不是echo

function getUser()
{
     if(isset($_COOKIE["auth"]))
     {
         /* check cookie */
         return $_COOKIE['auth'];
     }else if(isset($_SESSION["auth"])){
         return $_SESSION["user_auth"];
     }
     return "";
}
于 2012-08-16T03:56:56.507 回答
0

xdazz 是对的——你应该有“return”而不是 echo。但这可能不是问题。这是一个问题,需要修复。但我不知道它将如何解决您的空间问题。

最可能的原因是您有 php 开始标签:

<?php 

或者

<?

不在您的 PHP 页面的顶部,或者您的结束标记 (?>) 不在您的 php 文件的底部 - 或者后面是空字符。

为了获得最佳实践,将 php 开始标记放在最顶部,仅第一行,将 ?> 放在底部,最后一行,后面没有“换行符”。(如果您愿意,也可以省略 ?>,这不是必需的。)这些标签之外的任何内容,包括空行,都将被回显,并将您的显示向下推。

于 2012-08-16T04:18:20.323 回答
0

您也可以尝试jQuery.trim()OR j$.trim(str)OR 正则表达式string.replace()

在这里您可以看到所有三种方法。选择适合您的那一款。

于 2012-08-16T04:20:05.060 回答