Hvorfor fungerer ikke PHP-koden min?


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!!";

}

}

E-post:
Fornavn:
Etternavn:
Passord:
nput type = "send inn" navn = "send" verdi = "Registrer"

?>

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

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *