Avatar billede staywarde Nybegynder
22. juli 2005 - 22:21 Der er 13 kommentarer

Slet bruger_Logud

Hvordan gør man så at brugerne logge ud før brugeren bliver slettet.
Altså jeg vil nemlig gerne have at brugerne skulle kunne slette deres egen bruger, hvis de nu vil det.
Har selv prøvet på at rode med det, men den laver den fejl at stedet hvor den skal vise login/pass felterne eller tingene når man er logget ind er fuldstændig tom.

Jeg bruger (cookies)
Table hvor brugerne befinder sig i hedder an_members.
Avatar billede kdjweb Nybegynder
22. juli 2005 - 22:28 #1
du bruger vel et tjek til at se om man er logget ind, det kan du sætte til 0
Avatar billede staywarde Nybegynder
22. juli 2005 - 22:33 #2
altså det er når man har slettet brugeren den bliver tom, af hvad jeg har prøvet at lave
Avatar billede kdjweb Nybegynder
22. juli 2005 - 22:41 #3
mener du at du vil have en DELETE query?
Avatar billede staywarde Nybegynder
22. juli 2005 - 22:42 #4
altså vil have den til at slette brugeren og få den cookie slettet fra brugeren også, og efter hvad jeg mener for den ikke slettet cookien eller så noget da login/pass felterne eller tingene når man er logget ind er fuldstændig tom.
Avatar billede kdjweb Nybegynder
22. juli 2005 - 22:49 #5
jeg er ikke cookiesmaster, foretrækker sessions.. så jeg gir op
Avatar billede henninghabor Nybegynder
22. juli 2005 - 22:58 #6
Her er mit forslag:

Når brugeren er logget ind, ka' du oprette et link til slet.php.

slet.php:

<?php
ob_start(); // SKAL STÅ I TOPPEN AF FILEN

echo "<form action=\"?action=delete\">\n";
echo "Du skal indtaste dit kodeord for at bekræfte sletningen:\n";
echo "<input type=\"password\" name=\"password\">\n";
echo "<input type=\"submit\" value=\"Slet bruger\">\n";
echo "</form>\n";

if($_REQUEST[action] == "delete")
{
if($_REQUEST[password] == "$_COOKIE[password]") // ER INDTASTEDE KODEORD DET SAMME SOM INDHOLDET AF COOKIE[password]?
{
$deleteSQL = "DELETE FROM an_members WHERE email = '$_COOKIE[email]' AND password = '$_COOKIE[password]'";
mysql_query($deleteSQL);
}

setcookie("email", "$_COOKIE[email]", time() - 31536000); // SLET COOKIE

setcookie("password", "$_COOKIE[password]", time() - 31536000); // SLET COOKIE

header("location: index.php"); VIDERESTIL TIL FORSIDEN
}
Avatar billede staywarde Nybegynder
22. juli 2005 - 22:58 #7
ok
Avatar billede henninghabor Nybegynder
22. juli 2005 - 22:59 #8
Denne linie:

echo "<form action=\"?action=delete\">\n";

skal rettes til:

echo "<form action=\"?action=delete\" method=\"post\">\n";
Avatar billede staywarde Nybegynder
22. juli 2005 - 23:00 #9
tak for tilbudet
Avatar billede henninghabor Nybegynder
22. juli 2005 - 23:01 #10
Men kom lige til at tænke på at flere webhoteller ikke ser forskel på cookie og form felt.

Så du bør nok ændre:

echo "<input type=\"password\" name=\"password\">\n";

til:

echo "<input type=\"password\" name=\"delete_password\">\n";

og alle de steder hvor der står:

$_REQUEST[password]

skal ændres til:

$_REQUEST[delete_password]
Avatar billede staywarde Nybegynder
22. juli 2005 - 23:42 #11
hmm kan du ikke få den til at sige en besked, hvis password ikke er rigtigt?
Avatar billede henninghabor Nybegynder
23. juli 2005 - 17:14 #12
slet.php:

<?php
ob_start(); // SKAL STÅ I TOPPEN AF FILEN

echo "<form action=\"?action=delete\">\n";
echo "Du skal indtaste dit kodeord for at bekræfte sletningen:\n";
echo "<input type=\"password\" name=\"delete_password\">\n";
echo "<input type=\"submit\" value=\"Slet bruger\">\n";
echo "</form>\n";

if($_REQUEST[action] == "delete")
{
if($_REQUEST[delete_password] != "$_COOKIE[password]") // ER INDTASTEDE KODEORD DET SAMME SOM INDHOLDET AF COOKIE[password]?
{
$error[] = 1;
}

$conn = mysql_connect("server", "brugernavn", "kodeord");

mysql_select_db("database");

$result = mysql_query("SELECT * FROM an_members WHERE email = '$_COOKIE[email]' AND password = '$_COOKIE[password]'");

if(empty($result)) // FINDES BRUGEREN OG KODEORDET I DATABASEN?
{
$error[] = 2;
}

if(empty($error))
{
$deleteSQL = "DELETE FROM an_members WHERE email = '$_COOKIE[email]' AND password = '$_COOKIE[password]'";
mysql_query($deleteSQL);

setcookie("email", "$_COOKIE[email]", time() - 31536000); // SLET COOKIE

setcookie("password", "$_COOKIE[password]", time() - 31536000); // SLET COOKIE

header("location: index.php"); VIDERESTIL TIL FORSIDEN
}
else
{
if(in_array("1", $error))
{
echo "Kodeordet er forkert!";
}
if(in_array("2", $error))
{
echo "E-mail eller kodeord stemmer ikke overens med databasen!";
}
}
mysql_close($conn);
Avatar billede henninghabor Nybegynder
23. juli 2005 - 17:18 #13
VIDERESTIL TIL FORSIDEN

skal ændres til

// VIDERESTIL TIL FORSIDEN
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester