Kjapp og trygg hosting for Wordpress

Hvordan forhindre uautorisert sletting av f.eks. PM'er

skogtrollet

Medlem
DELETE * FROM pm WHERE id='$id'

Hvordan forhindre at brukere sletter hverandres meldinger, på enklest mulig måte?

Tilleggsspørsmål: Når jeg gjør slik:

SELECT name FROM medlemmer WHERE id=4

Hvordan henter jeg ut name? Fordi mysql_fetch_array() funker ikke når det bare hentes ut en verdi.
 
Første spørsmål: bruk en mysql-query og en if-sjekk for å finne ut om id-en til innlogget bruker matcher id-en til mottaker av pm.

Tilleggsspørsmål:
$result = mysql_query('SELECT name FROM medlemmer WHERE id=4');
$name = mysql_result($result, 0, 'name');
 

skogtrollet

Medlem
Så iden til innlogget bruker henter jeg fra, sessions elr?

Så dette krever minst en ekstra query mot databasen?
 
Når det gjelder hvor du skal få id fra kommer det an på hvordan du har bygd opp innloggingssystemet ditt. Selv pleier jeg å ha både id, innloggingsnavn og kryptert passord i sessions -- i tillegg kjører jeg for hver sidelasting en sjekk på at denne informasjonen faktisk er gyldig, og så har jeg en variabel hvor jeg lagrer helt binær informasjon om hvorvidt brukeren er innlogget eller ikke. Jeg pleier også gjerne å fetche inn all nødvendig brukerinfo på hver side fordi det ER vanvittig praktisk å ha tilgang på denne informasjonen i mitt tilfelle. Uansett har jeg alltid sett på det som en nødvendighet å ha en variabel hvor jeg har brukerens id lagret -- den trenger jeg til utrolig mye. Om du ikke allerede gjør noe slikt må du ta id et sted fra, ja.

Bortsett fra det trenger du ikke egentlig flere databasekall. Bruk bare

if ($innlogget) {
mysql_query('DELETE FROM pm WHERE id='.$id.' AND mottaker='.$brukerid.');
}
 
Topp