Avatar billede straszek Praktikant
24. juni 2003 - 13:08 Der er 11 kommentarer og
1 løsning

Ændring af olebole chat script

Er der nogen der kan hjælpe mig med at ændre olebole chat script - http://www.eksperten.dk/spm/320350 således at der bliver automatisk login udfra $PHP_AUTH_USER ?

Jeg har et system hvor brugerne er logget ind, og derfor vil det være smartest hvis login kunne foregå automatisk!



M.v.h


Søren
Avatar billede ahv Nybegynder
24. juni 2003 - 13:23 #1
Altså log ind siden skal faktisk bare være automatisk? Prøv at lave login.php om til ->

<?
include ( "config.php" );
$user = $PHP_AUTH_USER;
if ( isset($user) && $user<>"" && strlen($user)<=15 ) {
    $oldStamp = time() - $maxAge;
    $sql = "delete from messages where stamp<$oldStamp";
    mysql_query( $sql );
    $user = addslashes( $user );
    $sql = "insert into users set user='$user'";
    $res = mysql_query( $sql );
    if ( mysql_affected_rows()>0 ) {
        $msg = "<b>Ny bruger logget på</b>";
        $stamp = time();
        $sql = "insert into messages ( user, msg, stamp ) values ( '$user', '$msg', '$stamp' )";
        mysql_query( $sql );
        session_start();
        session_register( "user_name" );
        $user_name = $user;
        Header ( "Location: index.php" );
    } else {
        $err_msg = "<div style=\"color:#ff0000;font-weight:bold;text-align:center;\">Dette nick er allerede optaget</div>";
    }
}
?>
Avatar billede straszek Praktikant
24. juni 2003 - 13:47 #2
Det ser nu til næsten at virke; Jeg forsøger at integererer chat i mit eget layout, men får nedenstående beskeder:

Warning: Cannot send session cache limiter - headers already sent (output started at /var/www/html/sektor/php-lib/header.php:5) in /var/www/html/sektor/system/moduler/chat/chaten.php on line 89

Warning: Cannot add header information - headers already sent by (output started at /var/www/html/sektor/php-lib/header.php:5) in /var/www/html/sektor/system/moduler/chat/chaten.php on line 90
Avatar billede ahv Nybegynder
24. juni 2003 - 13:48 #3
Kan du vise mig chaten.php?
Avatar billede ahv Nybegynder
24. juni 2003 - 14:01 #4
Altså poste scriptet her med dit layout i.
Avatar billede straszek Praktikant
24. juni 2003 - 14:11 #5
Den kommer her, det er lidt rodet og uoverskueligt, men kode oprydningsfasen, er jeg ikke helt kommet til endnu :-)

Som koden er nu virker chatten fint, den er bare ikke med i mit layout.
jeg går ud fra at det skylde linjen:
if ( !isset($user_name) || $user_name=="" ) Header ( "Location: login.php" );

For hvis jeg flytter den længere ned, til det hvor selve chatten begynder, så kommer chatten med i layoute som den skal, men give fejlen:

Warning: Cannot add header information - headers already sent by (output started at /var/www/html/sektor/system/moduler/chat/chaten.php:88) in /var/www/html/sektor/system/moduler/chat/chaten.php on line 90



<?
include ( "config.php" );
unset( $user_name );
session_start();
if ( !isset($user_name) || $user_name=="" ) Header ( "Location: login.php" );
include ("/var/www/html/sektor/php-lib/commons.php");
include ("$anticache");
include ("$tagster");
include ("$header");
include ("$dbconnect");
include ("$aabendb");
        ?>
    <body bgcolor=\"#dedede\">
