jorgis Skrevet 18. januar 2005 Del Skrevet 18. januar 2005 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')")) Lenke til kommentar
Tha_Zaynt Skrevet 18. januar 2005 Del Skrevet 18. januar 2005 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? Lenke til kommentar
phun-ky Skrevet 18. januar 2005 Del Skrevet 18. januar 2005 (endret) feks: UPDATE online SET dato = NOW(), ip = '$ip' WHERE bruker = '$bnavn'" ? Endret 18. januar 2005 av phun-ky Lenke til kommentar
Tha_Zaynt Skrevet 18. januar 2005 Del Skrevet 18. januar 2005 akkurat det skjønner jeg...jeg lurer bare på hvordan jeg setter det sammen med den andre koden... Lenke til kommentar
Tha_Zaynt Skrevet 21. januar 2005 Del Skrevet 21. januar 2005 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?? Lenke til kommentar
???????? Skrevet 21. januar 2005 Del Skrevet 21. januar 2005 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. Lenke til kommentar
Tha_Zaynt Skrevet 21. januar 2005 Del Skrevet 21. januar 2005 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.. Lenke til kommentar
???????? Skrevet 21. januar 2005 Del Skrevet 21. januar 2005 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); } Lenke til kommentar
Tha_Zaynt Skrevet 22. januar 2005 Del Skrevet 22. januar 2005 ahhh...at jeg ikke har tenkt på det før. Takk for hjelpen! Lenke til kommentar
HMaster Skrevet 22. januar 2005 Del Skrevet 22. januar 2005 (endret) EDIT: Fant det ut..alt skyldtes en liten skriveleif Endret 22. januar 2005 av HMaster Lenke til kommentar
Tha_Zaynt Skrevet 22. januar 2005 Del Skrevet 22. januar 2005 (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 23. januar 2005 av Tha_Zaynt Lenke til kommentar
Tha_Zaynt Skrevet 23. januar 2005 Del Skrevet 23. januar 2005 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... Lenke til kommentar
Tha_Zaynt Skrevet 24. januar 2005 Del Skrevet 24. januar 2005 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.. Lenke til kommentar
toss Skrevet 25. januar 2005 Del Skrevet 25. januar 2005 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.. Lenke til kommentar
Tha_Zaynt Skrevet 25. januar 2005 Del Skrevet 25. januar 2005 Nope, det utgjor ingen forskjell...dessverre. Jeg skjønner fortsatt ikke hvorfor $feil blir til 1.. Lenke til kommentar
Torbjørn Skrevet 25. januar 2005 Del Skrevet 25. januar 2005 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. Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå