abonnement Unibet Coolblue Bitvavo
pi_40133564
@qu63

$string = $cur_time . '_' . $md->transactionId;

Beetje basic string concatenation in PHP
pi_40134359
hmm oke hierbij even de test code van mijn script:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
ini_set
("session.use_cookies",1);
mysql_connect("localhost","****","***#*");
mysql_select_db("*********");
session_start();
if(isset(
$_POST['Username']) && isset($_POST['Password']))
{
    
$user = addslashes(strip_tags($_POST['Username']));
    
$pass = md5($_POST['Password']);
    
$check = mysql_query("SELECT * FROM `users` WHERE `Username` = '".$user."' AND `Password` = '".$pass."'") or die(mysql_error());
    if(
mysql_num_rows($check) == 1)
    {
        
$_SESSION['SID'] = session_id();
        
$_SESSION['userID'] = $user;
        
$_SESSION['userPW'] = $pass;
        
header("Location:http://".$_SERVER['HTTP_HOST']."/anime_argeweb/admin/admin.php");
    }
    else
    {
        
$error = mysql_errno();
        include(
"login.html");  
    }
else if(isset(
$_COOKIE['PHPSESSID']))
{
        
header("Location:http://".$_SERVER['HTTP_HOST']."/anime_argeweb/admin/admin.php");
}
else
{
    include(
"login.html");
}
?>


in me admin.php staat dit:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
ini_set
("session.use_cookies",1);
if(isset(
$_COOKIE['PHPSESSID']))
{
session_start();
session_id($_COOKIE['PHPSESSID']);

print_r($_SESSION);
  
print_r($_COOKIE);

}
else
{
    
header("Location:http://".$_SERVER['HTTP_HOST']."/anime_argeweb/admin/");
}
?>


maar als ik dus aanmeld dan krijg ik bij beide print_r's gewoon output maar bij afsluiten browser en opnioeuw opstarten dan krijg ik alleen een waarde bij print_r($_COOKIE);
pi_40134419
@mschol

Van http://nl2.php.net/session_id:
quote:
If id is specified, it will replace the current session id. session_id() needs to be called before session_start() for that purpose.
pi_40135907
Zucht, dan heb je je script lokaal af en werkend, wil het online niet werken
Kan eraan liggen dat online PHP5 gebruikt wordt, en ik lokaal dat nog niet draai..

Er gaat blijkbaar iets mis met het instellen van de variabele, of het uitlezen ervan.

Wie ontdekt er een fout?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?php
            
else
            {
                
$sql_gebruiker = "SELECT * FROM `css_gebruikers` WHERE `gebruikersnaam` = '$_POST[gebruikersnaam]' LIMIT 0,1";
                
$res_gebruiker = mysql_query($sql_gebruiker) or die("Kan de gebruiker niet uit de Database halen");

                if(
mysql_num_rows($res_gebruiker) == 0){
                
                    echo
"<span class=\"foutmelding\">De ingevoerde gebruikersnaam is niet gevonden in de database.</span>";
                    echo
"<p class=\"koptext\">Inloggen</p>
                    <form id=\"form1\" name=\"form1\" method=\"post\" action=\"index.php?action=inloggen\">
                      <table width=\"381\" border=\"0\" cellpadding=\"2\" cellspacing=\"1\">
                        <tr>
                          <td width=\"170\" class=\"text\">Gebruikersnaam:</td>
                          <td width=\"200\"><input name=\"gebruikersnaam\" type=\"text\" size=\"30\" /></td>
                        </tr>
                        <tr>
                          <td width=\"170\" class=\"text\">Wachtwoord:</td>
                          <td width=\"200\"><input name=\"wachtwoord\" type=\"password\" size=\"30\" /></td>
                        </tr>
                      </table>
                      <p>
                        <span id=\"btn\"><input type=\"submit\" name=\"submit\" value=\"Inloggen\" /></span>
                      </p>
                    </form>"
;
                }
                
                else
                {
                    
$gebruiker = mysql_fetch_object($res_gebruiker);
                    
                    if (
md5($_POST['wachtwoord']) == $gebruiker-&gt;wachtwoord)
                    {
                        
$_SESSION['gebruikersnaam'] = $gebruiker-&gt;gebruikersnaam;
                        
$_SESSION['login'] = "test";
                        
                        echo
"<script language=\"JavaScript\">";
                        echo
"document.location='index.php'";
                        echo
"</script>";
                    }
                    
                    else
                    {
                        echo
"<span class=\"foutmelding\">Het ingevoerde wachtwoord is onjuist. Probeer het opnieuw.</span>";
                        echo
"<p class=\"koptext\">Inloggen</p>
                        <form id=\"form1\" name=\"form1\" method=\"post\" action=\"index.php?action=inloggen\">
                          <table width=\"381\" border=\"0\" cellpadding=\"2\" cellspacing=\"1\">
                            <tr>
                              <td width=\"170\" class=\"text\">Gebruikersnaam:</td>
                              <td width=\"200\"><input name=\"gebruikersnaam\" type=\"text\" size=\"30\" /></td>
                            </tr>
                            <tr>
                              <td width=\"170\" class=\"text\">Wachtwoord:</td>
                              <td width=\"200\"><input name=\"wachtwoord\" type=\"password\" size=\"30\" /></td>
                            </tr>
                          </table>
                          <p>
                            <span id=\"btn\"><input type=\"submit\" name=\"submit\" value=\"Inloggen\" /></span>
                          </p>
                        </form>"
;
                    }
                }
            }
        }