<table width="1000" border="0" cellspacing="0" cellpadding="0" bgcolor="#dedede" cool gridx="16" gridy="16" height="310" showgridx showgridy usegridx usegridy>
<tr height="56">
<td width="481" height="609" rowspan="6"><spacer type="block" width="48" height="609"></td>
<td width="656" height="16" colspan="2"><spacer type="block" width="656" height="56"></td>
<td width="501" height="609" rowspan="6"><spacer type="block" width="50" height="609"></td>
<td width="11" height="16"><spacer type="block" width="1" height="16"></td>
</tr>
               
                <tr height="20">
        <?
            echo "<a href=http://www.danstud.dk><img src=\"http://www.danstud.dk/sektorcare/grafik/logo.jpg\" border=0></a>";
            echo "<td content bgcolor=\"$bgmenu1\" csheight=\"20\"
                    width=\"656\" height=\"20\" colspan=\"2\" valign=\"top\" align=\"left\" xpos=\"48\">";
                   
                            //Henter menu nr. 1
                               
                                echo"<table cellspacing=5>";

echo"<table cellspacing=5>";

//////////////////////////
// Laver menuer
//////////////////////////

           

                                <?
                                    include ("$menu1");
                                    include ("$menu2");
                               
                               
                               
                               
                                //BLOK A                   
echo "             <p class=\"overskrift\"><b><font size=-2>&nbsp;Min side - $row[realname]</font></b>
</p><img src=\"../grafik/tekstspacer.gif\"><br>";
           
            $resultat = mysql_query("select * from user where username='$PHP_AUTH_USER'") or die(mysql_error());
    $row = mysql_fetch_array($resultat);
            echo"<p class=\"tekst\"><font size=-1>$tekst";
            //////////////////////////////////////////////////////////////////////////////////
           
            ?>
                <table cellpadding=10 cellspacing=0 border=0 width=800 bgcolor=#CCCCCC>
        <tr><td width="800"><table cellspacing="0" cellpadding="0" border="0" width="800">
        <tr><td><table width=800 border=0 cellpadding=0 cellspacing=0>
       
                <td align="right" valign="top"></td></tr></table>
                <table cellpadding=0 cellspacing=0 border=0 width="800">
                <tr><td width=50% valign=top><table border=0 cellspacing=0 cellpadding=0>
                <tr><td nowrap bgcolor=#4682b4 class="framefocus">

<div class="subtabheaderselected">


Chat

</div></td><td nowrap width="100%"><div class="">&nbsp;&nbsp;&nbsp;</div></td></tr></table>
<table bgcolor="#395D8C" width="100%" cellpadding=0 cellspacing=0 border=0>

<tr><td></td></tr></table><table width=100% cellpadding=4 cellspacing=0 border=0 bgcolor=#EFEFEF><tr><td width=20 valign=top align=middle><img src="images/tdot.gif" vspace=10 WIDTH=20 HEIGHT=1></td><td colspan=2 width=100% bgcolor=#ffffff><span class="textb">
<?


?>
<!-- ***********************************************************************
                        OleBole-Chat Version 1.0
                    (c) Copyright Ole Clausen, 2003
                   
    This chat was downloaded from http://www.eksperten.dk/spm/
        The code is free to use if you leave these lines untouched.
              If you alter the code, dont erase these lines.
                  Add a modification-notice instead.
   
************************************************************************ -->
<style type="text/css">
td {
    font-family: verdana, arial, sans-serif;
    font-size: 11px;
}
.msgTbl {
    width: 100%;
}
td, input, button {
    font-family: verdana, arial, sans-serif;
    font-size: 11px;
}
input {
    width: 100%;
    border: 1px dashed #336699;
}
button {
    background-color: #dedede;
    border: 1px solid #336699;
    margin-left: 15px;
}
.u {
    width: 100px;
    color: #ff0000;
    vertical-align: top;
    padding: 5px 12px 5px 5px;
    border-bottom: 1px dashed #999999;
}
.m {
    padding: 5px;
    border-bottom: 1px dashed #999999;
   
}
.time {
    color: #336699;
    font-size: 9px;
}
.clHidFrame {
    position: absolute;
    width: 1px;
    height: 1px;
    left: 0px;
    top: 0px;
}
#chat {
    width: 450px;
}
</style>
<script type="text/JavaScript">
var maxNumMsgs = <?=$maxNumMsgs?>;
var hiCol = "<?=$hiCol?>";
var loCol = "<?=$loCol?>";
var d=document;
function gE(id){return d.getElementById(id)}
function gA(o,tN){return o.getElementsByTagName(tN)}
function writeChat( a ) {
    var tbl = gE("chat");
    for (i=0; i<a.length; i+=3) {
        var bgCol = ( gA(tbl, "TR")[0].style.backgroundColor=="#ffffff" )? loCol : hiCol;
        var newRow = tbl.insertRow(0);
        var newCell = newRow.insertCell(0);
        newCell.innerHTML = "<b>" + a[i] + "</b><div class=\"time\">[" + a[i+1] + "]</div>";
        newCell.className = "u";
        var newCell = newRow.insertCell(1);
        newCell.innerHTML = a[i+2];
        newCell.className = "m";
        newRow.style.backgroundColor = bgCol;
    }
    var numMsgs = gA(tbl, "TR").length;
    while ( numMsgs>maxNumMsgs ) {
        tbl.deleteRow(numMsgs-1);
        numMsgs--;
    }
}
window.onunload = function() {
    window.open( "logout.php", "logOutWin", "width=100,height=100" );
}
</script>
</head>
<body>

