Gå til innhold

Kan man se hvem som er logget inn på en side?


Anbefalte innlegg

Skrevet
Hvorfor blir NOW(); til 0000-00-00 00:00:00 når jeg bruker queryen under? (row'en tid er datetime)

 

mysql_query("INSERT INTO logg (brukernavn,tid,ipadresse) VALUES ('$brukernavn','NOW()','$ip')"))

Fjern fnuttene rund NOW(), du. ;)

 

 

Bruk denne:

 

mysql_query("INSERT INTO logg (brukernavn,tid,ipadresse) VALUES ('$brukernavn',NOW(),'$ip')"))

 

:)

Videoannonse
Annonse
Skrevet

Jeg vil gjerne gjøre det slik at dersom brukeren har vært innlogget tidligere er det ikke nødvendig å lage en ny row med samme ip og brukernavn bare forskjellig tid og dato...Jeg vil altså gjøre det slik at dersom brukernavnet allerede finnes i tabellen så skal den bare oppdatere row'en der brukernavn = '$brukernavn', slik at det ikke blir lagt til en ny row for hver gang brukeren logger seg inn. Noen som har forslag til hvordan jeg gjør dette?

Skrevet

ingen som vet hvordan jeg kan sjekke om det allerede finnes en row som inneholder brukernavnet "brukernavn". Dersom dette er tilfellet oppdater den aktuelle row'en med ip og tid ellers opprett en ny row??

Skrevet

Sjekk først om raden finnes, gjør den ikke det så sender du en ny query som setter inn data - ellers så oppdaterer du data.

 

Du kan eventuelt gjøre brukernavnet unikt, og dersom spørringen ikke kunne oppdatere så legger du til en ny linje. Da holder det med en UPDATE og en INSERT.

Skrevet

men kan du gi meg et helt konkret eksempel i form av en liten kodesnutt? Jeg prøvde meg litt frem men det ble bare en uendelig lang liste me if's som det var umulig å holde oversikt over..

Skrevet

Hehe... jeg er en av de som sjelden "leverer" koder, men jeg kommer gjerne med forslag og tips. Grunnen til dette er fordi jeg jobber som programmerer, og vil noen ha ferdige koder kan de kontaktet et programmeringsselskap.

 

Bruk f.eks. phpMyAdmin for å gjøre feltet brukernavn uniqe. Så lager du en spørring i scriptet ditt som INSERT'er brukernavn tid osv.

 

Ved insert og update spørringer er det viktig at du sjekker at noe virkelig ble lagret. Dette gjør du med mysql_affected_rows(). Dersom ingen rader ble lagret så setter sender du en UPDATE spørring.

 

Eks:

 

$query = "INSERT into ...";

$result = mysql_query($query);

if(mysql_affected_rows() < 1)

{

$query = "UPDATE ...";

$result = mysql_query($query);

}

Skrevet (endret)

Får bare meldingen feil brukernavn eller passord på koden under...hvorfor?

 

<?php
session_start();
include("config.php");

$link = mysql_connect($mySQLhost, $mySQLuser, $mySQLpass) or die("Could not connect: " . mysql_error());
mysql_select_db($mySQLdb);

$brukernavn = strtolower($_POST['brukernavn']);
$pass =  md5($_POST['pass']);
$ip = $_SERVER['REMOTE_ADDR'];

if(!$_POST['brukernavn']){
$feil = 1;
echo"Du skrev ikke inn noe brukernavn!<br/>";
}

if(!$_POST['pass']){
$feil = 1;
echo"Du skrev ikke inn noe passord!<br/>";
}

$q =("SELECT uid, passord FROM users WHERE brukernavn = '$brukernavn'");
$row = mysql_fetch_array(mysql_query($q));

  if ($row['passord'] == $pass and $row['uid'] !=="" ){
  $feil = 1;
 echo"Din konto er ikke aktivert!";
 }

if  ($row['passord'] == $pass and $row['uid'] == "") {


 if (mysql_query("INSERT INTO logg (brukernavn,tid,ipadresse) VALUES ('$brukernavn',NOW(),'$ip')")){
 $_SESSION["bruker"] = $brukernavn;

 header("Location: http://nisselink.sjurvaage.com/minside/");
}  }

if(mysql_affected_rows() < 1){

if(mysql_query("UPDATE logg SET dato = NOW(), ip = '$ip' WHERE brukernavn = '$brukernavn'")){
$_SESSION["bruker"] = $brukernavn;

 header("Location: http://nisselink.sjurvaage.com/minside/");

}
}

if ($feil != 1){ 
echo "Feil brukernavn eller passord.<p><a href='http://nisselink.sjurvaage.com/loginn/'>Prøv igjen!</a></p>"; }

mysql_close($link);
?>

Endret av Tha_Zaynt
Skrevet

når jeg gjorde om den siste linje om til

 

if ($feil != 1){ 
echo "Feil brukernavn eller passord.<p><a href='http://nisselink.sjurvaage.com/loginn/'>Prøv igjen!</a></p>" or die("Could not connect: " . mysql_error());; }

 

outputter den bare 1...

Skrevet

beklager hvis jeg er litt innpåsliten, men jeg får altså ikke dette til å funke...problemet er fortsatt at jeg får feilmeldingen feil brukernavn eller passord når jeg logger inn 2 ganger etter hverandre...update queryen slår altså ikke til, men forårsaker en eller annen feil siden variabelen $feil blir til en..

Skrevet

prøv med to likhetstegn i if-setningen..

vet ikke om det kommer til å funke, men jeg tror du må brkue to for at den ikke bare skal forandre $feil, men sjekke om den er lik 1..

litt rotete forklart, og rett meg om jeg tar feil her..

Skrevet
Sjekk først om raden finnes, gjør den ikke det så sender du en ny query som setter inn data - ellers så oppdaterer du data.

 

Du kan eventuelt gjøre brukernavnet unikt, og dersom spørringen ikke kunne oppdatere så legger du til en ny linje. Da holder det med en UPDATE og en INSERT.

eller bruke REPLACE into, som overskriver hvis det finnes, gitt en unik id match.

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...