package loginphp;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class Loginphp {
public static void main(String[] args) throws MalformedURLException, IOException {
String url = "http://localhost/login/login.php";
String Parameters = "username=admin&password=admin";
byte[] postdata = Parameters.getBytes("UTF-8");
String useragent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0";
URL urlLink = new URL(url);
HttpURLConnection urlConn = (HttpURLConnection) urlLink.openConnection();
urlConn.setRequestMethod("POST");
urlConn.setRequestProperty("User-Agent", useragent);
urlConn.setRequestProperty("Content-Length", String.valueOf(postdata.length));
urlConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
urlConn.setInstanceFollowRedirects(true);
urlConn.setDoOutput(true);
urlConn.getOutputStream().write(postdata);
System.out.println("Connecting to " + url);
System.out.println("Response " + urlConn.getResponseMessage());
System.out.println("Code " + urlConn.getResponseCode());
InputStream is = urlConn.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader bis = new BufferedReader(isr);
String output;
while ((output = bis.readLine()) != null) {
System.out.println(" " + output);
}
}
}
我发送了一个帖子请求到以下代码,但是它在登录后没有重定向到欢迎页面,我不确定它是否登录。结果我得到的是与登录页面相同的代码。可能是什么问题呢 ? 我的主要目标是记录并重定向到welcome.php。该脚本使用浏览器完美运行。能够记录,重定向到欢迎页面并注销。
<?php
include("config.php");
session_start();
$error = "";
if($_SERVER["REQUEST_METHOD"] == "POST") {
// username and password sent from form
$myusername = mysqli_real_escape_string($db,$_POST['username']);
$mypassword = mysqli_real_escape_string($db,$_POST['password']);
$sql = "SELECT id FROM admin WHERE username = '$myusername' and passcode = '$mypassword'";
$result = mysqli_query($db,$sql);
$row = mysqli_fetch_array($result,MYSQLI_ASSOC);
$active = $row['active'];
$count = mysqli_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count == 1) {
// session_register("myusername");
$_SESSION['login_user'] = $myusername;
header("location: welcome.php");
}else {
$error = "Your Login Name or Password is invalid";
}
}
?>
<html>
<head>
<title>Login Page</title>
<style type = "text/css">
body {
font-family:Arial, Helvetica, sans-serif;
font-size:14px;
}
label {
font-weight:bold;
width:100px;
font-size:14px;
}
.box {
border:#666666 solid 1px;
}
</style>
</head>
<body bgcolor = "#FFFFFF">
<div align = "center">
<div style = "width:300px; border: solid 1px #333333; " align = "left">
<div style = "background-color:#333333; color:#FFFFFF; padding:3px;"><b>Login</b></div>
<div style = "margin:30px">
<form action = "" method = "post">
<label>UserName :</label><input type = "text" name = "username" class = "box"/><br /><br />
<label>Password :</label><input type = "password" name = "password" class = "box" /><br/><br />
<input type = "submit" value = " Submit "/><br />
</form>
<div style = "font-size:11px; color:#cc0000; margin-top:10px"><?php echo $error; ?></div>
</div>
</div>
</div>
</body>
</html>
答案 0 :(得分:0)
简短的回答是你应该使用303 redirect:
header("HTTP/1.1 303 See Other");
header("location: welcome.php");