Php变量呈条纹状

时间:2017-07-17 20:52:39

标签: php html

大家好我试图在条带简单实现中使用php变量 只有在此人登录时才会从数据库中获取金额,否则将显示登录按钮。我的问题是,当我把代码放在echo语句中时,php变量($ amount)不再正常传递。这是我的代码:

if(isset($_SESSION['u_id'])){
                 $newId = $_SESSION['u_id'];
              $sql = "SELECT Amount FROM costumers WHERE id='$newId'";
            $result = mysqli_query($conn, $sql);
            if ($row = mysqli_fetch_assoc($result)){
            $amount=$row['Amount'];
            }
                echo'<form class = "payment" action="/your-server-side-code" method="POST">
<script
  src="https://checkout.stripe.com/checkout.js" class="stripe-button"
  data-key="pk_test"
  data-amount="$amount"
  data-name="Company"
  data-description="Card Payment"
  data-image="https://stripe.com/img/documentation/checkout/marketplace.png"
  data-locale="auto">
</script>
     <script>

        document.getElementsByClassName("stripe-button-el")[0].style.display = \'none\';
    </script>
    <button type="submit" class="yourCustomClass">Pay with Card</button>
</form>';
            } else{
                    echo'<div class="logInButton" onclick = "location.href = \'loginindex.php\'">
            <a href="loginindex.php">Login/Sign up</a></div>';
                }

提前致谢!

1 个答案:

答案 0 :(得分:0)

首先尝试在echo上使用sprintf传递$ amount值,如下所示:

echo sprintf("<form class = 'payment' action='/your-server-side-code' method='POST'>
<script
  src='https://checkout.stripe.com/checkout.js' class='stripe-button'
  data-key='pk_test'
  data-amount='%s'
  data-name='Company'
  data-description='Card Payment'
  data-image='https://stripe.com/img/documentation/checkout/marketplace.png'
  data-locale='auto'>
</script>
     <script>

        document.getElementsByClassName('stripe-button-el')[0].style.display = 'none';
    </script>
    <button type='submit' class='yourCustomClass'>Pay with Card</button>
</form>",$amount);

然后,通过输入var_dump($ amount)来检查$ amount的值,它的类型应该是一个字符串。

我使用PDO而不是MYSQLI,所以为了更好地解析id并获得金额值,你可以使用它:

$db=new pdo("mysql:host=localhost;dbname=madb","user","mdp");
$sql = "SELECT Amount FROM costumers WHERE id= ?";
$result = $db->prepare($sql);
$result->execute([$newId]);
$amount=($result->rowCount()!=0) ? $result->fetch()['Amount'] : "noValue";

而不是:

$sql = "SELECT Amount FROM costumers WHERE id='$newId'";
        $result = mysqli_query($conn, $sql);
        if ($row = mysqli_fetch_assoc($result)){
        $amount=$row['Amount'];
        }
祝你好运。