Avatar billede kegud Nybegynder
30. juli 2006 - 17:56 Der er 19 kommentarer og
1 løsning

problemer med sletning af bruger

Har det her link på betalt.php:
<a href=\"setup.php?do=slet&id=$row[id]\">Slet bruger</a>

og her er setup.php som sletter bruger:
$do = $_REQUEST['do'];
$id = $_REQUEST['id'];

IF ($do == "slet")
          {
    mysql_query("DELETE FROM tilmelding WHERE `id`='$id'") OR DIE (mysql_error());
    $email = $row["email"];
    mail("$email","sletning af $row[email]","du er slettet!", "From: no-reply@mail.dk");
    $sletningkopi = "info@mail.dk";
    mail("$sletningkopi","sletning af $row[email]","$row[navn]s (id: $row[id]) reservation er blevet slettet da betalingen er udeblevet efter de 5 dage var gået!", "From: no-reply@mail.dk");
    HEADER("Location: betalt.php");

        }

mit problem er så at den godt nok sletter den rigtige bruger og sender e-mails ud, men den sender også besked om at resten af brugerne er slettet (selvom de ikke er). Det virkede fint nok, men så lavede jeg et eller andet i "betalt.php" som gjorde den sendte emails ud til alle.. Har ingen anelse om hvad det var der gjorde det, men har nogen en idé om hvad der er galt?
Avatar billede zynzz Praktikant
30. juli 2006 - 18:16 #1
if ($_GET['do'] == slet) prøv det... og $id = $_GET['id']
Avatar billede kegud Nybegynder
30. juli 2006 - 18:20 #2
nope.. stadig samme problem
Avatar billede michael_stim Ekspert
30. juli 2006 - 18:27 #3
if (isset($_GET['do']) && $_GET['do'] == "slet"){
$id = $_GET['id'];
...
Avatar billede michael_stim Ekspert
30. juli 2006 - 18:29 #4
I og med det er noget brugerhallöj, er det så ikke, af sikkerhedshensyn, bedre at have id i en session? Som det er nu, kan jeg bare gå ind og vilkårligt pröve at skrive et id i adressefeltet.
Avatar billede kegud Nybegynder
30. juli 2006 - 18:31 #5
nej, vil den heller ikke..

den sender begge emails ud.. altså både info@mail.dk får mail, plus alle brugere i databasen får en email om at de er slettet.

det gir jo absolut ingen mening at den virker og pludselig gider den ikke alligevel
Avatar billede kegud Nybegynder
30. juli 2006 - 18:33 #6
michael, både betalt.php og setup.php er under admin.. ved ikke om ejg får brug for sessions fordi siden ikke er så stor at misbrug vil blive en betydelig faktor.
Avatar billede michael_stim Ekspert
30. juli 2006 - 18:35 #7
$row[id] får du jo fra en forspörgsel (som vi ikke kan se). Og den körer formodentlig i en loop (som vi heller ikke kan se ;o))

Pröv at sende hele koden.
Avatar billede Slettet bruger
30. juli 2006 - 18:37 #8
Men når du sender mail til $email, hvor er dit udtræk til $email = $row["email"];
Avatar billede kegud Nybegynder
30. juli 2006 - 18:41 #9
betalt.php
<?php

$query = mysql_query("SELECT * FROM `tilmelding` WHERE `godkendt`='yes' ORDER BY stoptid DESC") OR DIE (mysql_error());
WHILE ($row = mysql_fetch_array($query))
          {
    echo "<tr>
<td align=\"center\">$row[id]</td>
<td align=\"center\">$row[navn]</td>
<td align=\"center\">$row[email]</td>
<td align=\"center\">$row[tlf]</td>
<td align=\"center\">$row[antal]</td>
<td align=\"center\">$row[ophentning]</td>
<td align=\"center\"><a href=\"setup.php?do=fjern&id=$row[id]\">Fjern betaling</a> </td>
<td align=\"center\"><a href=\"setup.php?do=godkend&id=$row[id]\">Godkend betaling</a> </td>
<td align=\"center\"><a href=\"setup.php?do=slet&id=$row[id]\">Slet bruger</a></td>
</tr>";
}

