2017-07-17 9 views
0

こんにちは、私はストライプの単純な実装でPHP変数を使用しようとしています ここで、人がログインしている場合にのみデータベースから量が取られます。ログインボタンが表示されます。私の問題は、私はecho文でコードを入れたときにPHPの変数($量)が適切にanymore.Hereの私のコードを渡されていないということです。事前にPHP可変長ストライプ形式

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>'; 
       } 

ありがとう!

+0

'echo'文の引用符を二重引用符 - ' ''に変更してください。おそらく中括弧を使って変数をどこで使用しているかを表示することもできます。 {$ amount} '"' – Giedrius

+0

また、読みやすさと使いやすさのために、HTMLの量が多い場合は、PHPをエスケープして、必要な時にだけドロップする方が良いでしょう。質問は 'data-amount:="になります<?php echo $ amount; ?> "' – Difster

+0

残りのコードの二重引用符はどうですか? – Zotov

答えて

0

次のように$量の値を渡すためにあなたのエコー上のsprintfを使用するための最初の試み:

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($量)を入力して、$量の値をチェックし、それがタイプだが、文字列でなければなりません。

$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']; 
     } 

幸運より良い解析のためのIDと量の取得値は、あなたがこれを使用することができますので、

私は、代わりにmysqliののPDOを使用しています。

+0

ありがとうございます!!!!!! – Zotov

+0

あなたは歓迎です、それを返信としてマークしますか? –

関連する問題