2017-12-14 13 views
2

$_GETの値を403から取得しています。私はそれを郵送しています。しかし、私は戻って403を返す場合は、sentをメールに返信します。GETスイッチを文字列に変更

<?php 
require_once 'vendor/autoload.php'; 

switch($_GET['status']) 
{ 
    case 403: 
     echo 'sent'; 
     break; 
} 
switch($_GET['status']) 
{ 
    case 404: 
     echo 'delivered'; 
     break; 
} 

if (!empty($_GET['MsgId'])) { 
    $transport = (new Swift_SmtpTransport('xxx', xxx)) 
     ->setUsername('xxx') 
     ->setPassword('xxx'); 

    $mailer = new Swift_Mailer($transport); 

    $message = (new Swift_Message('Status SMS ' . $_GET['MsgId'] . '.')) 
     ->setFrom(['xxx' => 'xxx']) 
     ->setTo(['xxx' => 'xxx', 'xxx' => 'xxx']) 
     ->setBody("ID Wiadomości : " . $_GET['MsgId'] . "Status Wiadomości" . $_GET['status'] . "."); 

    $result = $mailer->send($message); 

    echo 'OK'; 
} 
else { 
    echo 'Coś nie śmigło.'; 
} 
exit; 

スイッチが動作しません。

+1

これはスイッチの仕組みではありません:) – teeyo

+0

'switch'ステートメントは' if'ステートメントと同じように使用しています。 – Dimi

答えて

2

代わりに変数を使用して、あなたはechoを使用してグローバル変数$_GET['status']を変更していない、と私はあなたがあるべきとは思わない:

require_once 'vendor/autoload.php'; 
// we set a variable to hold the status code 
$status = ''; 
switch($_GET['status']) 
{ 
    case 403: 
     $status = 'sent'; 
     break; 
    case 404: 
     $status = 'delivered'; 
     break; 
} 


if (!empty($_GET['MsgId'])) { 
    $transport = (new Swift_SmtpTransport('xxx', xxx)) 
     ->setUsername('xxx') 
     ->setPassword('xxx'); 

    $mailer = new Swift_Mailer($transport); 

    $message = (new Swift_Message('Status SMS ' . $_GET['MsgId'] . '.')) 
     ->setFrom(['xxx' => 'xxx']) 
     ->setTo(['xxx' => 'xxx', 'xxx' => 'xxx']) 
     // and here you use that variable we prepared :) 
     ->setBody("ID Wiadomości : " . $_GET['MsgId'] . "Status Wiadomości" . $status . "."); 

    $result = $mailer->send($message); 

    echo 'OK'; 
} 
else { 
    echo 'Coś nie śmigło.'; 
} 
exit; 
0

ここでは、次のとおりです。

は変換値$ _GETから整数に受け取り、defaultの大文字小文字の値を追加しました。

switch((int)$_GET['status']) 
{ 
    case 403: 
    echo 'sent'; 
    break; 

    case 404: 
    echo 'delivered'; 
    break; 

default: 
    echo 'unknown status'; 
    break; 
} 
関連する問題