Avatar billede webhest Nybegynder
01. november 2003 - 13:54 Der er 13 kommentarer og
1 løsning

Chat tekst som ikke skal kunne se's af nye

Hej!

Hvis jeg er en helt ny bruger der logger ind på min chat, så kan jeg se hvad der er skrevet!

Det skal gerne være sådan at når jeg logger ind, så kan jeg ikke se hvad der er skrevet inden jeg er logget ind!

Hvordan gør jeg det??

Min fremvisningskode af chattekst ser sådan ud:

<?
$res1 = mysql_query("SELECT * FROM chattext ORDER BY id DESC LIMIT 0,20") or die(mysql_error());
  while ($row1 = mysql_fetch_array($res1)){
  $ress = "";
  $nybesked = str_replace(":)"," <img src=smiley/smile.gif>",$row1['tekstbesked']);
  echo"<font face=verdana size=1 color=$row1[farve]>";
echo"$row1[brugernavn]: $nybesked<br>";
}
?>
Avatar billede ztyxx Nybegynder
01. november 2003 - 13:58 #1
et bud ville være at man smed et timestamp i databasen når man loggede på, og så kun viste de beskeder der var nyere..
Avatar billede the_legend Nybegynder
01. november 2003 - 14:03 #2
du kan evt hente forskellige chatte og lure koden ?
Avatar billede elskermad.dk Nybegynder
01. november 2003 - 14:21 #3
du skal som ztyxx lave en kolonne mere i din tabel, som kommer til at indeholde time() for det tidspunkt hvor chat-linien bliver tilføjet!

der hvor du logger brugeren ind skal du lave en:
<?
$logintime = time();
?>

og der hvor du henter fra mysql-tabellen skal du hente på følgende måde:
$res1 = mysql_query("SELECT * FROM chattext WHERE time > $logintime ORDER BY id DESC LIMIT 0,20") or die(mysql_error());

Hvis du ikke lige kan forstå hvad jeg har skrevet kan du prøve at poste lidt af din kode så kan jeg prøve at sætte det sammen for dig... :)
Avatar billede webhest Nybegynder
01. november 2003 - 15:37 #4
You have an error in your SQL syntax near 'ORDER BY id DESC LIMIT 0,20' at line 1

Jeg får denne besked!
Hvilken side vil du have?
Login siden eller siden man kommer hen til når man er logget ind?
Avatar billede elskermad.dk Nybegynder
01. november 2003 - 16:13 #5
loginsiden, tilføj siden, og linierne omkring mysql'en i siden som viser chatten!
Avatar billede webhest Nybegynder
01. november 2003 - 16:21 #6
** Loginsiden **

<? include "mysql.php"; ?>
<table cellpadding="0" cellspacing="0" height="100%" width="98%" valign="top">
<tr>
<td valign="top" width="200">
<form action="loginok.php" method="post">
Brugernavn:<br>
<input type="text" name="brugernavn"><br>
Kodeord:<br>
<input type="password" name="kodeord"><br><br>
<input type="submit" value="Login" name="ok"><br>
<a href="opretbruger.php">Opret Bruger</a><br>
<a href="loginok.php">Profil</a><br>
<a href="index.php">Webghost.dk</a>
</form>
</td>
<td valign="top" width="600" valign="top">


** Opret bruger siden **

<?php
require("mysql.php");
?>
<? include "includ/styletop.php"; ?>
<? include "includ/top.php"; ?>
<? include "includ/menu.php"; ?>

<table width=500 cellpadding=0 cellspacing=0>
<tr>
<td>
<h4>Opret bruger</h4>
<p>
<form action="" method="post">
Brugernavn:<br><input type="text" name="brugernavn"><br><br>
Password:<br><input type="text" name="password"><br><br>
Din e-mail :<br><input type="text" name="mail"><br><br>
Profil-tekst:<br>
<textarea name="profiltekst" rows="4" cols="40"></textarea>
<input type="submit" name="ok" value="Opret min bruger">
</form>
</p>
<?php
if(isset($_REQUEST['ok'])) {
$brugernavn = $_REQUEST["brugernavn"];
$password = $_REQUEST["password"];
$mail = $_REQUEST["mail"];



$tjek = mysql_query("select brugernavn from brugeroplysninger where brugernavn='$brugernavn'") or die (mysql_error());
$tjekto = mysql_query("select mail from brugeroplysninger") or die (mysql_error());

if($tjekto == $mail) {
echo"Der er allerede en bruger oprettet med denne mail!";
}
else{

if(mysql_num_rows($tjek) != 0) {
echo "<p>Det valgte brugernavn er optaget.</p>";
exit;
}
mysql_query("INSERT INTO brugeroplysninger SET brugernavn = '$brugernavn', kodeord = '$password', mail = '$mail', profiltekst = '$profiltekst'");
?>
Tillykke!<br>
Du er nu oprettet med følgende oplysninger:<br> <?php echo "Brugernavn: $brugernavn<br>Password: $password<br>Email $mail"; ?></p>
<?php
}
}
?>
</td>
</tr>
</table><br>

