2015-07-03 8 views
0

Я отправляю строку через запрос ajax в файл php, который кодирует строку. Это работает, в консоли отладчика я получаю полную кодированную строку.Отправка запроса ajax на php не удается

Я хочу объединить закодированную строку с другой переменной, но она не работает, она дает мне ошибку 500 Server, я пробовал разные решения, но никто из них не работает.

$(document).ready(function() { 
        $("#paybutton").click(function() { 
             var params = "projectpaymentoption=1111&id=", 
             usernamepay = window.localStorage.getItem("username"), 
             paymenturl = params + usernamepay; 

             $.ajax({ 
               type: 'POST', 
               url: 'http://www.blabla.de/phone/encode.php', 
               data: $.param({"paymenturl": paymenturl}), 
               success: function(result) { 
               window.open('result','_blank','location=no','closebuttoncaption=Zurück');             
               console.log(result); 
               } 
               }); 
             }); 
        }); 

Вот мой Encode.php:

<?php 

print_r($_POST); // see full contents of the POST 
$user = $_POST['paymenturl']; 
print PHP_EOL . $user . PHP_EOL; // see full contents of the $user var 
$password = "blabla"; 
$salt = "blabla"; 

function encode($password,$decrypted,$salt){  
$key = hash('SHA256', $salt . $password, true);  
$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, 
MCRYPT_MODE_CBC), MCRYPT_RAND); 
if (strlen($iv_base64 = rtrim(base64_encode($iv), '=')) != 22) { 
throw new Exception("Encoding failed!"); 
} 
$encrypted = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, 
$decrypted . md5($decrypted), MCRYPT_MODE_CBC, $iv)); 
return urlencode($iv_base64 . $encrypted); } 

$en = encode($password,$user,$salt); 

$output = array "http://pay4mobile.com/Payments/Connect/1111/DE?o={$en}"; 
echo json_encode($output); 
?> 

Я хочу, чтобы объединить $ ан переменной с "http://pay4mobile.com/Payments/Connect/1111/DE?o=" и отдать его обратно в PhoneGap inappbrowser, который открывается, но не работают. Что я делаю неправильно?

ответ

0

Является ли «массив» опечаткой в ​​вашем $ output =?

Если на выходе должен быть одно значением в массиве, используйте:

$output = array("http://pay4mobile.com/Payments/Connect/1111/DE?o={$en}");

Если нет, то используйте:

$output = "http://pay4mobile.com/Payments/Connect/1111/DE?o={$en}";

+0

Проблема любое решение дает мой слэш в выход, поэтому я не могу его открыть. Мне нужно преобразовать косые черты в обратные косые черты в кодировке json. JSON_UNESCAPED_SLASHES не работает, но моя версия php имеет 2 даты. – mav

+0

Вы можете urlencode, если сначала, затем urldecode. $ en = urlencode (encode ($ password, $ user, $ salt)); –

Смежные вопросы