`` `php
php
// databasuppgifter
$ servername ="your_server_name";
$ användarnamn ="your_username";
$ lösenord ="your_password";
$ dbname ="your_database_name";
// Anslut till databasen
$ conn =new PDO ("SQLSRV:Server =$ Servername; databas =$ dbname", $ användarnamn, $ lösenord);
// Kontrollera om användaren är inloggad
if (isset ($ _ post ['användarnamn']) &&isset ($ _ post ['lösenord'])) {
$ användarnamn =$ _post ['användarnamn'];
$ lösenord =$ _post ['lösenord'];
// Fråga databasen för användaren
$ sql ="välj * från användare där användarnamn =:användarnamn";
$ stmt =$ conn-> förbereda ($ sql);
$ stmt-> bindparam (':användarnamn', $ användarnamn);
$ stmt-> execute ();
// Kontrollera om användaren finns
if ($ stmt-> rowCount ()> 0) {
$ user =$ STMT-> FETCH (PDO ::FETCH_ASSOC);
// Verifiera lösenordet
if (lösenord_verify ($ lösenord, $ användare ['lösenord']) {
// Användaren är autentiserad
session_start ();
$ _Session ['user_id'] =$ user ['id'];
// Ladda ner zip -filen
rubrik ('Content-Type:Application/Zip');
rubrik ('innehållsdisposition:bilaga; filnamn ="nedladdning.zip"');
readFile ('sökväg/till/din/nedladdning.zip');
utgång;
} annat {
// Ogiltigt lösenord
echo "ogiltigt användarnamn eller lösenord.";
}
} annat {
// Användare hittades inte
echo "ogiltigt användarnamn eller lösenord.";
}
} annat {
// Visa inloggningsformulär
?>
php
}
?>
`` `
Förklaring:
1. databasuppgifter: Definiera databasanslutningsinformation (server, användarnamn, lösenord och databasnamn).
2. Anslut till databasen: Upprätta en anslutning till MSSQL -databasen med PDO.
3. inloggningsformulärhantering:
- Kontrollera om användarnamnet och lösenordet skickas in.
- Fråga databasen för att hitta användaren med det angivna användarnamnet.
- Om användaren finns, verifiera lösenordet med 'Password_Verify () `.
4. autentisering och session:
- Om lösenordet är korrekt startar du en session och lagra användarens ID.
5. Ladda ner zip -fil:
- Ställ in lämpliga HTTP -rubriker för att ange filtyp och ladda ner prompt.
- Använd `readFile ()` för att skicka zip -filinnehållet till webbläsaren.
6. inloggningsformulär:
- Om användaren inte är inloggad, visa inloggningsformuläret med fält för användarnamn och lösenord.
Viktiga anteckningar:
- Byt ut platshållarna i koden med dina faktiska databasuppgifter, filväg och annan nödvändig information.
- Se till att du har förlängningen "PDO_SQLSRV" aktiverad i din PHP -konfiguration.
- Hash Användarlösenorden med säkert med en stark hashfunktion som `Password_hash ()` innan du förvarar dem i databasen.
- Implementera korrekt felhantering och säkerhetsåtgärder för att skydda din ansökan.
Denna kod ger en grundläggande struktur för att hantera inloggning och ladda ner en zip -fil. Du kan behöva ändra det ytterligare för att passa dina specifika krav.