<? include "includ/bund.php"; ?>

** Siden der viser tekst på chatten **

<center>
<font face="Verdana" size="1" color="#000000">
<?
echo date("<b>H:i</b>");
?>
</center></font>
<?
$res1 = mysql_query("SELECT * FROM chattext ORDER BY id DESC LIMIT 0,20") or die(mysql_error());
  while ($row1 = mysql_fetch_array($res1)){
  $ress = "";
  $nybesked = str_replace(":)"," <img src=smiley/smile.gif>",$row1['tekstbesked']);
  echo"<font face=verdana size=1 color=$row1[farve]>";
echo"$row1[brugernavn]: $nybesked<br></font>";
}
?>
<meta http-equiv="refresh" content="2 ; URL=?load=ok">
Avatar billede elskermad.dk Nybegynder
01. november 2003 - 16:27 #7
det skal nok være loginok.php jeg skal have istedet også skal jeg ikke bruge siden som opretter brugeren, men siden som tilføjer nye chatlinier til databasen! ;)
Avatar billede webhest Nybegynder
01. november 2003 - 16:42 #8
** Skriv.php **

<?
session_start();
include("styletop.php");
if (session_is_registered("brugernavn")) {
mysql_connect("localhost", "root", "root");
mysql_select_db("chat-webghost");
if ($_POST[action] == "update"){
    $tekstbesked = ($_POST[tekstbesked]);
$res = mysql_query("SELECT * FROM brugeroplysninger WHERE brugernavn = '$_SESSION[brugernavn]'");
$row = mysql_fetch_array($res);
    mysql_query("INSERT INTO chattext SET brugernavn = '$_SESSION[brugernavn]', tekstbesked = '$tekstbesked', farve = '$row[farve]'");
}
?>
<body topmargin="0">
<form action=skriv.php method=post>
<input type="text" name="tekstbesked" size="50">
<input type="hidden" name="action" value="update">
<input type="submit" name="update" value="OK">
<?
}
else{
echo"Du er ikke logget ind!";
}
?>

** Loginok **

<?php
session_start();
if (session_is_registered("brugernavn")) {
include('mysql.php');

$res = mysql_query("SELECT * FROM brugeroplysninger WHERE brugernavn = '$_SESSION[brugernavn]'");
$row = mysql_fetch_array($res);
?>
<? include "includ/styletop.php"; ?>
<? include "includ/top.php"; ?>
<? include "includ/menu.php"; ?>

<table width=500 cellpadding=0 cellspacing=0 valign="top">
<tr>
<td valign="top">
Velkommen <?=$_SESSION[brugernavn];?><br><br>
<b><u>.Mail Box</u></b><br>
<a href=send_brev.php>Send et brev</a> - <a href=indbakke.php>Indbakke [0]</a> - <a href=slet_breve.php>Slet brev</a><br>
<br>
<b><u>.Profil Menu</u></b><br>
<a href=profil.php?mode=ret>Ret profil</a> - <a href=venneliste.php>Venneliste</a> - <a href=soeg.php>Søg efter bruger</a><br>
<br>
<b><u>.Chat funktioner</u></b><br>
<a href=chat/chat.php target=_blank>Log på chatten</a> - <a href=hvemonline.php>Hvem er online?</a> - <a href=nyheder.php>Chat-nyheder</a><br>
<br>
<b><u>.Bruger Oplysninger</u></b><br>
Du har <?=$row[point];?> point.<br>
[Onlinetid er ikke lavet endnu!]<br>
Dit status er <?=$row[status];?>.
<br>

<?
if ($row[status] == "Borgmester"){
?>
<br>
<b><u>.Admin Menu</u></b><br>
<a href=admin_nyhed.php>Tilføj forside nyhed</a>
<?
}
?>



</td>
</tr>
</table><br>

<? include "includ/bund.php"; ?>



<?php
} else {
?>
<? include "includ/styletop.php"; ?>
<? include "includ/top.php"; ?>
<? include "includ/menu.php"; ?>

<table width=500 cellpadding=0 cellspacing=0>
<tr>
<td>
Du skal <a href='index.php'>logge ind</a> først
</td>
</tr>
</table>
<? include "includ/bund.php"; ?>
<?php
}
?>
Avatar billede elskermad.dk Nybegynder
01. november 2003 - 16:51 #9
skriv.php
<?
session_start();
$time = time();
include("styletop.php");
if (session_is_registered("brugernavn")) {
mysql_connect("localhost", "root", "root");
mysql_select_db("chat-webghost");
if ($_POST[action] == "update"){
    $tekstbesked = ($_POST[tekstbesked]);
$res = mysql_query("SELECT * FROM brugeroplysninger WHERE brugernavn = '$_SESSION[brugernavn]'");
$row = mysql_fetch_array($res);
    mysql_query("INSERT INTO chattext SET brugernavn = '$_SESSION[brugernavn]', tekstbesked = '$tekstbesked', farve = '$row[farve]', time = '$time'");
}
?>
<body topmargin="0">
<form action=skriv.php method=post>
<input type="text" name="tekstbesked" size="50">
<input type="hidden" name="action" value="update">
<input type="submit" name="update" value="OK">
<?
}
else{
echo"Du er ikke logget ind!";
}
?>


