Avatar billede hmmhelpinghmm Nybegynder
01. juli 2004 - 21:13 Der er 18 kommentarer og
1 løsning

Endnu en kode der ikke virker!

HVad er nu galt, har siddet i over to timer og knoklet, men det rokker sig ikke!

Koden er her:

<?
session_start();
include("sider.php");
$sesnavn = $_SESSION['navn'];
$sess = $_SESSION['status'];

if ( $sess != 'login' ) {
    print(" <script language='javascript'>
        location.href='login.php';
        </script>");
        }
       
include("xx.php");       
$query = "SELECT id, user, pass FROM login WHERE user = '".$_GET['bruger']."' AND pass= '".$_GET['kode']."'";
$result = mysql_query($query)or die("MySQL fejl: " . mysql_error());
$log = mysql_fetch_array($result);


$bruger = $_GET['bruger'];
$kode = $_GET['kode'];

if ( $bruger = $log['user'] && $kode = $log['pass'] ) {
include("xx.php");
$quer = ("DELETE FROM login WHERE user = '$bruger' LIMIT 1");
$goquer = mysql_query($quer)or die("MySQL fejl: " . mysql_error());
echo "<script type=\"text/javascript\">alert(\"Din bruger er fjernet, og logget af!!!\");</script>";
print("    <script language='javascript'>
        location.href='logoffs.php';
        </script>");
exit;
}
else {
echo "<script type=\"text/javascript\">alert(\"Bruger og kode passer ikke sammen!!!\");history.go(-1)</script>";
exit;
}
?>



Problemet er ikke så stort som det har været! Selve scriptet virker i sig selv, men den sletter ikke brugeren fra databasen. HVORFOR?

DETTE STYKKE:

$bruger = $_GET['bruger'];
$kode = $_GET['kode'];

if ( $bruger = $log['user'] && $kode = $log['pass'] ) {
include("xx.php");
$quer = ("DELETE FROM login WHERE user = '$bruger' LIMIT 1");
$goquer = mysql_query($quer)or die("MySQL fejl: " . mysql_error());
echo "<script type=\"text/javascript\">alert(\"Din bruger er fjernet, og logget af!!!\");</script>";
print("    <script language='javascript'>
        location.href='logoffs.php';
        </script>");
exit;
}
Avatar billede expnet Seniormester
01. juli 2004 - 21:15 #1
$quer = ("DELETE FROM login WHERE user = '$bruger'");
Avatar billede hmmhelpinghmm Nybegynder
01. juli 2004 - 21:17 #2
ja det kan jeg godt se, men virker endnu ikke
Avatar billede erikjacobsen Ekspert
01. juli 2004 - 21:17 #3
der må han nu godt sætte LIMIT på, men mon ikke
if ( $bruger = $log['user'] && $kode = $log['pass'] ) {
skal være
if ( $bruger == $log['user'] && $kode == $log['pass'] ) {
Avatar billede jakoba Nybegynder
01. juli 2004 - 21:18 #4
er der en grund til at du inkluderer filen  xx.php  to gange ? Det er næsten aldrig nødvendigt at inkludere en fil mere end een gang.
Avatar billede hmmhelpinghmm Nybegynder
01. juli 2004 - 21:20 #5
nej men gjorde det for sikkerheds skyld!

erikjacobsen >> HVis jeg gør det så virker det ikke! Det er heller ikke problemet! Problemet er at den ikke sletter!
Avatar billede erikjacobsen Ekspert
01. juli 2004 - 21:24 #6
Jamen den med = er jo helt forkert, ikke?

Men det er ganske overflødigt, for den if skal bare være

  if (mysql_num_rows($result)==1) {

for du har jo checket på de 2 værdier i sql-sætningen allerede
Avatar billede hmmhelpinghmm Nybegynder
01. juli 2004 - 21:25 #7
Ja men den kommer ind i if sætningen, det virker fint!

Det eneste den ikke foretager sig er dette!
$quer = ("DELETE FROM login WHERE user = '$bruger' LIMIT 1");
$goquer = mysql_query($quer)or die("MySQL fejl: " . mysql_error());
Avatar billede erikjacobsen Ekspert
01. juli 2004 - 21:27 #8
Det er jo ikke spørgsmålet om den kommer ind, den skal jo komme derind på de
rigtige tidspunkter.

Fortæl mig: mener du at din version med = er korrekt, og i givet fald hvorfor?
Avatar billede hmmhelpinghmm Nybegynder
01. juli 2004 - 21:29 #9
Nej det virker på begge måder! Men det hjælper ikke! For det er det rigtige tidspunkT!
Avatar billede hmmhelpinghmm Nybegynder
01. juli 2004 - 21:31 #10
har ændret lidt er sådan nu:

include("acces.php");       
$query = "SELECT id, user, pass FROM login WHERE user = '".$_GET['bruger']."' AND pass= '".$_GET['kode']."'";
$quer = ("DELETE FROM login WHERE user = '$bruger'");
$result = mysql_query($query)or die("MySQL fejl: " . mysql_error());
$log = mysql_fetch_array($result);


$bruger = $_GET['bruger'];
$kode = $_GET['kode'];

if ( $bruger == $log['user'] && $kode == $log['pass'] ) {
$goquer = mysql_query($quer)or die("MySQL fejl: " . mysql_error());
exit;
}

Men virker ikke, ingen fejl eller noget! den sletter bare ikke!
Avatar billede erikjacobsen Ekspert
01. juli 2004 - 21:32 #11
Du skal i hvert fald ikke have
$quer = ("DELETE FROM login WHERE user = '$bruger'");
før du putter noget i $bruger - vel?
Avatar billede hmmhelpinghmm Nybegynder
01. juli 2004 - 21:33 #12
nu virker det!

Jeg flyttede
$bruger = $_GET['bruger'];
$kode = $_GET['kode'];

over include, her:

$bruger = $_GET['bruger'];
$kode = $_GET['kode'];
include("acces.php");
$query = "SELECT id, user, pass FROM login WHERE user = '".$_GET['bruger']."' AND pass= '".$_GET['kode']."'";
Avatar billede hmmhelpinghmm Nybegynder
01. juli 2004 - 21:34 #13
Nej nej fandt ud af det!, du virker lidt gnaven syns jeg!
Avatar billede hmmhelpinghmm Nybegynder
01. juli 2004 - 21:35 #14
Lige så du ved det. JEg flyttede det lige før du skrev det!
Avatar billede erikjacobsen Ekspert
01. juli 2004 - 21:37 #15
Jeg er da fløjtende ligeglad.

Men kan du ikke se at du laver overflødigt arbejde. Brug fx $bruger og $kode
i din sql-sætning, når du nu har dem.

Og lav dit test om så du gør som foreslået: 21:24:10
Avatar billede hmmhelpinghmm Nybegynder
01. juli 2004 - 21:40 #16
Du er godt nok ikke den mest høflige jeg har talt med, for det andet så vælger jeg vel selv hvad jeg gør!!!!!

:(
:(

Du gør klogt i at snakke lidt mere høfligt, så er der flere der vil synes om dig, hvilket der da ikke kan være nu!
Jeg ved ikke om du opfører dig sådan her bare fordi du er på top 10, og jeg vil heller ikke lyde sur, men tænk dig lige om hvad du siger.
Du kan få folk til at føle sig fornærmede!
Avatar billede erikjacobsen Ekspert
01. juli 2004 - 21:42 #17
Og jeg synes du reagerer besynderligt. Jeg tilbyder dig hjælp, uden at fornærme dig.
Men selvfølgelig må du gøre hvad du vil.
Avatar billede hmmhelpinghmm Nybegynder
01. juli 2004 - 21:46 #18
Jeg er da fløjtende ligeglad.

Men kan du ikke se at du laver overflødigt arbejde. Brug fx $bruger og $kode
i din sql-sætning, når du nu har dem.

Og lav dit test om så du gør som foreslået: 21:24:10

I sær første linje er kritiserende!
og også de andre

hvad med:

Godt du fandt ud af det :)

HVis jeg var dig, så for at gøre det lodt lettere at holde styr på, så ville jeg  bruge fx den $bruger og $kode i din sql sætning!

Det ville også blive mere overskueligt hvis du ændrer det i 21:24:10
MEn det er selvfølgelig op til dig! :)
Avatar billede erikjacobsen Ekspert
01. juli 2004 - 21:58 #19
Du er velkommen til at opfatte det som du vil.
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