?>

det underlige er at jeg, som I nok kan se, har en "fjern betaling" (og en "godkend betaling") og de 2 virker helt fint. Der sender den e-mails til de rigtige og kun dem.
Avatar billede kegud Nybegynder
30. juli 2006 - 18:43 #10
coldgate, den er lige under mysql_query()
$email = $row["email"];
Avatar billede michael_stim Ekspert
30. juli 2006 - 18:43 #11
Det er nu mere setup.php jeg er interesseret af.
Avatar billede kegud Nybegynder
30. juli 2006 - 18:50 #12
$query = mysql_query("SELECT * FROM `tilmelding`") OR DIE (mysql_error());
WHILE ($row = mysql_fetch_array($query))
          {

if ($_GET[id] == $row[id]) {
$do = $_REQUEST['do'];
$id = $_REQUEST['id'];

IF ($do == "godkend")
          {
    mysql_query("UPDATE `tilmelding` SET `godkendt`='yes' WHERE `id`='$id'") OR DIE (mysql_error());

    $email = $row["email"];
    mail("$email","hpenge modtaget","Hej $row[navn] (id: $row[id])!\nVi har modtaget din betaling for $row[antal] billet(ter)!", "From: no-reply@mail.dk");

    HEADER("Location: betalt.php");
}
}


if ($_GET[id] == $row[id]) {
$do = $_REQUEST['do'];
$id = $_REQUEST['id'];

IF ($do == "fjern")
          {
    mysql_query("UPDATE `tilmelding` SET `godkendt`='no' WHERE `id`='$id'") OR DIE (mysql_error());

    $email = $row["email"];
    mail("$email","betaling annuleret","Hej $row[navn] (id: $row[id])!\nDu er blevet fjernet af listen over folk som har betalt for sin billet.","From: no-reply@mail.dk");

    HEADER("Location: betalt.php");
}
}

if ($_GET[id] == $row[id]) {
$do = $_REQUEST['do'];
$id = $_REQUEST['id'];


IF ($do == "slet")
    {

    mysql_query("DELETE FROM ´tilmelding´ WHERE `id`='$id'") OR DIE (mysql_error());
    $email = $row["email"];
    mail("$email","sletning af $row[email]","Hej $row[navn]!\nDin reservation er blevet slettet enten fordi betaling er udeblevet efter de 5 dage var gået", "From: no-reply@mail.dk");
    $sletningkopi = "info@mail.dk";
    mail("$sletningkopi","sletning af $row[email]","$row[navn]s (id: $row[id]) reservation er blevet slettet da betalingen er udeblevet efter de 5

dage var gået!", "From: no-reply@mail.dk");
    HEADER("Location: betalt.php");

        }

}
}
?>
Avatar billede michael_stim Ekspert
30. juli 2006 - 19:00 #13
Her bliver du jo nöd til at begränse dig:
$query = mysql_query("SELECT * FROM `tilmelding` WHERE id='".$_GET['id']."'") OR DIE (mysql_error());
Avatar billede michael_stim Ekspert
30. juli 2006 - 19:02 #14
Og så behöver du ikke smide den i en loop.
Avatar billede kegud Nybegynder
30. juli 2006 - 19:24 #15
den bliver ved med at give mig fejlen
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '´tilmelding´ WHERE `id`='19'' at line 1
Avatar billede kegud Nybegynder
30. juli 2006 - 19:25 #16
efter jeg overskrev med din $_get
Avatar billede michael_stim Ekspert
30. juli 2006 - 19:27 #17
tilmelding har du ` den forkerte vej
Avatar billede kegud Nybegynder
30. juli 2006 - 19:36 #18
yap. virker.. puha, mange tak for det..

smider du lige et svar, michael?
Avatar billede michael_stim Ekspert
30. juli 2006 - 19:41 #19
Du kan forkorte din kode en del. Du skriver det samme mange steder.
Og glem ikke ' i dine $_GET, $_POST, $_SESSION osv variabler.
Avatar billede kegud Nybegynder
30. juli 2006 - 20:09 #20
okay, vil rette det til.. tak for hjælpen
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