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());

そして、これは私がmysqlデータベースにセッション値またはcookie値を入力しようとしているので私に問題を引き起こしています。mysqlデータベース内に値があるかどうかを確認すると、その値は空であり、NULLではありません。

ありがとう!

AJAX:

form.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);
      });
});

submit.php

require "functions.php";

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

アラートボックスがあるとしましょう:

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

1はセッション出力です。アラートが表示されたときの[OK]ボタンは[OK]です。通常、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" が必要です。しかし、それはおそらく問題ではありません。ただし、これは問題であり、修正が必要です。しかし、それがあなたのスペースの問題をどのように解決するかわかりません。

最も可能性の高い理由は、php 開始タグがあることです。

<?php 

また

<?

PHP ページの上部にないか、終了タグ (?>) が php ファイルの下部にないか、空の文字が続いています。

ベスト プラクティスとして、一番上に php の開始タグを配置し、最初の行のみにし、?> を一番下の最後の行に置き、その後に「改行」を入れないようにします。(必要に応じて ?> を省略することもできます。必須ではありません。)これらのタグの外側にある空白行を含むものはすべてエコー アウトされ、ディスプレイが押し下げられます。

于 2012-08-16T04:18:20.323 に答える
0

jQuery.trim()OR j$.trim(str)OR のような正規表現を試すこともできstring.replace()ます。

ここでは、3 つの方法すべてを確認できます。あなたにぴったりのものを選んでください。

于 2012-08-16T04:20:05.060 に答える