Beste svaret
Første ting først …
Ikke aldri overfør brukerdata som er levert direkte til databasen. Det er aldri en grunn til at det er en god idé.
$name = mysqli\_real\_escape\_string($mysqli, $\_POST["name"]);
$pass = mysqli\_real\_escape\_string($mysqli, $\_POST["password"]);
Ved å bruke real\_escape\_string()
vil skriptet ditt ikke bli hacket med en SQL-injeksjon. Hvis du trenger å bruke verdiene andre steder, kan du unnslippe den når du oppretter spørringen.
$name = $\_POST["name"];
$sql = "SELECT * FROM users WHERE username = "".mysqli\_real\_escape\_string($mysqli, $name).""";
Gjør noe lignende hver gang du oppretter et SQL-spørsmål. INSERT
-søket ditt bør også ha verdier, enten ved å unnslippe verdien som er lagret i variabelen eller unnslippe den når du oppretter spørringen.
Hvorfor du ser «god jobb» uten å skrive inn data …
Du sørger aldri for at det faktisk er innspill. Skriptet ditt vil prøve å samhandle med databasen selv om brukeren ikke har fylt ut skjemaet ennå.
if(isset($\_POST["username"]) && isset($\_POST["password")) {
// put the rest of your script here
}
?>
Hvorfor det ikke lages noen databaseregistreringer.
Hmm ... Jeg er ikke sikker. Spesielt siden det står at det fungerte .
Prøv å gjøre endringene ovenfor, og legg inn en kommentar til dette svaret for å gi meg beskjed om det er en endring og hva den endringen er, og vi kan gå derfra.
Sjekk også serverloggene for å se om det er noen feil der. Hvis du ikke kan gjøre det eller feil er deaktivert, kan du prøve å legge til dette øverst i skriptet:
ini\_set("error\_reporting", E\_ALL);
ini\_set("html\_errors", true);
ini\_set("display\_errors", "stdout");
Forresten ...
Etikettene dine for
attributtene skal peke på elementets ID.
Du har…
Du burde ha…
Svar
php
$ host = "AAAAAA"; $ bruker = "AAAAA"; $ pass = "AAAAAA"; $ db = "AAAAA";
$ connect = mssql\_connect ($ host, $ user, $ pass) eller die ("Kan ikke koble til"); $ database = mssql\_select\_db ($ db, $ connect) eller die ("Kan ikke koble til valgt database");
hvis (isset ($ \_POST (["send")))) {$ email = S\_POST ["e-post"]; $ fornavn = S\_POST ["fornavn"]; $ etternavn = S\_POST ["etternavn"]; $ pwd = S\_POST ["pwd"];
if trim($firstname) == "" || trim($lastname)=="" || trim($pwd)== ""
{
echo "You must enter both a firstname, lastname and password!!";
}
else
{
$sql = "INSERT INTO users ([email],[first\_name],[last\_name],[password])VALUES("$email","$firstname","$lastname","$pwd")";
$result = mssql\_query($sql);
if(!$result)
{
echo mssql\_error();
exit;
}
mssql\_free\_result($result);
mssql\_close();
echo "Data successfully inserted!!";
}
}
?>
slik at php co de jeg opprinnelig ga deg var bare et eksempel, til og med en enkel ekkokode fungerer ikke. vel jeg har skrevet koden på notisblokk ++ og lastet den opp ved å lime inn koden i kompozer. se jeg ble fortalt at det må lastes opp med .php-utvidelse i stedet for hmtl, og det er grunnen til at det ikke fungerer. men jeg synes det er forvirrende, så hvordan knytter jeg det til en bestemt lenke på indeksiden min. vær så snill og gi meg beskjed om hva du synes. setter pris på det