Avatar billede dennism Nybegynder
21. februar 2003 - 11:04 Der er 24 kommentarer og
1 løsning

Kør mysql-foresp. når vinduet lukkes...

Hvordan kan jeg lave sådan at et MySQl-foresp. som denne bliver kørt når jeg lukker et vindue:

mysql_query("INSERT INTO chat (fra, til, tekst) VALUES ('admin','','$_SESSION[brugernavn] har nu forladt chatten!')");
Avatar billede ahv Nybegynder
21. februar 2003 - 11:08 #1
Du skal kører en:

onunload="self.window.open('logudforlod.php','AHV','height=10,width=10,resizable=no,status=no,toolbar=no,menubar=no,location=no')"

Denne kan du sætte i dit frameset f.eks:

<frameset cols="20%,*" frameborder="1" onunload="self.window.open('logudforlod.php','AHV','height=10,width=10,resizable=no,status=no,toolbar=no,menubar=no,location=no')" noresize>

logudforlod.php indeholder så:

session_start();
mysql_query("INSERT INTO chat (fra, til, tekst) VALUES ('admin','','$_SESSION[brugernavn] har nu forladt chatten!')");
Avatar billede twm Nybegynder
21. februar 2003 - 11:09 #2
<script language="JavaScript">
<!--
Tilføj denne til siden og læg din insert kode i unload.php
function open_on_departure()
{
popupWin = window.open('Navn','unload.php', ' width=1,height=1,left=0,top=0')
}
// -->
</script>

<body onUnload="open_on_departure()">
Avatar billede ahv Nybegynder
21. februar 2003 - 11:11 #3
twm: Efter som det er en chat, vil det jo væe sådan at den vil loade din kode hver eneste gang chatten bliver opdateret, derfor ville det være smartere at placere den i framesættet.
Avatar billede twm Nybegynder
21. februar 2003 - 11:14 #4
ok, det tænkte jeg ikke på
Avatar billede dennism Nybegynder
21. februar 2003 - 11:14 #5
ahv >>

Kan jeg ikke lave sådan at det vindue i logudforlod.php bliver lukker igen, med det samme at forespørgelsen er kørt?

Det er for at forhindre at de trykker opdater, og derved bliver det jo indsat igen!
Avatar billede Slettet bruger
21. februar 2003 - 11:16 #6
I logudforlod skal du bare sætte det her ind efter din query:

<script type="text/javascript">
window.close();
</script>
Avatar billede dennism Nybegynder
21. februar 2003 - 11:17 #7
Kan jeg lave sådan at man ikke kan opdatere chat-vinduet, da det jo også resulterer i at logudforlod vil blive kørt?
Avatar billede ahv Nybegynder
21. februar 2003 - 11:20 #8
Det her så her at alle, har deres problemer, de gange jeg har haft brug får det har jeg sagt "Så må de jo trykke på opdater og blive logget ud, så gør de nok ikke det igen næste gang"
Avatar billede dennism Nybegynder
21. februar 2003 - 11:21 #9
ahv >>

Genialt! :D
Men hvordan kan jeg så lave en .php funktion som kan se forskel på at de har trykket opdater, eller om de virkelig logger på?
Avatar billede ahv Nybegynder
21. februar 2003 - 11:25 #10
Har du sat den i dit frameset? Så burde den jo ikke blive aktiveret når de kommer der ind.
Avatar billede dennism Nybegynder
21. februar 2003 - 11:39 #11
Sådan ser min side med frameset ud:

<?PHP
include("xxxx");
include("xxxx");
include("xxxx");

if ($_SESSION["loggetind"] == 1) {

mysql_query("INSERT INTO chat (fra, til, tekst) VALUES ('admin','','$_SESSION[brugernavn] er nu med på chatten!')");
?>

<FRAMESET FRAMEBORDER="0" FRAMESPACING="0" BORDER="0" ROWS="85%,15%" COLS="100%" onunload="self.window.open('afslutchat.php','AHV','height=10,width=10,resizable=no,status=no,toolbar=no,menubar=no,location=no')">
    <FRAME SRC="top.php" NAME="top"  MARGINHEIGHT="5" MARGINWIDTH="5" NORESIZE SCROLlING="yes">
    <FRAME SRC="bund.php" NAME="bund" MARGINHEIGHT="5" MARGINWIDTH="5" NORESIZE NORESIZE SCROLING="no">
</FRAMESET>



<?PHP
} else {
echo"<LI><font color=#FF0000>Du er ikke logget ind.</FONT><BR>";
}

include("include/bund2.php"); ?>



