`` php
Php
// Database -legitimasjon
$ servername ="your_server_name";
$ brukernavn ="Your_UserName";
$ passord ="Your_Password";
$ dbname ="your_database_name";
// Koble til databasen
$ conn =new PDO ("SQLSRV:server =$ servernavn; database =$ dbname", $ brukernavn, $ passord);
// sjekk om brukeren er logget inn
if (isset ($ _ post ['brukernavn']) &&isset ($ _ post ['passord'])) {
$ brukernavn =$ _post ['brukernavn'];
$ passord =$ _post ['passord'];
// spør om databasen for brukeren
$ sql ="Velg * fra brukere der brukernavn =:brukernavn";
$ stmt =$ conn-> forberedelse ($ sql);
$ stmt-> bindparam (':brukernavn', $ brukernavn);
$ stmt-> execute ();
// sjekk om brukeren eksisterer
if ($ stmt-> rowCount ()> 0) {
$ bruker =$ stmt-> hent (pdo ::fetch_assoc);
// Bekreft passordet
if (passord_verify ($ passord, $ bruker ['passord')) {
// Bruker er autentisert
Session_Start ();
$ _Session ['user_id'] =$ bruker ['id'];
// Last ned ZIP -filen
header ('innholdstype:applikasjon/zip');
header ('innholds-disposisjon:vedlegg; filnavn ="download.zip"');
readfile ('Path/to/your/download.zip');
gå;
} annet {
// Ugyldig passord
ekko "ugyldig brukernavn eller passord.";
}
} annet {
// Bruker ikke funnet
ekko "ugyldig brukernavn eller passord.";
}
} annet {
// Vis innloggingsskjema
?>
Php
}
?>
`` `
Forklaring:
1. Databaseopplysning: Definer databasetilkoblingsinformasjonen (server, brukernavn, passord og databasenavn).
2. Koble til databasen: Etablere en forbindelse til MSSQL -databasen ved hjelp av PDO.
3. Innloggingsskjemahåndtering:
- Sjekk om brukernavnet og passordet er sendt inn.
- Spør om databasen for å finne brukeren med det spesifiserte brukernavnet.
- Hvis brukeren eksisterer, må du bekrefte passordet ved å bruke `passord_verify ()`.
4. Autentisering og økt:
- Hvis passordet er riktig, kan du starte en økt og lagre brukerens ID.
5. Last ned zip -fil:
- Angi de aktuelle HTTP -overskriftene for å indikere filtypen og nedlasting.
- Bruk `ReadFile ()` for å sende zip -filinnholdet til nettleseren.
6. påloggingsskjema:
- Hvis brukeren ikke er logget inn, kan du vise påloggingsskjemaet med felt for brukernavn og passord.
Viktige merknader:
- Bytt ut plassholdere i koden med din faktiske databaseopplysning, filsti og annen nødvendig informasjon.
- Forsikre deg om at du har `pdo_sqlsrv` -utvidelsen aktivert i PHP -konfigurasjonen.
- Hash brukerpassordene sikkert ved å bruke en sterk hashfunksjon som `passord_hash ()` før de lagrer dem i databasen.
- Implementere riktig feilhåndtering og sikkerhetstiltak for å beskytte søknaden din.
Denne koden gir en grunnleggende struktur for håndtering av pålogging og nedlasting av en zip -fil. Det kan hende du må endre det videre for å passe dine spesifikke krav.