?>


Daar wordt ie dus geset, en hier wordt ie mee gecontrolleerd:
1
2
3
4
5
6
<?php
    
if ($login != 'test')
    {
        
inloggen();
    }
?>


Hier kun je testen:
http://cmd.brammuller.nl/CSS-CMS/admin/index.php
User: test Password: test

Je ziet bij het gebruiken van een andere, of geen username dat ie wel een foutmelding geeft
  maandag 24 juli 2006 @ 15:51:18 #155
62215 qu63
..de tijd drinkt..
pi_40135918
ik ben bezig met een mms-blog te maken, alleen gaat dat nu nog allemaal via textfiles enzo. ik wil er graag een database achter hangen, zodat er ook op gereageerd kan enzo. het enige wat als bestand moet worden opgeslagen, zijn de bijlagen (filmpjes, mp3, amr, jpg, gif, etc..). de locatie van de bijlage moet ook in de database.

nu heb ik dit script al, alleen als ik bezig ben met het omzetten naar mn database loop ik gigantisch vast en gaat het compleet fout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
<?php
include( "config.php");
include(
"mmslib.php" );
include(
"hooks.php" );

import_request_variables( "gp" );

function
apply_hooks( $contentType, $filename )
{
    global
$hooks;
    if (
array_key_exists( $contentType, $hooks ) )
    {
        
$hooklist = $hooks[$contentType];
        foreach(
$hooklist as $hook )
        {
            
$hook( $contentType, $filename ); // Apply the hook
        
}
    }
}


$typeToExtension = array( IMAGE_GIF =&gt;        ".gif",
              
IMAGE_JPEG =&gt;         ".jpg",     
              
IMAGE_PNG =&gt;          ".png",
              
IMAGE_WBMP =&gt;         ".wbmp",
              
TEXT_PLAIN =&gt;        ".txt",
              
"application/smil" =&gt; ".smil",
              
"audio/amr" =&gt;       ".amr",
              
"x-music/x-midi" =&gt;    ".mid",
              
"audio/midi" =&gt;    ".mid",
              
"audio/x-wav" =&gt;      ".wav",
              
"text/x-imelody" =&gt;     ".imy" );


