Мне действительно нужна твоя помощь. Наш босс хочет, чтобы я проверил, почему он не может получить доступ к форме входа, которая была сделана нашим предыдущим разработчиком, и попросила, могу ли я сбросить или обновить их пароли. Я новичок в PHP и sql, но у меня есть базовые знания о них.
Я попытался сбросить пароль с помощью phpmysql, но все равно доступ к файлам невозможен всегда и сообщение об ошибке
Недействительная входная информация!
Можете ли вы, ребята, помочь мне с этим? Bellow - это сценарий, который наш предыдущий разработчик.
<?php
include("./inc.config.php");
include("./inc.utils.php");
include("./inc.mysql.php");
include("./inc.sysprod.php");
$db = new sql_db(HOST, USER, PASS, DB, false);
$sCompName = GetCompName($db);
session_start();
if ($_POST["sc_submit"])
{
if (isset($_POST["uname"]) && isset($_POST["pword"]))
{
$db = new sql_db(HOST, USER,PASS, DB, false);
$sSQL = "SELECT member_code, nickname FROM members WHERE user_name = '".uAddSlashes($_POST["uname"])."' ".
"AND pass_word = password('".uAddSlashes($_POST["pword"])."') ";
$rResult = $db->sql_query($sSQL);
if ($db->sql_numrows($rResult) == 1)
{
if (!isset($_SESSION["sc_mcode"]))
{
$rRow = $db->sql_fetchrow();
$_SESSION["sc_mcode"] = $rRow["member_code"];
$_SESSION["sc_nname"] = $rRow["nickname"];
$_SESSION["sc_stime"] = adjustTime(TIME_OFFSET, mktime());
$_SESSION["sc_productcode"] = "";
$_SESSION["sc_mlastname"] = "";
$_SESSION["sc_mfirstname"] = "";
$_SESSION["sc_maddress"] = "";
$_SESSION["sc_memail"] = "";
$_SESSION["sc_mcontactno"] = "";
$_SESSION["sc_rcode"] = "";
$_SESSION["sc_rlastname"] = "";
$_SESSION["sc_rfirstname"] = "";
$_SESSION["sc_remail"] = "";
$_SESSION["sc_raddress"] = "";
$_SESSION["sc_rcontactno"] = "";
$_SESSION["sc_vquestion"] = "";
$_SESSION["sc_vanswer"] = "";
$_SESSION["sc_center"] = "";
$db = new sql_db(HOST, USER, PASS, DB, false);
$sSQL = "INSERT INTO logs SET session = '".$_COOKIE[session_name()]."', ".
"member_code = '".uAddSlashes($_SESSION["sc_mcode"])."', ".
"start_login = '".$_SESSION["sc_stime"]."', ".
"last_login = '".$_SESSION["sc_stime"]."' ";
$rResult = $db->sql_query($sSQL);
$eError = $db->sql_error();
$db->sql_close();
header("Location: sendinfo.php");
}
}
else {
$invalid = 1;
}
}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title><?php echo $sCompName; ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<LINK HREF="layout.css" REL="stylesheet" TYPE="text/css">
</head>
<body>
<TABLE WIDTH="100%" HEIGHT="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0">
<FORM NAME="frmLogin" METHOD="POST" ACTION="login.php">
<TR>
<TD ALIGN="CENTER"><TABLE BORDER="0" CELLSPACING="0" CELLPADDING="0">
<TR ALIGN="CENTER">
<TD HEIGHT="30" COLSPAN="2" CLASS="Text">Login Here</TD>
</TR>
<?php
if ($invalid == 1) {
?>
<TR ALIGN="CENTER">
<TD HEIGHT="30" COLSPAN="2" CLASS="Text"><FONT COLOR="#FF0000"><? echo "Invalid username and/or password!"; ?></FONT></TD>
</TR>
<?php } ?>
<TR>
<TD HEIGHT="30" CLASS="Text"> username </TD>
<TD HEIGHT="30" CLASS="Text1">
<INPUT TYPE="text" NAME="uname" CLASS="Fields" STYLE="width:150px;">
</TD>
</TR>
<TR>
<TD HEIGHT="30" CLASS="Text"> password </TD>
<TD HEIGHT="30" CLASS="Text1"><INPUT NAME="pword" TYPE="password" CLASS="Fields" STYLE="width:150px;">
</TD>
</TR>
<TR ALIGN="CENTER">
<TD HEIGHT="30" COLSPAN="2">
<INPUT TYPE="submit" NAME="sc_submit" VALUE="log-in" CLASS="Fields" STYLE="width:100px;"></TD>
</TR>
</TABLE></TD>
</TR>
</FORM>
</TABLE>
</body>
</html>
Я не знаю, что с этим поделать. Прежде чем я устранил ту же проблему, но на этот раз мне очень тяжело.
Я замечаю на phpmyadmin при обновлении пароля, выбирая функцию PASSWORD в поле пароля, произошла ошибка
Предупреждение: # 1265 Данные усечены для столбца
Я попытался изменить функцию на md5 или old_password, а также изменить тип скрипта:
"AND pass_word = password('".uAddSlashes($_POST["pword"])."') ";
в
"AND pass_word = md5('".uAddSlashes($_POST["pword"])."') ";
И это работает сейчас. Большое вам спасибо. Я не знаю, что означает ошибка.