学校用のPHPとHTMLを使用してウェブサイトをプログラミングする必要があります。ログインに使用するスクリプトを作成しました。あなたが管理者としてログインしたときに最初に動作します。ただし、名前、名、ピンの学生としてログインすると、最後のif部分だけが実行され、再度ログインすることができます。すべての変数が正しいのに、econdを実行することはありませんか?
スクリプト
<html>
<body>
<?php
mysql_connect("","root");
mysql_select_db("projekt");
$PinOG = "SELECT PIN FROM log_in WHERE Name =" . $_POST["Name"] . " and
NName =" . $_POST["NName"];
$NameOG = "SELECT Name FROM log_in WHERE NName =" . $_POST["NName"] . " and
PIN =" . $_POST["Pin"];
$NNameOG = "SELECT NName FROM log_in WHERE Name =" . $_POST["Name"] . " and
PIN =" . $_POST["Pin"];
$resN = mysql_query($NameOG);
$numN = mysql_num_rows($resN);
if ($_POST["Name"] == "Admin" and $_POST["NName"] == "Admin" and
$_POST["Pin"] == 1337){
header("Location:http://localhost/Projekt/Dalkner.html");
exit();
}
if ($_POST["Name"] == $NameOG and $_POST["NName"] == $_NNameOG and
$_POST["Pin"] == $PinOG){
$localtime = localtime();
$localtime_assoc = localtime(time(), true);
if ($localtime["6"] == 0 or $localtime["6"] == 6 or $localtime["6"] ==
1){
$Day = "Montag";}
if ($localtime["6"] == 2){
$Day = "Dienstag";}
if ($localtime["6"] == 3){
$Day = "Mittwoch";}
if ($localtime["6"] == 4){
$Day = "Donnerstag";}
if ($localtime["6"] == 3){
$Day = "Freitag";}
$Week = strftime("%V");
if ($Week % 2){
$SP = "spgm";
$SPO = "spg";
$RP = "rpgm";
$RPO = "rpg";
} else {
$SP = "spum";
$SPO = "spu";
$RP = "rpum";
$RPO = "rpu";
}
$commandEX = "mysqldump -u -p " .$SPO. "_" .$NameOG. "_" .$NNameOG >
$SP. "_" .$NameOG. "_" .$NNameOG.".sql";
exec($commandEX);
$commandIM = "mysql -u -p " .$SP. "_" .$NameOG. "_" .$NNameOG < $SP. "_"
.$NameOG. "_" .$NNameOG.".sql";
exec($commandIM);
$Kurs = "SELECT Kurs FROM Lehrerf, kurse WHERE Lehrer = Lehrerf";
$resK = mysql_query($Kurs);
$numK = mysql_num_rows($resK);
if ($numK != 0){
mysql_query("UPDATE" .$SP."_".$NameOG."_".$NNameOG . " Set NULL
WHERE " . $Day . " = " . $Kurs);
}
$commandREX = "mysqldump -u -p " .$RPO. "_" .$NameOG. "_" .$NNameOG >
$RP. "_" .$NameOG. "_" .$NNameOG.".sql";
exec($commandREX);
$commandRIM = "mysql -u -p " .$RP. "_" .$NameOG. "_" .$NNameOG < $RP.
"_" .$NameOG. "_" .$NNameOG.".sql";
exec($commandRIM);
$RLength = "SELECT RaumNeu FROM RaumÄ";
$resL = mysql_query($RLength);
$numL = mysql_num_rows($resL);
if ($NumL != 0){
while ($numL != 0){
$RaumNeu = "SELECT RaumNeu FROM RaumÄ WHERE idx = " . $numL;
$RaumAlt = "SELECT RaumAlt FROM RaumÄ WHERE idx = " . $numL;
if (mysql_num_rows($RaumNeu) === 0){
$numL = $numL - 1;
}else{
$RaumN = "SELECT RaumNeu FROM RaumÄ WHERE idx = " . $numL;
$RaumA = "SELECT RaumAlt FROM RaumÄ WHERE idx = " . $numL;
mysql_query("UPDATE" .$Rp."_".$NameOG."_".$NNameOG . " Set "
. $Day . " = " . $RaumN . " WHERE " . $Day . " = " .$RaumA);
$numL = $numL - 1;
}
}
}
$Vplan = "Select" . $Day . ", Stunden FROM " . $SP. "_" .$NameOG. "_"
.$NNameOG . " ORDER BY stunden DESC";
echo "<P>" . $Vplan . "</P>";
$VplanR = "Select" . $Day . " FROM " . $RP. "_" .$NameOG. "_" .$NNameOG
. " ORDER BY stunden DESC";
echo "<PR>" . $VplanR . "</PR>";
}
if ($numN == 0){
header("Location:http://localhost/Projekt/Log_in.html") ;
exit();
}
?>
</body>
</html>
は、私は本当にそれが第二の部分を実行していない理由を知りません。しかし、私は、ログインに入力された変数とデータベースが完全に一致することを保証することができます。
クエリ文字列と比較しますが、取得した結果とは異なりますか? – Jan
あなたの学校は古い、推奨されていない、安全でないmysql_' APIを使用するよう教えていますか?もしそうなら、彼らは**あなたの授業料とあなたの時間を盗んでいます**。愚かな教授法のトリックは決して驚かされません。 –
ええ、彼はあまりにも古いバージョンのMYSQLI is notを使用したいと思っています。しかし、どうやってこのタイプのNameOGなどがあるのだろうか? –