function
writeInfo( $dir, $md )
{
    
$fp = fopen( $dir . "/info.txt", "wb" );

    
$var_names = array_keys( $_SERVER );
    
fwrite( $fp, "CONTENT_TYPE: " . $_SERVER['CONTENT_TYPE'] . "\n" );
    
fwrite( $fp, "HTTP_USER_AGENT: " . $_SERVER['HTTP_USER_AGENT'] .
        
"\n" );
    
fwrite( $fp, "HTTP_WAP_CONNECTION: " .
        
$_SERVER['HTTP_WAP_CONNECTION'] . "\n" );
    
fwrite( $fp, "REMOTE_ADDR: " . $_SERVER['REMOTE_ADDR'] . "\n" );
    
fwrite( $fp, "REMOTE_PORT: " . $_SERVER['REMOTE_PORT'] . "\n\n" );

    
/* Message comes here */

    
fwrite( $fp, "X-Mms-Message-Type: " .
        
messageTypeToString( $md-&gt;messageType ) . "\n" );
    
fwrite( $fp, "X-Mms-Transaction-ID: " .
        
$md-&gt;transactionId . "\n" );
    
fwrite( $fp, "X-Mms-MMS-Version: " .
        
mmsVersionToString( $md-&gt;mmsVersion ) . "\n" );
    
fwrite( $fp, "Date: " . date("Y-m-d H:i:s", mktime() ) . "\n" );
    
fwrite( $fp, "From: " . "<removed before web publish>" . "\n" );
    
fwrite( $fp, "To: " . "<removed before web publish>" . "\n" );
    
fwrite( $fp, "Subject: " . $md-&gt;subject . "\n" );
    
fwrite( $fp, "X-Mms-Message-Class: " .
        
messageClassToString($md-&gt;messageClass) . "\n" );
    
fwrite( $fp, "X-Mms-Sender-Visibility: " .
        
senderVisibilityToString($md-&gt;senderVisibility) . "\n" );
    
fwrite( $fp, "X-Mms-Delivery-Report: " .
        
deliveryReportToString( $md-&gt;deliveryReport ) . "\n" );
    
fwrite( $fp, "X-Mms-Read-Reply: " .
        
readReplyToString( $md-&gt;readReply ) . "\n" );
    
fwrite( $fp, "Content-Type: " .
        
contentTypeToString( $md-&gt;contentType ) . "\n\n" );
    
    
fclose( $fp );
}


function
writeBackSendConf( $md )
{
    
$reply[0] = 0x8c; /* X-Mms-Message-Type */
    
$reply[1] = 0x81; /*    = m-send-conf */
    
$reply[2] = 0x98; /* X-Mms-Transaction-ID */
    
for ( $i = 3; $i &lt; strlen( $md-&gt;transactionId ) + 3; $i++ )
        
$reply[$i] = ord( $md-&gt;transactionId{$i-3} );
    
$reply[$i++] = 0; /* Terminate string */
    
$reply[$i++] = 0x8D; /* X-Mms-Version */
    
$reply[$i++] = 0x90; /*    = 1.0      */
    
$reply[$i++] = 0x92; /* X-Mms-Response-Status */
    
$reply[$i++] = 128;  /*    = OK       */

    /* Finally write it back to the client */
    
for ( $j = 0; $j &lt; $i; $j++ )
        print(
chr( $reply[$j] ) );
}


function
getExtension( $contentType )
{
    global
$typeToExtension;

    if (
array_key_exists( $contentType, $typeToExtension ) )
        return
$typeToExtension[$contentType];
    return
".bin";
}


/* Program starts here */
set_magic_quotes_runtime(0);
header("Content-Type: application/vnd.wap.mms-message");

