[英]PHP form - post current URL as hidden value
我在获取发送填充表单的当前URL时遇到麻烦。
我想将相同的表格用于更多的网站。
这是我的表单代码:
<form method="post" action="send_c_box.php">
<input type="text" class="textbox" name="meno" value="meno" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'meno a priezvisko';}">
<input type="text" class="textbox" name="email" value="email" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'e-mail';}">
<input type="hidden" name="current_url" value="<?php echo'http://',$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];?>" readonly/>
<div class="clear"></div>
<div>
<textarea value="Vaša správa:" name="mytext" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Vaša správa...';}">Vaša správa...</textarea>
</div>
<span><input type="submit" name="submit" class="" value="Odoslať"></span>
</form>
和PHP发送电子邮件。 我需要它的$ message来显示URL,但是我无法通过调用$ url使它工作
<?php
header( "refresh:3;url=index.html" );
if(isset($_POST['submit'])) {
$to = "szabo@atria.sk";
$from = $_POST['email'];
$first_name = $_POST['meno'];
$url = $_POST['current_url'];
$subject = "Správa z kontaktného formuláru";
$subject2 = "Potvrdenie o odoslaní formuláru";
$message = $first_name . " napísal vo formulári:" . "\n\n" . $_POST['mytext'] . "from" . $url;
$message2 = "Dakujeme za odoslanie formuláru. V krátkom case Vás kontaktujeme.";
$headers = "From:" . $from;
$headers2 = "From:" . $to;
mail($to,$subject,$message,$headers);
mail($from,$subject2,$message2,$headers2);
echo "Dakujeme za odoslanie vyplneného formuláru " . $first_name . ", za okamih budete presmerovaný spät.";
}
?>
我要去哪里错了?
一个解决方案是还使用:
$thisUrl=$_SERVER['REQUEST_SCHEME'].'://'.$_SERVER['SERVER_NAME'].$_SERVER['SCRIPT_NAME'];
这是一个可能对您有帮助的功能:)
function get_current_url() {
$pageURL = 'http';
if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} else {
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
return $pageURL;
}
它可与http和https一起使用,并将返回您当前的网址。
在您的代码中
<input type="hidden" name="current_url" value="<?php echo'http://',$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];?>" readonly/>
您正在尝试用逗号(,)而不是点(。)来连接http://字符串。
尝试这个
<input type="hidden" name="current_url" value="<?php echo 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; ?>" />
您隐藏的输入中的逗号(“ http://”之后)。 一定是:
<input type="hidden" name="current_url" value="<?php echo 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];?>" readonly/>
我想通了,只用了window.location.href
<input type='hidden' id='currentId' name="current_url">
<script type="text/javascript">
document.getElementById('currentId').value=window.location.href ;
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.