View Single Post
Hei NAPse.

Dette er heldigvis bare spørringer jeg satt opp for å sjekke at ting "fungerer" før jeg på en måte "sikrer" det bedre og får meldinger oppe og går.

Når det gjelder det med sletting:
Ja. Jeg er helt sikker på at databasen slettes selv om skey ikke er skrevet inn. Jeg har databasen oppe i en fane mens jeg tester samt at database entryene kommer inn i appen fortløpende når noe slettes eller legges inn.

Når jeg legger inn en entry, sjekker jeg alltid både appen og databasen har det jeg satt inn og det samme gjelder når jeg sletter. Hvorfor denne ikke "reagerer" på skey har jeg enda ikke klart å finne ut av.

Skal sette meg ned å se litt på dette om noen minutter og gjøre SQL'en bedre og se litt mer på det da. Men kan ikke se noe som er feil i selve spørringen. Men jeg lurer på om det er noe med AJAX funksjonen som ikke fungerer som den skal, MEN jeg kan jo ta litt "smør på flesk" som vi sier og gjøre dobbelsjekk om faktisk email er i tabellen og skey er i tabellen og sjekke om disse er i samme rad etc. Skal se litt på dette straks så oppdaterer jeg vell med hva jeg finner ut av / ikke finner ut av.

UPDATE:

Ting fungerer i hvert fall nå. Nå sletter den ikke raden når bare epost er lagt inn, men KUN når epost og secretKey er lagt inn og match i databasen.

Koden jeg bruker nå er som følger:

Kode

$conn = new mysqli($servername, $username, $password, $dbname);

if($conn->connect_error) {
	print_r( "Connection failed: " . $conn->connect_error );
} else {

}



$sql = "SELECT email, secretKey FROM form WHERE email='$email' AND secretKey='$skey'";


if(mysqli_num_rows($sql) < 1) {
	echo "Your information does not match our records";
}


if($stmt = $conn->prepare($sql)) {

	$email 	= $_POST['delete'];
	$skey 	= $_POST['skey'];

	$stmt->bind_param("ss", $email, $skey);
	$stmt->execute();
	if(!$stmt->errno) {

	}

	$stmt->close();

}

$email 	= $_POST['delete'];
$skey 	= $_POST['skey'];


$delete = $conn->prepare("DELETE FROM form WHERE email='$email' AND secretKey='$skey'");
$delete->bind_param("is", $email, $skey);
$delete->execute();
$delete->close();

if(mysqli_affected_rows($conn) > 0) {
	echo "You have deleted your information from our site. We hope you will come back one day!";
} else {
	echo "Could not delete data. Try again later!";
}



$conn->close();

Måtte prøve og feile 999 ganger, men til slutt fungerte dette.
Nå tenker jeg at feilmeldingen til if statementen under "SELECT" må rettes litt på. Denne kjører selv om den er vellykket eller ikke.


Noen innvendinger på hvordan koden her er satt opp? Jeg tar gjerne imot mange tips for å kunne bli bedre i det jeg gjør her.


Ha en fin helg alle sammen og takk til alle som har svart her.
Sist endret av Nikon01; 26. april 2019 kl. 23:45. Grunn: Automatisk sammenslåing med etterfølgende innlegg.