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>"; } ?>
Annonceindlæg fra Cognizant
AI er ikke problemet. Eksekvering er.
Der bliver investeret massivt i AI. Teknologien er mere tilgængelig end nogensinde, og ambitionerne er høje. Alligevel oplever mange virksomheder, at resultaterne udebliver.
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..
01. november 2003 - 14:03
#2
du kan evt hente forskellige chatte og lure koden ?
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... :)
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?
01. november 2003 - 16:13
#5
loginsiden, tilføj siden, og linierne omkring mysql'en i siden som viser chatten!
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">
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! ;)
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 } ?>
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... :)
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... :)
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?
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!
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 :)
02. november 2003 - 11:40
#14
Jeps nu virker det fint tak :)
Vi tilbyder markedets bedste kurser inden for webudvikling