<div style="width:470px">
<div id="bla" style="height:250px;overflow:auto;">
<table id="chat" cellspacing="0" cellpadding="0" border="0">
<tr>
    <td colspan="2">&nbsp;</td>
</tr>
</table>

</div>
<form name="msgForm" target="msgFrame" action="msg.php" method="post">
<table class="msgTbl" cellspacing="0" cellpadding="0" border="0">
<tr>
    <td><input type="text" name="msg"></td>
    <td style="width:10px;"><button type="submit">Send</button></td>
</tr>
</table>
</form>
</div>

<iframe name="msgFrame" class="clHidFrame" src="msg.php" frameborder="0"></iframe>
<iframe name="chatFrame" class="clHidFrame" src="chat.php" frameborder="0"></iframe>
</table><table bgcolor='#395D8C' width='100%' cellpadding=0 cellspacing=0 border=0><tr><td></td></tr></table></td></tr></table></td></tr></table><tr><td></td></tr></table>
               
               
                <?
            include ("$sidemidt");
include ("$sidemidt2");
include ("$sidemidt3");
                ?>
                <p></p><img src="grafik/blaaspacer.gif" width="220" height="1">
            <?
            include ("$bund");
                include ("$lukdb");

               
               
                ?>
</body>
</html>
Avatar billede ahv Nybegynder
24. juni 2003 - 14:18 #6
Du har noget output til browseren før den header, det må du ikke have, kan ikke lige overskue din kode.
Avatar billede straszek Praktikant
24. juni 2003 - 14:20 #7
Ja så langt var jeg også kommet, spørgsmålet er så bare hvor jeg skal putte
if ( !isset($user_name) || $user_name=="" ) Header ( "Location: login.php" );

for at få både layout og chat med ?!
Avatar billede ahv Nybegynder
24. juni 2003 - 14:25 #8
<?
include ( "config.php" );
if ( !isset($user_name) || $user_name=="" ) Header ( "Location: login.php" );
unset( $user_name );
session_start();

?
Avatar billede straszek Praktikant
24. juni 2003 - 14:27 #9
Jeg har sat det ind som det først i koden, men så kommer layoutet ikke med


Søren
Avatar billede ahv Nybegynder
24. juni 2003 - 14:29 #10
Altså hvis du flytter ->
if ( !isset($user_name) || $user_name=="" ) Header ( "Location: login.php" );
Længere ned så virker det fint, men så kommer den med en fejl?

Jeg kan ikke helt overksue koden som sagt, men vi kan da tricke den ved at lave lidt overkill med JS ;)

Ændre linien til ->
if ( !isset($user_name) || $user_name=="" ) echo "<script>location.href='login.php'</script>";

Og sæt den der hvor det virker.
Avatar billede ahv Nybegynder
24. juni 2003 - 14:36 #11
Ellers så flyt den der ned hvor det virker og post koden her, så kan jeg måske rette det til.
Avatar billede straszek Praktikant
24. juni 2003 - 14:37 #12
Jeg tror den er ved at være der nu
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