Waarom werkt mijn PHP-code niet?


Beste antwoord

Eerste dingen eerst …

Geef nooit door de gebruiker aangeleverde gegevens rechtstreeks door aan de database. Er is nooit een reden waarom dat een goed idee is.

$name = mysqli\_real\_escape\_string($mysqli, $\_POST["name"]);

$pass = mysqli\_real\_escape\_string($mysqli, $\_POST["password"]);

Door real\_escape\_string() te gebruiken, voorkomt u dat uw script wordt gehackt met een SQL-injectie. Als u de waarden ergens anders moet gebruiken, kunt u eraan ontsnappen wanneer u uw zoekopdracht maakt.

$name = $\_POST["name"];

$sql = "SELECT * FROM users WHERE username = "".mysqli\_real\_escape\_string($mysqli, $name).""";

Doe iets soortgelijks elke keer dat u een SQL-query maakt. Uw INSERT -query moet ook waarden bevatten die zijn ontsnapt, ofwel door te ontsnappen aan de waarde die is opgeslagen in de variabele of door deze te escapen wanneer u de query maakt.

Waarom je “goed werk” ziet zonder gegevens in te voeren …

Je zorgt er nooit voor dat is input. Uw script zal proberen te communiceren met de database, zelfs als de gebruiker het formulier nog niet heeft ingevuld.

if(isset($\_POST["username"]) && isset($\_POST["password")) {

// put the rest of your script here

}

?>

Waarom worden er geen databaserecords aangemaakt.

Hmm ... ik weet het niet zeker. Vooral omdat er staat dat het werkte .

Probeer de bovenstaande wijzigingen aan te brengen en plaats vervolgens een opmerking bij dit antwoord om me te laten weten of er een wijziging en wat die wijziging is, en we kunnen van daaruit verder gaan.

Controleer ook uw serverlogboeken om te zien of er fouten zijn. Als u dat niet kunt of als de fouten zijn uitgeschakeld, kunt u proberen dit bovenaan uw script toe te voegen:

ini\_set("error\_reporting", E\_ALL);

ini\_set("html\_errors", true);

ini\_set("display\_errors", "stdout");

Trouwens…

De kenmerken van je labels for moeten verwijzen naar de ID van een element.

Je hebt ...

Je zou moeten hebben ...

Antwoord

php

$ host = "AAAAAA"; $ user = "AAAAA"; $ pass = "AAAAAA"; $ db = "AAAAA";

$ connect = mssql\_connect ($ host, $ user, $ pass) of die ("Unable to connect"); $ database = mssql\_select\_db ($ db, $ connect) of die ("Kan geen verbinding maken met geselecteerde database");

if (isset ($ \_POST (["submit"]))) {$ email = S\_POST ["e-mail"]; $ firstname = S\_POST ["firstname"]; $ lastname = S\_POST ["achternaam"]; $ 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-mail:
Voornaam:
Achternaam:
Wachtwoord:
nput type = "submit" name = "submit" value = "Registreren"

?>

dus de php co de die ik je oorspronkelijk gaf was slechts een voorbeeld, zelfs een simpele echocode werkt niet. Nou, ik heb de code op notepad ++ geschreven en geüpload door de code in kompozer te plakken. kijk, ik kreeg te horen dat het moet worden geüpload met .php-extensie in plaats van hmtl en dat is de reden waarom het niet werkt. maar ik vind dat verwarrend, dus hoe voeg ik het toe aan een bepaalde link in mijn indexpagina. pls advies en laat me weten wat je ervan vindt. waardeer het

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *