我有一个表单(form.php)和一个处理表单(record.php)的页面。我希望用户在提交表单时留在form.php上,所以我一直在使用curl。目前,当我加载页面时,它只是缓冲了几个小时而且没有做任何事情,我不知道为什么。这就是我的form.php
<?php
function post_to_url($url, $data) {
$fields = '';
foreach($data as $key => $value) {
$fields .= $key . '=' . $value . '&'; }
rtrim($fields, '&');
$post = curl_init();
curl_setopt($post, CURLOPT_URL, $url);
curl_setopt($post, CURLOPT_POST, count($data));
curl_setopt($post, CURLOPT_POSTFIELDS, $fields);
curl_setopt($post, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($post);
curl_close($post);
}
if(isset($_POST["ename"])){
$ename = $_POST["ename"];
$message = $_POST["message"];
$etype = $_POST["etype"];
$date = $_POST["datepicker"];
$question = $_POST["question"];
$rtype = $_POST["rtype"];
$allowed1 = strtolower($_POST["allowed1"]);
$allowed2 = strtolower($_POST["allowed2"]);
$allowed3 = strtolower($_POST["allowed3"]);
$allowed4 = strtolower($_POST["allowed4"]);
$eforward = strtolower($_POST["eforward"]);
$data = array(
"ename" => "$ename",
"message" => "$message",
"etype" => "$etype",
"date" => "$$date",
"question" => "$question",
"rtype" => "$rtype",
"allowed1" => "$allowed1",
"allowed2" => "$allowed2",
"allowed3" => "$allowed3",
"allowed4" => "$allowed4",
"eforward" => "$`enter code here`eforward"
);
post_to_url("URL to Post to", $data);
}
?>
<form id="form" name="form" method="post" action="form.php">
<label for="ename">Event Name</label>
<input name="ename" type="text" id="ename">
<label for="message">Message</label>
<textarea name="message" id="message"></textarea>
<label for="etype">Response Required</label>
<select name="etype" size="2" id="etype">
<option value="0" selected="selected">No</option>
<option value="1">Yes</option>
</select>
Event Resender End Date:
<input name="datepicker" type="text" id="datepicker" size="10">
MM/DD/YYYY <select name="eforward" id="eforward">
//dynamic select </select><br>
<label for="question">Question for responses</label>
<input type="text" name="question" id="question" maxlength="18"><br>
<label for="rtype">Response Type</label>
<select name="rtype" size="3" id="rtype">
<option value="0" selected="selected">Standard Yes/No Response</option>
<option value="1">Create Responses</option>
<option value="2">Get Users Own Response</option>
</select>
Response Options<br>Only 1 Response option is required.<br></h4>
<label for="allowed1">Option 1</label>
<input type="text" name="allowed1" id="allowed1" maxlength="12">Max Length = 12
<label for="allowed2"><br>
Option 2</label>
<input type="text" name="allowed2" id="allowed2" maxlength="12">
<br>
<label for="allowed3">Option 3</label>
<input type="text" name="allowed3" id="allowed3" maxlength="12">
<label for="allowed4"><br>
Option 4</label>
<input type="text" name="allowed4" id="allowed4" maxlength="12">
</div>
</div>
<input name="submit" type="submit" value="Send Event Message">
</form>
答案 0 :(得分:1)
好的,这根本不是curl
的目的......
想象一下:
你有你的服务器 - 你的PHP代码运行的地方,你有你的客户端,你发送HTML / CSS / JS的人 -
这个页面永远缓冲的原因是因为curl正在运行,但无济于事,因为你使用它不正确。
当您希望服务器与其他服务器通信时,使用Curl。
现在 - 如果你希望你的表单正常工作,不要使用CURL,使用AJAX ---有很多教程,但这个是我的最爱,我是如何学习如何使用AJAX-- / p>
检查出来:
http://www.elated.com/articles/slick-ajax-contact-form-jquery-php/