---------------------------------------------------------
loginok.php
<?php
session_start();
$time = time();
session_register(time);
if (session_is_registered("brugernavn")) {
include('mysql.php');

$res = mysql_query("SELECT * FROM brugeroplysninger WHERE brugernavn = '$_SESSION[brugernavn]'");
$row = mysql_fetch_array($res);
?>
<? include "includ/styletop.php"; ?>
<? include "includ/top.php"; ?>
<? include "includ/menu.php"; ?>

<table width=500 cellpadding=0 cellspacing=0 valign="top">
<tr>
<td valign="top">
Velkommen <?=$_SESSION[brugernavn];?><br><br>
<b><u>.Mail Box</u></b><br>
<a href=send_brev.php>Send et brev</a> - <a href=indbakke.php>Indbakke [0]</a> - <a href=slet_breve.php>Slet brev</a><br>
<br>
<b><u>.Profil Menu</u></b><br>
<a href=profil.php?mode=ret>Ret profil</a> - <a href=venneliste.php>Venneliste</a> - <a href=soeg.php>Søg efter bruger</a><br>
<br>
<b><u>.Chat funktioner</u></b><br>
<a href=chat/chat.php target=_blank>Log på chatten</a> - <a href=hvemonline.php>Hvem er online?</a> - <a href=nyheder.php>Chat-nyheder</a><br>
<br>
<b><u>.Bruger Oplysninger</u></b><br>
Du har <?=$row[point];?> point.<br>
[Onlinetid er ikke lavet endnu!]<br>
Dit status er <?=$row[status];?>.
<br>

<?
if ($row[status] == "Borgmester"){
?>
<br>
<b><u>.Admin Menu</u></b><br>
<a href=admin_nyhed.php>Tilføj forside nyhed</a>
<?
}
?>



</td>
</tr>
</table><br>

<? include "includ/bund.php"; ?>



<?php
} else {
?>
<? include "includ/styletop.php"; ?>
<? include "includ/top.php"; ?>
<? include "includ/menu.php"; ?>

<table width=500 cellpadding=0 cellspacing=0>
<tr>
<td>
Du skal <a href='index.php'>logge ind</a> først
</td>
</tr>
</table>
<? include "includ/bund.php"; ?>
<?php
}
?>


--------------------------------------------------------------
siden som viser chatten
<center>
<font face="Verdana" size="1" color="#000000">
<?
echo date("<b>H:i</b>");
?>
</center></font>
<?
$res1 = mysql_query("SELECT * FROM chattext WHERE time > '$_SESSION[time]' ORDER BY id DESC LIMIT 0,20") or die(mysql_error());
  while ($row1 = mysql_fetch_array($res1)){
  $ress = "";
  $nybesked = str_replace(":)"," <img src=smiley/smile.gif>",$row1['tekstbesked']);
  echo"<font face=verdana size=1 color=$row1[farve]>";
echo"$row1[brugernavn]: $nybesked<br></font>";
}
?>
<meta http-equiv="refresh" content="2 ; URL=?load=ok">







også skal du have lavet kolonnen time i din mysql-tabel!

se om du kan få det til at virke... :)
Avatar billede elskermad.dk Nybegynder
01. november 2003 - 16:53 #10
WOOOUP... se li bort fra det andet, ellers bliver det noget rod!

dette er bedre:

skriv.php
<?
session_start();
$time = time();
include("styletop.php");
if (session_is_registered("brugernavn")) {
mysql_connect("localhost", "root", "root");
mysql_select_db("chat-webghost");
if ($_POST[action] == "update"){
    $tekstbesked = ($_POST[tekstbesked]);
$res = mysql_query("SELECT * FROM brugeroplysninger WHERE brugernavn = '$_SESSION[brugernavn]'");
$row = mysql_fetch_array($res);
    mysql_query("INSERT INTO chattext SET brugernavn = '$_SESSION[brugernavn]', tekstbesked = '$tekstbesked', farve = '$row[farve]', time = '$time'");
}
?>
<body topmargin="0">
<form action=skriv.php method=post>
<input type="text" name="tekstbesked" size="50">
<input type="hidden" name="action" value="update">
<input type="submit" name="update" value="OK">
<?
}
else{
echo"Du er ikke logget ind!";
}
?>


