Я знаю, что у большинства людей была эта проблема, и многие спрашивали об этом, но никакое решение, похоже, не работает для меня. Я попытался увеличить post_max_size
и т.д. В php.ini
, я нашел ссылку на решение, которая должна была удалить эту строку RewriteRule ^(.*)$ http://www.whitemagicsoftware.com/$1 [R=301,L]
из .htaccess
но я не могу найти файл .htaccess
в моей папке xampp
где угодно. Я ищу решение в течение почти двух дней, пытался изменить код, но ничего не работало для меня. Я также пытался использовать $_GET
и $_REQUEST
но результат такой же. Я вижу, как значения переменных отправляются с использованием firebug
но мои переменные пусты. Любая помощь будет оценена по достоинству.
Это мой код
<?php require ("database_connect.php");?>
<!DOCTYPE html>
<html>
<body>
<form method="POST" action="<?php echo ($_SERVER["PHP_SELF"])?>">
Name : <input type="text" name="name"><br/>
Password : <input type="password" name="password"><br/>
<input type="submit" name="login" value="Log In">
</form>
<?php
//$name=$password="" ;
if($_SERVER["REQUEST_METHOD"]=="POST" and isset($_POST["login"])){
$name = testInput($_POST['name']);
$password = testInput($_POST['password']);
echo $name."<br>";
}//if ends here
//testInput function
function testInput($data){
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
}//testInput ends here
if(isset($_POST["login"]) && isset($_POST["name"]) && isset($_POST["password"]) && !empty($_POST["name"]) && !empty($_POST["password"])){
echo "Name is ".$name ."- Pass is ".$password."<br>";
if($result = mysqli_query($conn,"SELECT * FROM users" )){
//print "rows are ".$result->num_rows."<br>";//number of rows
if($result && mysqli_affected_rows($conn) >= 1){//If query was successfull and it has 1 or more than 1 result
//echo "you are logged in<br>";
($row = mysqli_fetch_row($result));
echo "$row[0] is ".$row[0]."- $row[1] is ".$row[1]."<br>";
if( $row[0]==$name && $row[1]==$password){
echo "Welcome";
}
}//if ends here
/* free result set */
$result->close();
}
else {
print "Wrong Credentials "."<br>";
die(mysqli_error($conn));
}
}
//close connection
$conn->close();
?>
</body>
</html>
Моя проблема решена, возникла проблема в моей функции testInput ($ data). Это обновленный код, который работает плюс простой совет для будущих пользователей, всегда внимательно просматривайте свой код, вы найдете проблему :)
<?php require ("database_connect.php");
error_reporting(E_ALL); ini_set('display_errors', 1);
?>
<!DOCTYPE html>
<html>
<body>
<form method="POST" action="<?php echo ($_SERVER["PHP_SELF"])?>">
Name : <input type="text" name="name"><br/>
Password : <input type="password" name="password"><br/>
<input type="submit" name="login" value="Log In">
</form>
<?php
//$name=$password="" ;
if($_SERVER["REQUEST_METHOD"]=="POST" and isset($_POST["login"])){
$name = testInput($_POST["name"]);
$password = testInput($_POST["password"]);
}//if ends here
//testInput function
function testInput($data){
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}//testInput ends here
if(isset($_POST["login"]) && isset($_POST["name"]) && isset($_POST["password"]) && !empty($_POST["name"]) && !empty($_POST["password"])){
if($result = mysqli_query($conn,"SELECT * FROM users WHERE name='$name' and password='$password'" )){
if($result && mysqli_num_rows($result) >= 1){//If query was successfull and it has 1 or more than 1 result
echo "Welcome <br>";
}//if ends here
else {
echo "Wrong Credentials <br>";
}
/* free result set */
$result->close();
}
else {
echo "Wrong Credentials <br>";
die(mysqli_error($conn));
}
}
//close connection
$conn->close();
?>
</body>
</html>
Я предполагаю, что htmlspecialchars() должен быть запущен до stripslashes() или просто удалить htmlspecialchars() в файле. :)
function testInput($data){
$data = trim($data);
$data = stripslashes($data);
return $data;
}
попытайтесь изменить,
<form method="POST" action="<?php echo ($_SERVER["PHP_SELF"])?>">
to
<form method="POST" action="">
<?php
tagerror_reporting(E_ALL); ini_set('display_errors', 1);
var_dump($_POST)
?