Hello,
I need some help.
I am using Sendy from Sendy.co and the Simple Ajax Script which can be found here: http://sendy.co/api
Scenario A - working
Sever: Local XAMPP server
Script: Simple Ajax Script from above, is working like it should
allow_url_fopen: local -> On master -> Off
file_get_contents: returns the full strings of the API of Sendy.
Scenario B - not working
Sever: HostEurope Webserver
Script: Same code, I am copying it from the folder of the XAMPP server, but it is not working
allow_url_fopen: local -> On master -> Off
file_get_contents: returns an empty string
What I have tried:
- moving Sendy installation to another server, and changing the URL in the script, so that the server
is not calling the function file_get_contents with the url of itself. I read that the DNS server could have
some problems with it. Well... the problem still exists.
- changing the url setting of the url from ipv6 to ipv4
- asking hoster HostEurope, but with no real help...
So, I am going to ask you. Maybe you can help me. I have no idea, why the same code is running
on my local xampp server, but not on the HostEurope webserver.
Do you know this problem?
I also googled... a lot... but haven't found something that helped me.
Code:
//------------------- Edit here --------------------//
$sendy_url = ''; //here is the url of the sendy installation, which is right
$list = ''; //here is my list id, which is right
//------------------ /Edit here --------------------//
//--------------------------------------------------//
//POST variables
$name = $_POST['name'];
$email = $_POST['email'];
//subscribe
$postdata = http_build_query(
array(
'name' => $name,
'email' => $email,
'list' => $list,
'boolean' => 'true'
)
);
$opts = array('http' => array('method' => 'POST', 'header' => 'Content-type: application/x-www-form-urlencoded', 'content' => $postdata));
$context = stream_context_create($opts);
$result = file_get_contents($sendy_url.'/subscribe', false, $context);
//--------------------------------------------------//
echo $result;
?>
$(document).ready(function() {
$("#signup-form").submit(function(e){
e.preventDefault();
var $form = $(this),
name = $form.find('input[name="name"]').val(),
email = $form.find('input[name="email"]').val(),
url = $form.attr('action');
$.post(url, {name:name, email:email},
function(data) {
if(data)
{
if(data=="Some fields are missing.")
{
$("#status").text("Please fill in your name and email.");
$("#status").css("color", "red");
}
else if(data=="Invalid email address.")
{
$("#status").text("Your email address is invalid.");
$("#status").css("color", "red");
}
else if(data=="Invalid list ID.")
{
$("#status").text("Your list ID is invalid.");
$("#status").css("color", "red");
}
else if(data=="Already subscribed.")
{
$("#status").text("You're already subscribed!");
$("#status").css("color", "red");
}
else
{
$("#status").text("You're subscribed!");
$("#status").css("color", "green");
}
}
else
{
alert("Sorry, unable to subscribe. Please try again later!");
}
}
);
});
$("#signup-form").keypress(function(e) {
if(e.keyCode == 13) {
e.preventDefault();
$(this).submit();
}
});
$("#submit-btn").click(function(e){
e.preventDefault();
$("#signup-form").submit();
});
});