View Single Post
Sitat av Nikon01 Vis innlegg
Jeg har trim i AJAX hvis det hjelper i variablene eller bør man gjøre det i PHP i tillegg?
Vis hele sitatet...
Alt som gjøres på klient-siden kan du gå ut fra ikke er sikkert. All input må valideres på server før du lagrer noe (på server har du kontroll, klient har du ikke kontroll over).

Sitat av Nikon01 Vis innlegg
Nå gjelder det egentlig å skjønne seg på echo meldingene her så kan man endelig begynne å rense koden litt å implementere sikkerhetsmekanismer.

Ser nå litt på koden min og har da liksom dette:

Kode

if(mysqli_num_rows($sql) > 0) {

		$row = mysqli_fetch_assoc($sql);
		if($username == $row['username']) {
			echo 1;
		} elseif($email == $row['email']) {
			echo 2;
		}
	}  else {
		echo 3;
	}
Jeg vil jo her ha 1 echo for at brukernavn eksistere, epost eksisterer og at noe feil har skjedd, f.eks tilkobling til databasen og en echo som sier at alt gikk bra.
Det denne gjør er å echo 3 uansett om jeg tar samme brukernavn, samme epost eller om alt går igjennom.

Regner jo med at denne if statementen her kanskje skal kjøres før $stmt->execute() kjører. Har prøvd både før og etter, men fortsatt bare echo 3.
Kjenner jeg må slutte å ha 4-6 års opphold fra et språk, for da glemmer man det bare
Vis hele sitatet...
Det virker mer fornuftig å sjekke om e-post/brukernavn finnes før du kjører insert-setningen. Kan være greit å lage deg noen hjelpefunksjoner for ting du gjør ofte:
  • load_user_by_mail (kan brukes for å sjekke om en bruker finnes)
  • load_user_by_username (kan brukes for å sjekke om en bruker finnes)
  • delete_user

Om du ønsker å returnere JSON kan du gjøre sånn her:

Kode

header('Content-Type: application/json');
echo json_encode(["message": "Brukernavn finnes"]);