<?php
$dateiname = 'daten.txt';
$inhalt =$_POST['vorname'].' '.$_POST['nachname']."; ".$_POST['abteilung'].";".$_POST['strecke']."; ".$_POST['groesse'].' ; '.$_POST['tag'].'.'.$_POST['monat'].'.'.$_POST['jahr'].PHP_EOL."";
echo "Sie haben folgende Angaben gemacht:<br>";
echo "Name: $_POST[vorname] $_POST[nachname]
<br>Abteilung: $_POST[abteilung]
<br>Geburtsdatum: $_POST[tag].$_POST[monat].$_POST[jahr]
<br>Strecke: $_POST[strecke]
<br>Groesse: $_POST[groesse]<br> ";
echo "Vielen Dank!";
$handle = @fopen($dateiname, "ab+");
fwrite($handle, $inhalt);
fclose ($handle);
if (file_exists($dateiname) == true) {
@chmod ($dateiname, 0757);
}
sleep(10);
header("location: http://google.com");
?>
嘿伙计们,我有一个问题。我尝试做一个PHP回声,然后10secs后重定向。但是使用此代码,不会显示php echo
答案 0 :(得分:6)
因为您正在使用生成页面的html代码,而不是在浏览器中将其显示给最终用户......
在使用元刷新重定向到浏览器之前,请暂停一下。生成包含以下内容的html:
<html>
<head>
<meta http-equiv="refresh" content="3;url=http://www.somewhere.com/" />
</head>
<body>
<h1>Redirecting in 3 seconds...</h1>
</body>
</html>
修改强>
<?php
$dateiname = 'daten.txt';
$inhalt =$_POST['vorname'].' '.$_POST['nachname']."; ".$_POST['abteilung'].";".$_POST['strecke']."; ".$_POST['groesse'].' ; '.$_POST['tag'].'.'.$_POST['monat'].'.'.$_POST['jahr'].PHP_EOL."";
echo '<html>
<head>
<meta http-equiv="refresh" content="10;url=http://www.google.com/" />
</head>
<body>';
echo "Sie haben folgende Angaben gemacht:<br>";
echo "Name: $_POST[vorname] $_POST[nachname]
<br>Abteilung: $_POST[abteilung]
<br>Geburtsdatum: $_POST[tag].$_POST[monat].$_POST[jahr]
<br>Strecke: $_POST[strecke]
<br>Groesse: $_POST[groesse]<br> ";
echo "Vielen Dank!";
$handle = @fopen($dateiname, "ab+");
fwrite($handle, $inhalt);
fclose ($handle);
if (file_exists($dateiname) == true) {
@chmod ($dateiname, 0757);
}
echo '</body></html>';
答案 1 :(得分:2)
在向用户发送一些数据后,您无法从用户重定向用户。 但是,您可以通过在页面上使用javascript来实现此目的:
<script>
setTimeout(function(){
windows.location = "next_page.html";
}, 10000);
</script>
10000ms = 10秒
答案 2 :(得分:1)
我和@Mark Baker非常相似。除了使用$var
而不是$_POST['name']
<?php $name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$formcontent = "From: $name \n Message: $message";
$recipient = "me@email.com";
$subject = "My Contact Form";
$mailheader = "From: $email \r\n";
mail($recipient, $subject, $formcontent, $mailheader) or die("Son of a biscuit, something went wrong!");
echo '<html>
<head>
<meta http-equiv="refresh" content="4;url=http://www.mywebsite.com/" />
</head>
<body>
<div>';
echo "<h1>Thank you for the message: </h1><br>";
echo "Name: $name <br>
Email: $email <br>
Message: $message";
echo '</div></body></html>';
?>
答案 3 :(得分:0)
你不能在echo语句后设置标题。
echo发送标头本身,因此不再发送另一个标头。
答案 4 :(得分:0)
PHP是服务器端编程语言。一旦将其发送到客户端,它就不能再更新页面,并返回作为HTML页面生成的整个页面。
它获得一个请求并生成响应为HMTL并将其发送到客户端(在本例中为浏览器),sleep(10)
,停止PHP
脚本
在生成响应之前持续10秒。
这意味着它在完成请求之前不会回应任何内容。