2016-07-12 3 views
0

ユーザーがテキストボックスに2つの期間を入力し、SQL SELECT文が期間の間に入力したデータベースから携帯電話番号を選択します。私はそれを選択してページに表示したい。同じ表示ページでは、ユーザーがメッセージを入力できるテキスト領域があり、送信時には、選択した番号に送信して携帯電話番号を表示する必要があります。私は、$ mobilenumber変数に表示されるモバイル番号にメッセージを送信する関数sendbulkに$ mobilenumberを渡すことに挑戦しています。 $ mobilenumberを渡す以外はすべてが大丈夫です。これは、$ mobilenumberの値がすでに失われているため、$ messagesをバルク関数に送信するときに、選択した連絡先を表示するためにページが読み込まれた後に2番目の負荷で失われたと考えられます。どうすればそれを保存できますか? 以下のサンプルコードをチェックし、助言をお願いします。 $ mobilenumberをどのようにして保存するのですか?2番目の読み込みによってsendbulk()関数に引き渡されるようになりますか?誰でも?ページが2回読み込まれたときにPHP変数を保存する方法

<?php 



//Define variable and set to empty values 
$message = ""; 

if ($_SERVER["REQUEST_METHOD"] == "POST") { 

    $message = test_input($_POST['message']); 
    echo "$message"; 
} 

function test_input($data) { 
    $data = trim($data); 
    $data = stripslashes($data); 
    $data = htmlspecialchars($data); 
    return $data; 
} 



$time1    = isset($_POST['t1']) ? $_POST['t1'] : 'default something missing'; 
$time2    = isset($_POST['t2']) ? $_POST['t2'] : 'default something missing'; 
    //connection 

$sql = "SELECT DISTINCT msisdn FROM customer WHERE DATE_FORMAT(time_paid, '%Y-%c-%e') BETWEEN ADDDATE('$time1',INTERVAL 0 HOUR) AND ADDDATE('$time2',INTERVAL '23:59' HOUR_MINUTE)"; 
$result = $conn->query($sql); 

if ($result->num_rows > 0) { 

    echo " Recipients: "; echo "$result->num_rows <br> <br>"; 
    // output data of each row 
    while($row = $result->fetch_assoc()) { 
$mobilenumber = $row['msisdn']; 
     echo "Mobile : " . "$mobilenumber" . "<br>"; 

    } 
} else { 
    echo "No Contacts to Display"; 
} 

$conn->close(); 
sendbulk($mobilenumber,$message); 

?> 


<center></center> <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> 

    <textarea name='message' rows="6" cols="60" placeholder="Please Type Your Message Here"></textarea> 
    <br><br> 

    <input type="submit" name="submit" value="Send Message"> 
</form></center> 


<?php 

function sendbulk($mobilenumber,$message) { 

echo "$mobilenumber"; 
echo "$message"; 



    $serviceArguments = array(
     "mobilenumber" => $mobilenumber, 
     "message" => $message_sent 
    ); 

    $client = new SoapClient("http://*******"); 

    $result = $client->process($serviceArguments); 



    return $result; 


} 
+1

'$ _SESSION'では? '$ _COOKIE'では? –

答えて

2

あなたはsessionsを使用します。ここで

はサンプルコードです:

<?php 
session_start(); 

if (!isset($_SESSION['count'])) { 
    $_SESSION['count'] = 0; 
} else { 
    $_SESSION['count'] += 1; 
} 

echo $_SESSION['count']; 

?> 

は、Webサーバーを経由して、このファイルを再読み込みしてください。変数が増分しているのがわかるはずです。

代替方法として、$_COOKIEを使用することもできます。唯一の違いは、$_SESSIONがサーバー側に保存され、クライアントでアクセスできないことです。クライアントを識別するために、そのセッションのクッキーをクライアントに保存します。

$_COOKIEは、クライアントに完全に格納され、すべての要求に応じてブラウザによってサーバーに渡されます。

また、セッション変数やCookieが応答時間を過ぎてしまうので、注意してください。

また、セッションにアクセスするすべてのPHPファイルにはsession_start()が必要です。

関連する問題