if (
$_SERVER['CONTENT_TYPE'] == "application/vnd.wap.mms-message"
     
&& strlen( $HTTP_RAW_POST_DATA ) &gt; 0 )
{
    
$md = new MMSDecoder( $HTTP_RAW_POST_DATA );  
    
$md-&gt;parse();
    
    
$cur_time = mktime();
    
$dir_name = MSG_STORE_DIR . "/" . $cur_time . "_" . $md-&gt;transactionId;
    
mkdir( $dir_name );
    
    
$parts = $md-&gt;parts;
    for (
$i = 0; $i &lt; sizeof( $parts ); $i++ )
    {
        
$p = $parts[$i];
        
$ext = getExtension( $p-&gt;contentType );
        
$filename = $dir_name . "/part_" . $i . $ext;
        
$p-&gt;writeToFile( $filename );
        
apply_hooks( contentTypeToString($p-&gt;contentType), $filename );
    }
    
writeInfo( $dir_name, $md );
    
    
writeBackSendConf( $md );    
}
?>


wie wil me helpen?

Note: mmslib.php parsed het mms bestand, dus daar hoeft volgens mij niks aan gedaan te worden.
zelfde geldt voor config.php en hooks.php
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_40136123
Mijn prob is al fixed..

De session moest ik boven controlleren met ($_SESSION['login'] ipv $login.
  maandag 24 juli 2006 @ 15:59:09 #157
62215 qu63
..de tijd drinkt..
pi_40136166
quote:
Op maandag 24 juli 2006 15:57 schreef Siegfried het volgende:
Mijn prob is al fixed..

De session moest ik boven controlleren met ($_SESSION['login'] ipv $login.
ik ben nu wel meteen ingelogd ja
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_40140269
quote:
Op maandag 24 juli 2006 15:00 schreef JeRa het volgende:
@mschol

Van http://nl2.php.net/session_id:
[..]
aha..
maar dan heb ik nie eens mer een cookie .. (als ik em in de 2de pagina aanpas)
pi_40142759
quote:
Op maandag 24 juli 2006 18:42 schreef mschol het volgende:

[..]

aha..
maar dan heb ik nie eens mer een cookie .. (als ik em in de 2de pagina aanpas)
Dus er gaat iets mis met je cookies. Kijk eens naar de headers die je van je PHP-pagina krijgt en naar de cookies die je browser opslaat.
pi_40144612
Ben eens zo'n website tegen gekomen waar je de url van een site kon geven, en die liet je dat de headers zien. Kan hem niet meer vinden.

Iemand?
pi_40144805
@the_disheaver:
Jup, thnx!
pi_40145308
Als je Firefox gebruikt is er natuurlijk ook de geweldige livehttpheaders extension
pi_40147657
Hehe ik vraag het hier maar eens mss dat iemand er al ervaring in heeft ook..

Op m'n website posten we nu de nieuwsberichten via het forum (SMF) en via een file dat mee geleverd is tonen we dit op de frontpage en kunnen de leden reageren.

Nu willen we een eigen nieuws systeem maken (wat vast wel lukt) maarrr hikken we tegen het volgende aan, hoe krijgen we de users van SMF in een eigen userdatabase,
voor het nieuwsysteem.

Of nog beter hoe kunnen we die userdatabse van SMF gebruiken, zodat als je inlogt op de frontpage ook inlogt op het forum en visa versa
West Ham supporters, check: Dutchirons
Dutch Football Manager Site!
Determined to deliver, destined to dominate. - The Third Movement
pi_40147834
quote:
Op maandag 24 juli 2006 22:37 schreef MrDoegewoon het volgende:
Hehe ik vraag het hier maar eens mss dat iemand er al ervaring in heeft ook..

Op m'n website posten we nu de nieuwsberichten via het forum (SMF) en via een file dat mee geleverd is tonen we dit op de frontpage en kunnen de leden reageren.

Nu willen we een eigen nieuws systeem maken (wat vast wel lukt) maarrr hikken we tegen het volgende aan, hoe krijgen we de users van SMF in een eigen userdatabase,
voor het nieuwsysteem.

Of nog beter hoe kunnen we die userdatabse van SMF gebruiken, zodat als je inlogt op de frontpage ook inlogt op het forum en visa versa
Een goede eerste stap lijkt me het kijken naar de tabelstructuur van de usertabel van dat forum
pi_40148335
quote:
Op maandag 24 juli 2006 22:41 schreef JeRa het volgende:

[..]

Een goede eerste stap lijkt me het kijken naar de tabelstructuur van de usertabel van dat forum
Die is best simpel eigelijk, zal morgen (waarom ik het niet eerder gedaan heb moet je aan Joost vragen ) het login script nalopen mss dat ik daar ook wat mee kan
West Ham supporters, check: Dutchirons
Dutch Football Manager Site!
Determined to deliver, destined to dominate. - The Third Movement
pi_40162114
quote:
Op maandag 24 juli 2006 15:59 schreef qu63 het volgende:

[..]

ik ben nu wel meteen ingelogd ja
Huh?
  dinsdag 25 juli 2006 @ 12:21:43 #168
62215 qu63
..de tijd drinkt..
pi_40162806
quote:
Op dinsdag 25 juli 2006 12:00 schreef Siegfried het volgende:

[..]

Huh?
cookie was wel goed gezet, alleen je script liet me niet door. nadat je het zelf gewijzigd had bekeek ik de pagina nog een keer en heb ik leuk een stylesheet gemaakt en weer verwijderd
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_40163146
Ah ok, dan ben je wel snel geweest
Direct na het wijzigen van de code heb ik getest en daarna de testaccount verwijderd
  dinsdag 25 juli 2006 @ 16:20:51 #170
71919 wonderer
Hung like a My Little Pony
pi_40170589
Hoe haal ik (bij voorkeur in PHPmyadmin) dubbele waarden uit een database? Is daar een handig stukje MySQL code voor of moet ik dan toch een scriptje schrijven?

Dezelfde functie als array_unique dus maar dan voor een tabel.
"Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
"My brain is too smart for me."
"We don't need no education." "Yes you do, you just used a double negative."
pi_40170780
Gewoon een SELECT count(id_kolom), veld_dat_uniek_moet_zijn FROM table GROUP BY veld_dat_uniek_moet_zijn HAVING count(id_kolom) > 1

En dan krijg je alle dubbele records terug (gegroepeerd wel te verstaan).

Dan kan je daarna een query doen om de dubbelen eruit te halen.
Voor elk item:
$query = 'DELETE FROM table WHERE veld_dat_uniek_moet_zijn="'.$waardeUitVorigeQuery.'" LIMIT '.($countUitVorigeQuery-1);

Zal vast ook wel efficienter kan.
  dinsdag 25 juli 2006 @ 16:37:05 #172
62215 qu63
..de tijd drinkt..
pi_40171119
LOAD DATA INFILE 'test.txt' INTO TABLE mms (Inhoud1)
en
INSERT INTO mms (Locatie, Datum, Onderwerp, Inhoud1, Inhoud2, Inhoud3, Bijlage1, Bijlage2, Bijlage3) VALUES('$dir_name','$cur_time','$onderwerp','$Inhoud1','$Inhoud2','$Inhoud3','$Bijlage1','$Bijlage2','$Bijlage3')

hoe kan ik deze nou combineren? of kan ik bij de LOAD DATA INTO ook een "WHERE Id=mysql_insert_id()" er achter plakken en deze dus na de INSERT uitvoeren?
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
  woensdag 26 juli 2006 @ 13:45:12 #173
62215 qu63
..de tijd drinkt..
pi_40200693
quote:
Op dinsdag 25 juli 2006 16:37 schreef qu63 het volgende:
LOAD DATA INFILE 'test.txt' INTO TABLE mms (Inhoud1)
en
INSERT INTO mms (Locatie, Datum, Onderwerp, Inhoud1, Inhoud2, Inhoud3, Bijlage1, Bijlage2, Bijlage3) VALUES('$dir_name','$cur_time','$onderwerp','$Inhoud1','$Inhoud2','$Inhoud3','$Bijlage1','$Bijlage2','$Bijlage3')

hoe kan ik deze nou combineren? of kan ik bij de LOAD DATA INTO ook een "WHERE Id=mysql_insert_id()" er achter plakken en deze dus na de INSERT uitvoeren?
iemand enig idee? dev.mysql.com helpt me niet iig
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_40201864
Ik ben bezig met het maken van een website en de content moet eigenlijk van een aantal andere website af komen. Ik ga dus een website-rip script maken. De gegevens die ik nodig heb zullen voor het grootste deel in een html-tabel staan. Ik ben aardig thuis in php maar ik heb nog nooit zo'n script gemaakt. Kan iemand me vertellen met welke functie ik dit het beste kan gaan doen?
pi_40201919
Hier ben ik ooit mee bezig geweest.
Sloop er zelf even uit wat je nodig hebt

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
  $hc
= file_get_contents("http://www.iidesk.com/water/water");
  
preg_match_all("/\<tr.*?\>(.*?)\<\/tr\>/s",$hc,$rows);
  foreach(
$rows[1] as $row){
    
preg_match_all("/\<td.*?\>(.*?)\<\/td\>/s",$row,$cols);
    
preg_match("/\<a.*?\>(.*?)\<\/a\>.*?\((.*?)\)/s",$cols[0][0],$locatie_arr);
    
$locatie = trim($locatie_arr[1]);
    
$uur = trim($locatie_arr[2]);
    if(
$locatie != ""){
      for(
$i = 1 ; $i &lt;= 7 ; $i++){
        
preg_match("/(.*?)\<br\>/",$cols[1][$i],$stand_arr);
        
$waterstanden[$locatie][$uur][$i] = strip_tags($stand_arr[1]);
      }
    }
  }
  
  
print_r($waterstanden);
?>
pi_40204056
oeh handig scriptje gaan we even gebruiken hehe
pi_40204423
Ik heb de volgende "timestamp": Sat, 22 Jul 2006 23:59:15 -0400

Weet iemand of er een makkelijke manier is om deze om te zetten naar GMT en een normaal formaat?
  woensdag 26 juli 2006 @ 15:57:51 #179
62215 qu63
..de tijd drinkt..
pi_40205076
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$dir_name
= "msgstore/1153921398_E0F73027A65781";

        if(
file_exists($dir_name . "/part_0.txt")){
        
$Inhoud1_temp = file( $dir_name . "/part_0.txt");
        
$count = count($Inhoud1_temp);
        for (
$i = 0; $i &lt;= $count; $i++) {
            
$Inhoud1 .="". $Inhoud1[$i]."<br />\n";
        }
        }elseif(
file_exists($dir_name . "/part_0.jpg")){
        
$Bijlage1 = $dir_name . "/part_0.jpg";}
        echo
$Inhoud1;
?>

dit geeft als uitkomst:
1b

---------------------
1
2
3
4
5
6
7
8
<?php
        $Inhoud1
= file("msgstore/1153921398_E0F73027A65781/part_0.txt");
        
$test = count($Inhoud1);
        for (
$i = 0; $i &lt;= $test; $i++) {
            
$hoi .="". $Inhoud1[$i]."<br />\n";
        }
        echo
$hoi;
?>

dit geeft als uitkomst:
1Zo dan maar!


oftewel, de inhoud van part_0.txt

wat is het verschil tussen die 2 stukjes code waardoor de een alleen een B er uit gooit, en de ander wel alles goed doet?
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
  woensdag 26 juli 2006 @ 15:59:27 #180
85514 ralfie
!Yvan eht nioj
pi_40205135
quote:
Op woensdag 26 juli 2006 15:38 schreef Mr_Zoidberg het volgende:
Ik heb de volgende "timestamp": Sat, 22 Jul 2006 23:59:15 -0400

Weet iemand of er een makkelijke manier is om deze om te zetten naar GMT en een normaal formaat?
1
2
3
4
<?php
$str
= strtotime('Sat, 22 Jul 2006 23:59:15 -0400e');
echo
$str? date('yymmdd',$str) : 'invalid format';
?>

date format moet je zelf ff verzinnen
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')