Avatar billede Klaus2620 Nybegynder
24. juli 2011 - 17:58 Der er 9 kommentarer

Fejl i online brugere.

Hej. Hvis man skal logge ud af mit community, skal den ikke vises i online brugere liste.
- Skriv hvis i ikke forstår hvad jeg mener :D.

Kode:
<?
    session_start();
    $hent_status = mysql_query("SELECT * FROM brugere ORDER BY id DESC");
    $get = mysql_query("SELECT `status`,`brugernavn` FROM `brugere` WHERE `status`='online'");  //Henter alt data hvor status er online
    while($var = mysql_fetch_array($get)) { // Kører en while så alle brugerne kommer med og ikke kun 1 enkel
  echo $var['brugernavn']; " .<br />. ";
}
?>
<?
// Logaf
if($_GET[mode] == "logaf"){
mysql_query("UPDATE brugere set status='offline' WHERE brugernavn='$brugernavn'");
?>
<script language="JavaScript">
alert("Selvom vi ikke er glade for at sige farvel skal det jo ske! Håber vi ses en anden gang! Vi vil altid huske dig <? echo $brugernavn; ?>")
</script>
<script type="text/javascript">document.location.href='index.php'</script>
<?
session_unset();
}
?>
Avatar billede claes57 Ekspert
24. juli 2011 - 18:39 #1
husk lige <?php ikke <? for at undgå problemer senere

<?php
if($_GET[mode] == "logaf"){
mysql_query("UPDATE brugere set status='offline' WHERE brugernavn='$brugernavn'");
echo '<script language="JavaScript">alert("Selvom vi ikke er glade for at sige farvel skal det jo ske! Håber vi ses en anden gang! Vi vil altid huske dig '.$brugernavn.'")</script>
      <script type="text/javascript">document.location.href=/'index.php/'</script>';
      session_unset();
} else {
    session_start();
    $hent_status = mysql_query("SELECT * FROM brugere ORDER BY id DESC");
    $get = mysql_query("SELECT `status`,`brugernavn` FROM `brugere` WHERE `status`='online'");  //Henter alt data hvor status er online
    while($var = mysql_fetch_array($get)) { // Kører en while så alle brugerne kommer med og ikke kun 1 enkel
    echo $var['brugernavn']; " .<br />. ";
}
?>
Avatar billede Klaus2620 Nybegynder
24. juli 2011 - 21:20 #2
Nu gider den ikke vise siden.

kode:
<?php
if($_GET[mode] == "logaf"){
mysql_query("UPDATE brugere set status='offline' WHERE brugernavn='$brugernavn'");
echo '<script language="JavaScript">alert("Selvom vi ikke er glade for at sige farvel skal det jo ske! Håber vi ses en anden gang! Vi vil altid huske dig '.$brugernavn.'")</script>
      <script type="text/javascript">document.location.href=/'index.php/'</script>';
      session_unset();
} else {
    session_start();
    $hent_status = mysql_query("SELECT * FROM brugere ORDER BY id DESC");
    $get = mysql_query("SELECT `status`,`brugernavn` FROM `brugere` WHERE `status`='online'");  //Henter alt data hvor status er online
    while($var = mysql_fetch_array($get)) { // Kører en while så alle brugerne kommer med og ikke kun 1 enkel
    echo $var['brugernavn']; " .<br />. ";
}
?>
Avatar billede claes57 Ekspert
25. juli 2011 - 09:46 #3
jeg har tabt en } i stykket
    echo $var['brugernavn']; " .<br />. ";
}
?>