$_SESSION["loggetind"] fortæller om brugeren er logget ind i communityet, og ikke om han/hun er logget ind i chatten!..
Som du kan se, så bliver der indsat en tekst hver gang man åbner framesetet!..

Har du et forslag til, hvordan da kan se opdaterer siden, og derved skriver at han/hun nu er logget af?
Avatar billede dennism Nybegynder
21. februar 2003 - 11:52 #12
Skal jeg evt. gøre ved at sætte nogle cookies?
Avatar billede ahv Nybegynder
21. februar 2003 - 12:14 #13
Registrer en session når de lukker ind i chatten, som f.eks bare er sat til 1.
Når de så kører 'afslutchat.php' sætter du denne session til f.eks. 2

i din chat kan du jo så kører at når session er 1 skal den bare vise chatten, men er session 2 skal den skrive at brugeren er logget ud også skal den så destroy denne session.

Det var måske en mulighed.
Avatar billede dennism Nybegynder
21. februar 2003 - 12:18 #14
Prøver det lige!.. Jeg håber det er ok at jeg vender tilbage, hvis jeg får nogle problemer!?
Avatar billede dennism Nybegynder
21. februar 2003 - 12:19 #15
Er du lige flink at hjælpe her, måske:

http://www.eksperten.dk/spm/320099
Avatar billede dennism Nybegynder
21. februar 2003 - 13:07 #16
ahv >>

Jeg har lige lavet det som du skrev!
Men når trykker F5 så skriver den godtnok at man nu er logget ud, men trykker man så F5 igen, så er men logget ind igen!.. Det er ik så smart :(

HVordan kan jeg forhindre dette?
Avatar billede ahv Nybegynder
21. februar 2003 - 13:23 #17
Tror en løsning kunne være at lave en

header("Location: ude.php");

Hvis session er 2, så ville brugeren så blive sendt over til en anden side.
Avatar billede dennism Nybegynder
21. februar 2003 - 13:24 #18
Lyser meget fornyftigt.. Men det forstod jeg altså ik særlig meget af!..
Er du ik venlig at skøre det ud i pap?
Avatar billede dennism Nybegynder
21. februar 2003 - 13:34 #19
lyser = lyder
Avatar billede ahv Nybegynder
21. februar 2003 - 13:52 #20
Hvordan ser dit frameset ud nu?
Avatar billede dennism Nybegynder
21. februar 2003 - 13:53 #21
<FRAMESET FRAMEBORDER="0" FRAMESPACING="0" BORDER="0" ROWS="85%,15%" COLS="100%" onunload="self.window.open('include/side/chat/afslutchat.php','AHV','height=10,width=10,resizable=no,status=no,toolbar=no,menubar=no,location=no')">
    <FRAME SRC="include/side/chat/top.php#bund" NAME="top" MARGINHEIGHT="5" MARGINWIDTH="5" NORESIZE SCROLlING="yes">
    <FRAME SRC="include/side/chat/bund.php" NAME="bund" MARGINHEIGHT="5" MARGINWIDTH="5" NORESIZE NORESIZE SCROLING="no">
</FRAMESET>
Avatar billede ahv Nybegynder
21. februar 2003 - 13:58 #22
Gerne alt kode der er på siden hvor framesettet er.
Avatar billede dennism Nybegynder
21. februar 2003 - 14:00 #23
<?PHP
include("include/db_ind.php");
include("include/session.php");
include("include/chat_head.php");

if ($_SESSION["loggetind"] == 1) {

mysql_query("INSERT INTO online_chat (brugernavn) VALUES ('$_SESSION[brugernavn]')");
?>

<FRAMESET FRAMEBORDER="0" FRAMESPACING="0" BORDER="0" ROWS="85%,15%" COLS="100%" onunload="self.window.open('include/side/chat/afslutchat.php','AHV','height=10,width=10,resizable=no,status=no,toolbar=no,menubar=no,location=no')">
    <FRAME SRC="include/side/chat/top.php#bund" NAME="top" MARGINHEIGHT="5" MARGINWIDTH="5" NORESIZE SCROLlING="yes">
    <FRAME SRC="include/side/chat/bund.php" NAME="bund" MARGINHEIGHT="5" MARGINWIDTH="5" NORESIZE NORESIZE SCROLING="no">
</FRAMESET>

<?
} else {
echo"<LI><font color=#FF0000>Du er ikke logget ind.</FONT><BR>";
}

include("include/bund2.php"); ?>
Avatar billede ahv Nybegynder
21. februar 2003 - 14:03 #24
Og når du trykker F5 i chatten skriver den?
Avatar billede dennism Nybegynder
21. februar 2003 - 14:10 #25
Ups... Jeg skal lige have redigeret noget i systemet!... Jeg vender tilbage, når det er gjort
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