---------------------------------------------------------
loginok.php
<?php
session_start();
$logintime = time();
session_register(time);
if (session_is_registered("brugernavn")) {
include('mysql.php');

$res = mysql_query("SELECT * FROM brugeroplysninger WHERE brugernavn = '$_SESSION[brugernavn]'");
$row = mysql_fetch_array($res);
?>
<? include "includ/styletop.php"; ?>
<? include "includ/top.php"; ?>
<? include "includ/menu.php"; ?>

<table width=500 cellpadding=0 cellspacing=0 valign="top">
<tr>
<td valign="top">
Velkommen <?=$_SESSION[brugernavn];?><br><br>
<b><u>.Mail Box</u></b><br>
<a href=send_brev.php>Send et brev</a> - <a href=indbakke.php>Indbakke [0]</a> - <a href=slet_breve.php>Slet brev</a><br>
<br>
<b><u>.Profil Menu</u></b><br>
<a href=profil.php?mode=ret>Ret profil</a> - <a href=venneliste.php>Venneliste</a> - <a href=soeg.php>Søg efter bruger</a><br>
<br>
<b><u>.Chat funktioner</u></b><br>
<a href=chat/chat.php target=_blank>Log på chatten</a> - <a href=hvemonline.php>Hvem er online?</a> - <a href=nyheder.php>Chat-nyheder</a><br>
<br>
<b><u>.Bruger Oplysninger</u></b><br>
Du har <?=$row[point];?> point.<br>
[Onlinetid er ikke lavet endnu!]<br>
Dit status er <?=$row[status];?>.
<br>

<?
if ($row[status] == "Borgmester"){
?>
<br>
<b><u>.Admin Menu</u></b><br>
<a href=admin_nyhed.php>Tilføj forside nyhed</a>
<?
}
?>



</td>
</tr>
</table><br>

<? include "includ/bund.php"; ?>



<?php
} else {
?>
<? include "includ/styletop.php"; ?>
<? include "includ/top.php"; ?>
<? include "includ/menu.php"; ?>

<table width=500 cellpadding=0 cellspacing=0>
<tr>
<td>
Du skal <a href='index.php'>logge ind</a> først
</td>
</tr>
</table>
<? include "includ/bund.php"; ?>
<?php
}
?>


--------------------------------------------------------------
siden som viser chatten
<center>
<font face="Verdana" size="1" color="#000000">
<?
echo date("<b>H:i</b>");
?>
</center></font>
<?
$res1 = mysql_query("SELECT * FROM chattext WHERE time > '$_SESSION[logintime]' ORDER BY id DESC LIMIT 0,20") or die(mysql_error());
  while ($row1 = mysql_fetch_array($res1)){
  $ress = "";
  $nybesked = str_replace(":)"," <img src=smiley/smile.gif>",$row1['tekstbesked']);
  echo"<font face=verdana size=1 color=$row1[farve]>";
echo"$row1[brugernavn]: $nybesked<br></font>";
}
?>
<meta http-equiv="refresh" content="2 ; URL=?load=ok">





også skal du have lavet kolonnen time i din mysql-tabel!

se om du kan få det til at virke... :)
Avatar billede webhest Nybegynder
01. november 2003 - 17:27 #11
Det virker godt nok FØRSTE gang man logger ind!

Men når man logger ud (lukker for sessions)
og bagefter logger ind igen, så står den tekst man sidst har set, derinde..!
Ikke nice =/
Kiggede lige på feltet "time" inde i databasen, er det ikke meningen der skal stå noget der?
Avatar billede elskermad.dk Nybegynder
01. november 2003 - 18:48 #12
i toppen af login.php kan du måske skrive:
<?
session_start();
session_restroy;
?>

så burde der være renset ud :D

der burde være noget tekst i kolonnen time i hver række!
Avatar billede elskermad.dk Nybegynder
01. november 2003 - 19:01 #13
har li set en fejl i min kode (er jeg ked af)

der hvor der nu står:
<?php
session_start();
$logintime = time();
session_register(time);

i loginok.php skal der stå:
<?php
session_start();
$logintime = time();
session_register(logintime);

prøv lige at se om det ikke hjælper :)
Avatar billede webhest Nybegynder
02. november 2003 - 11:40 #14
Jeps nu virker det fint tak :)
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