det skal være
    echo $var['brugernavn']; " .<br />. ";
}
}
?>
Avatar billede Klaus2620 Nybegynder
25. juli 2011 - 14:51 #4
virker stadig ikk :(
Avatar billede claes57 Ekspert
25. juli 2011 - 17:32 #5
det er lidt svært uden fejlkoder - test lige

<?php
if($_GET[mode] == "logaf"){
    mysql_query("UPDATE brugere set status='offline' WHERE brugernavn='$brugernavn'");
?>
    <script language="JavaScript">
    alert("Selvom vi ikke er glade for at sige farvel skal det jo ske! Håber vi ses en anden gang! Vi vil altid huske dig '<?php echo $brugernavn; ?>");
    document.location.href="index.php";
    </script>
<?php
    session_unset();
} else {
    session_start();
    $hent_status = mysql_query("SELECT * FROM brugere ORDER BY id DESC");
    $get = mysql_query("SELECT `status`,`brugernavn` FROM `brugere` WHERE `status`='online'");  //Henter alt data hvor status er online
    while($var = mysql_fetch_array($get)) {
    // Kører en while så alle brugerne kommer med og ikke kun 1 enkel
    echo $var['brugernavn']; " .<br />. ";
    }
}
?>
Avatar billede Klaus2620 Nybegynder
25. juli 2011 - 20:15 #6
Nu virkede det. Tak skal du have. Men jeg har os et andet problem hvis du kunne hjælpe mig med det. Det er fordi den går ikke ind i datebasen og skifter fx. fra offline til online. Jeg kan vise nogle koder:

Kode når andre logger på:
if($_GET[mode] == "logpa"){
$brugernavn = $_POST['brugernavn'];
$kode = MD5($_POST['adgangskode']);
$hent_tjek = mysql_query("select brugernavn from brugere where brugernavn='$brugernavn'");
$tjek = mysql_fetch_array($hent_tjek);
$hent_tjek2 = mysql_query("select adgangskode from brugere where brugernavn='$brugernavn'");
$tjek2 = mysql_fetch_array($hent_tjek2);
if ($tjek[0] == $brugernavn and $tjek2[0] == $kode) {
$_SESSION['brugernavn'] = $brugernavn;
$_SESSION['online'] = "ja";
mysql_query("UPDATE brugere set `status`='online' WHERE brugernavn='$brugernavn'");
mysql_query("UPDATE brugere SET ip='$ip' WHERE brugernavn='$brugernavn'");
$log = date("d/m-Y G:i");
mysql_query("UPDATE brugere SET log='$log' WHERE brugernavn='$brugernavn'");
$hent_atjek = mysql_query("select * from brugere where brugernavn='$brugernavn'");
$atjek = mysql_fetch_array($hent_atjek);
if ($atjek['administrator'] == ja) {
$_SESSION['promotions'] = "full";
} else {
$_SESSION['promotions'] = "none";
}
}else{
session_destroy();

Kode når man logger af:
<?
// Logaf
if($_GET[mode] == "logaf"){
mysql_query("UPDATE brugere set status='offline' where brugernavn='$brugernavn'");
$log = date("d/m-Y G:i");
mysql_query("UPDATE brugere SET log='$log' WHERE brugernavn='$brugernavn'");
$ip = $_SERVER['REMOTE_ADDR'];
mysql_query("UPDATE brugere SET ip='$ip' WHERE brugernavn='$brugernavn'");
?>
<script language="JavaScript">
alert("Selvom vi ikke er glade for at sige farvel skal det jo ske! Håber vi ses en anden gang! Vi vil altid huske dig <? echo $brugernavn; ?>")
</script>
<script type="text/javascript">document.location.href='index.php'</script>
<?
session_destroy();
}
?>
<?
if($_SESSION[brugernavn] != ""){
$hent_alert = mysql_query("SELECT * FROM alert WHERE brugernavn='$_SESSION[brugernavn]'");
$alert = mysql_fetch_array($hent_alert);
if($alert[brugernavn] == "$bruger[brugernavn]"){
?>
<script language="JavaScript">
alert("Se her! \n\n <?=$alert[msg]?>")
</script>
<?
mysql_query("DELETE FROM alert WHERE id='$alert[id]'");
}
}
?>

Hvis jeg går ind i databasen og redigere fra offline til online viser den i Online brugere. Men jeg ville jo have at den skal automatisk hvis en logger på, skifte fra online til offline eller hvis man logger af offline til online
Avatar billede claes57 Ekspert
26. juli 2011 - 09:02 #7
der bør ryddes op i koden - fx logpa

$hent_tjek = mysql_query("select brugernavn from brugere where brugernavn='$brugernavn'");
$tjek = mysql_fetch_array($hent_tjek);
$hent_tjek2 = mysql_query("select adgangskode from brugere where brugernavn='$brugernavn'");
$tjek2 = mysql_fetch_array($hent_tjek2);
if ($tjek[0] == $brugernavn and $tjek2[0] == $kode) {
$_SESSION['brugernavn'] = $brugernavn;
$_SESSION['online'] = "ja";
mysql_query("UPDATE brugere set `status`='online' WHERE brugernavn='$brugernavn'");

de første to linjer er helt overflødige, og linjen
if ($tjek[0] == $brugernavn and $tjek2[0] == $kode) {
skal derfor kun være
if ($tjek2[0] == $kode) {
hvis den finder adgangskoden, så findes brugeren jo også.

linjen
mysql_query("UPDATE brugere set `status`='online' WHERE brugernavn='$brugernavn'");
der skal ikke ` omkring status

jeg vender tilbage med flere ting...
Avatar billede claes57 Ekspert
26. juli 2011 - 09:37 #8
(husk at gemme originalen først)
prøv denne kode

Kode når andre logger på:
<?php
// Logpå
if($_GET[mode] == "logpa"){
  $brugernavn = $_POST['brugernavn'];
  $kode = MD5($_POST['adgangskode']);
  $hent_tjek2 = mysql_query("select adgangskode from brugere where brugernavn='$brugernavn'");
  $tjek2 = mysql_fetch_array($hent_tjek2);
  if ($tjek2[0] == $kode) {
    $_SESSION['brugernavn'] = $brugernavn;
    $_SESSION['online'] = "ja";
    $ip = $_SERVER['REMOTE_ADDR'];
    $log = date("d/m-Y G:i");
    mysql_query("UPDATE brugere SET status='online', ip='$ip', log='$log' WHERE brugernavn='$brugernavn'");
    $hent_atjek = mysql_query("select * from brugere where brugernavn='$brugernavn'");
    $atjek = mysql_fetch_array($hent_atjek);
    if ($atjek['administrator'] == ja) {
      $_SESSION['promotions'] = "full";
    } else {
      $_SESSION['promotions'] = "none";
    }
  } else {
    session_destroy();
  }
}
?>

Kode når man logger af:
<?php
// Logaf
if($_GET[mode] == "logaf"){
  $log = date("d/m-Y G:i");
  $ip = $_SERVER['REMOTE_ADDR'];
  mysql_query("UPDATE brugere SET status='offline', ip='$ip', log='$log' WHERE brugernavn='$brugernavn'");
?>
  <script language="JavaScript">
    alert("Selvom vi ikke er glade for at sige farvel skal det jo ske! Håber vi ses en anden gang! Vi vil altid huske dig <?php echo $brugernavn; ?>")
    document.location.href='index.php'
  </script>
<?php
  session_destroy();
}
?>
<?php
if($_SESSION[brugernavn] != ""){
  $hent_alert = mysql_query("SELECT * FROM alert WHERE brugernavn='$_SESSION[brugernavn]'");
  $alert = mysql_fetch_array($hent_alert);
  if($alert[brugernavn] == "$bruger[brugernavn]"){
?>
    <script language="JavaScript">
      alert("Se her! \n\n <?php echo $alert[msg]; ?>")
    </script>
<?php
    mysql_query("DELETE FROM alert WHERE id='$alert[id]'");
  }
}
?>
Avatar billede Klaus2620 Nybegynder
26. juli 2011 - 12:28 #9
Den gider ikke vise siden. Jeg viser lige hele min kode, får at undgå misforståelser.

kode:
<?php
session_start();
$connect = mysql_connect('localhost', "users_db", "db_kode") or die(mysql_error());
mysql_select_db("users_db",$connect) or die(mysql_error());
$hent_styling = mysql_query("SELECT * FROM styling WHERE id='1'");
$style = mysql_fetch_array($hent_styling);
$ip = $_SERVER['REMOTE_ADDR'];
// Logpå
if($_GET[mode] == "logpa"){
  $brugernavn = $_POST['brugernavn'];
  $kode = MD5($_POST['adgangskode']);
  $hent_tjek2 = mysql_query("select adgangskode from brugere where brugernavn='$brugernavn'");
  $tjek2 = mysql_fetch_array($hent_tjek2);
  if ($tjek2[0] == $kode) {
    $_SESSION['brugernavn'] = $brugernavn;
    $_SESSION['online'] = "ja";
    $ip = $_SERVER['REMOTE_ADDR'];
    $log = date("d/m-Y G:i");
    mysql_query("UPDATE brugere SET status='online', ip='$ip', log='$log' WHERE brugernavn='$brugernavn'");
    $hent_atjek = mysql_query("select * from brugere where brugernavn='$brugernavn'");
    $atjek = mysql_fetch_array($hent_atjek);
    if ($atjek['administrator'] == ja) {
      $_SESSION['promotions'] = "full";
    } else {
      $_SESSION['promotions'] = "none";
    }
  } else {
    session_destroy();
  }
}
?>
<script language="JavaScript">
alert("Brugernavn & kode passer ikke sammen!")
document.location.href='../forget.php'
</script>
<noscript>
<em>Din browser virker ikke til JavaScript. Derfor ser du denne besked!<br />Oplysningerne du gav var ikke rigtig!</em>
</noscript>
<?
}
if($atjek['ban'] == ja){
?>
<script language="JavaScript">
alert("Din bruger er blevet bannet! Derfor kan du ikke komme ind!")
</script>
<?
session_destroy();
}
if($atjek['id'] == 1){
mysql_query("UPDATE brugere SET administrator='ja' WHERE id='1'");
mysql_query("UPDATE brugere SET stilling='Ejer' WHERE id='1'");
mysql_query("UPDATE brugere SET brugeradmin='ja' WHERE id='1'");
mysql_query("UPDATE brugere SET generalt='ja' WHERE id='1'");
mysql_query("UPDATE brugere SET siteadmin='ja' WHERE id='1'");
mysql_query("UPDATE brugere SET tagwall='ja' WHERE id='1'");
mysql_query("UPDATE brugere SET nyheder='ja' WHERE id='1'");
}
?>
<script type="text/javascript">document.location.href='index.php'</script>
<noscript>
<em>Din browser virker ikke til JavaScript. Derfor ser du denne besked!<br />Oplysningerne du gav var ikke rigtig!</em>
</noscript>
<?
}
?>
<?
$hent_brugernavn = mysql_query("SELECT * FROM brugere WHERE brugernavn='$_SESSION[brugernavn]'");
$bruger = mysql_fetch_array($hent_brugernavn);
?>
<?php
// Logaf
if($_GET[mode] == "logaf"){
  $log = date("d/m-Y G:i");
  $ip = $_SERVER['REMOTE_ADDR'];
  mysql_query("UPDATE brugere SET status='offline', ip='$ip', log='$log' WHERE brugernavn='$brugernavn'");
?>
  <script language="JavaScript">
    alert("Selvom vi ikke er glade for at sige farvel skal det jo ske! Håber vi ses en anden gang! Vi vil altid huske dig <?php echo $brugernavn; ?>")
    document.location.href='index.php'
  </script>
<?php
  session_destroy();
}
?>
<?php
if($_SESSION[brugernavn] != ""){
  $hent_alert = mysql_query("SELECT * FROM alert WHERE brugernavn='$_SESSION[brugernavn]'");
  $alert = mysql_fetch_array($hent_alert);
  if($alert[brugernavn] == "$bruger[brugernavn]"){
?>
    <script language="JavaScript">
      alert("Se her! \n\n <?php echo $alert[msg]; ?>")
    </script>
<?php
    mysql_query("DELETE FROM alert WHERE id='$alert[id]'");
  }
}
?>
<?
if($bruger[kick] == "ja"){
mysql_query("UPDATE brugere SET kick='nej' WHERE brugernavn='$_SESSION[brugernavn]'");
mysql_query("UPDATE brugere SET status='offline' WHERE brugernavn='$_SESSION[brugernavn]'");

?>
<script language="JavaScript">
alert("Hej <? echo $brugernavn; ?>! Undskyld vi lige forstyr dig, men du er blevet kicket af en Admin! Hvis dette er en fejl, kontakt en Admin!")
</script>
<?
session_destroy();
}
if($bruger[ban] == "ja"){
mysql_query("UPDATE brugere SET kick='nej' WHERE brugernavn='$_SESSION[brugernavn]'");
mysql_query("UPDATE brugere SET status='offline' WHERE brugernavn='$_SESSION[brugernavn]'");
?>
<script language="JavaScript">
alert("Hej <? echo $brugernavn; ?>! Undskyld vi lige forstyr dig, men du er blevet bannet af en Admin! Hvis dette er en fejl, kontakt en Admin!")
</script>
<?
session_destroy();
}
if($bruger[snyd] > "10"){
mysql_query("UPDATE brugere SET status='offline' WHERE brugernavn='$_SESSION[brugernavn]'");
mysql_query("UPDATE brugere SET ban='ja' WHERE brugernavn='$_SESSION[brugernavn]'");
mysql_query("UPDATE brugere SET snyd='0' WHERE brugernavn='$_SESSION[brugernavn]'");
?>
<script language="JavaScript">
alert("Hej <? echo $brugernavn; ?>! Undskyld vi lige forstyr dig, men du er blevet bannet af en Admin! Det et sket på grund af du er taget i at snyde 10 gange! Vent til en admin åbner din bruger!")
</script>
<?
session_destroy();
}
if($bruger[administrator] == "ja"){
$hent_sos = mysql_query("SELECT * FROM sos WHERE leas='no'");
$sos = mysql_fetch_array($hent_sos);
if($sos[leas] == "no"){
?>
<script language="JavaScript">
alert("SOS\n\n<?=$sos[msg]?>.\n\n Fra <?=$sos[brugernavn]?>")
</script>
<script type="text/javascript">
var name=prompt("Skriv tilbage til brugeren","messenger");
if (name!=null && name!="")
  {
  document.location.href='?brugernavn=<?=$sos[brugernavn]?>&msg=' + name + '&mode=sossvar'
  }
</script>
<?
mysql_query("UPDATE sos SET leas='yes' WHERE id='$sos[id]'");
}
if($_GET[mode] == "sossvar"){
mysql_query("INSERT INTO alert (msg,brugernavn)VALUES('$_GET[msg]','$_GET[brugernavn]')");
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <title> <?=$style[title]?> </title>
  <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
  <script src="tooltips.js" type="text/javascript"></script>
        <script type="text/javascript" id="TextEditor.js" src="../includer/TextEditor.js"></script>
</head>
        </ul>
    </div>
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
Kurser inden for grundlæggende programmering

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