[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Кодировка - Не правильно работает переменная
Mashanya
Помогите исправить скрипт уже 6 часов сижу и не могу понять какая переменная передает не правильную кодировку. Хотя нет я понял какие переменные но исправить кодировку так и не смог по скольку да меня не доходит как записать. Файлы без базы данных.

+ Подключаемый файл аналогично русский не понимаю.
.htaccess - проверял
+кодировку файлов меня на лево и на право результата ноль. Эти данные как оставались так и остаются ??? вопросами.

Собственно вот.
Главный

<?php
cure = false;
$swClean = 'optional';
$swHilite = 'optional';
$swAuth = true;
$swOnlyShowAuth = false;

$swTlds = '';

$swListTlds = false;

$swTldOptions = true;

$swAlphabeticalTlds = false;
$swAvailableMessage = '{domain} is <span style="color: green;">Available.</span>';


$swRegisteredMessage = '{domain} is <span style="color: red;">Registered.</span>';

$swSubmitLabel = '>>';



$swOnlyShowAvailability = false;



$swDefaultSld = 'domain';
$swDefaultTld = 'com';

?>

<html>
<
head>
<
title>Поиск</title>

<
link rel="stylesheet" type="text/css" href="swstyles.css" />

</
head>
<
body style="font-family: verdana, arial; font-size: 10pt; margin-top: 100px;">

<?php

require_once(dirname(__FILE__).'/inc/inc.inc.php');

?>

</body>
</
html>


Здесь функции


<?php

define('swSTATUS_ERROR', 0);
define('swSTATUS_AVAILABLE', 1);
define('swSTATUS_UNAVAILABLE', 2);

class SamsWhois{

var $m_statustexts = array('Error', '{domain} is Available.', '{domain} is Registered.');
var $m_servertemplate = 'whois lookup at {server}...';
var $m_status = 0;
var $m_domain = '';
var $m_servers = array();
var $m_data = array();
var $m_cachefolder = '';
// options...

var $m_cachelifetime = 0;
var $m_cachefile = '';

var $m_connectiontimeout = 5;
var $m_sockettimeout = 30;

var $m_redirectauth = false;

var $m_usetlds = array();
var $m_supportedtlds = array();
var $m_serversettings = array();

var $m_hilitestyle = 'font-weight: bold;';

function SamsWhois($configfile = ''){
$this->readconfig($configfile);
$this->m_cachefolder = dirname(__FILE__).'/cache/';
}

function readconfig($filename){
if( $filename == '' ) $filename = dirname(__FILE__).'/config.txt';
$data = join('',file($filename));
$this->m_serversettings = array();
$this->m_tlds = array();
$this->m_usetlds = array();
if( preg_match('/\[servers\](.*)\[\/servers\].*\[tlds\](.*)\[\/tlds\]/is', $data, $matches) ){
$servers = explode("\n",$matches[1]);
$tlds = explode("\n",strtolower($matches[2]));
$cnt = count($servers);
$defaulthilight = '';
if( preg_match('/^defaulthilight=(.*)/im', $data, $match ) ) $defaulthilight = $match[1];
foreach( $servers as $server){
$server = trim($server);
$bits = explode('|', $server);
if( count($bits) > 1 ){
for( $i = count($bits); $i < 5; $i++){
if( !isset($bits[$i]) ) $bits[$i] = '';
}
$server = explode("#", $bits[0]);
if( !isset($server[1]) ) $server[1] = '';
if( $bits[4] == '' ) $bits[4] = $defaulthilight;
$this->m_serversettings[$server[0]] = array(
'server'=>$server[0], 'available'=>$bits[1], 'auth'=>$bits[2],
'clean'=>$bits[3], 'hilite'=>$bits[4], 'extra'=>$server[1]);
}
}

foreach( $tlds as $tld ){
$tld = trim($tld);
$bits = explode('=', $tld);
if( count($bits) == 2 && $bits[0] != '' && isset($this->m_serversettings[$bits[1]])){
$this->m_usetlds[$bits[0]] = true;
$this->m_tlds[$bits[0]] = $bits[1];
}
}
}
}


function SetTlds($tlds = 'com,net,org,info,biz,us,co.uk,org.uk'){
$tlds = strtolower($tlds);
$tlds = explode(',',$tlds);
$this->m_usetlds = array();
foreach( $tlds as $t ){
$t = trim($t);
if( isset($this->m_tlds[$t]) ) $this->m_usetlds[$t] = true;
}
return count($this->m_usetlds);
}

function Lookup($domain){
$domain = strtolower($domain);
$this->m_servers = array();
$this->m_data = array();
$this->m_tld = $this->m_sld = '';
$this->m_domain = $domain;
if( $this->splitdomain($this->m_domain, $this->m_sld, $this->m_tld) ){
$this->m_servers[0] = $this->m_tlds[$this->m_tld];
$this->m_data[0] = $this->dolookup($this->m_serversettings[$this->m_servers[0]]['extra'].$domain, $this->m_servers[0]);
if( $this->m_data[0] != '' ){
if( strpos($this->m_data[0], $this->m_serversettings[$this->m_servers[0]]['available']) === false ){
$this->m_status = swSTATUS_UNAVAILABLE;
}else{
$this->m_status = swSTATUS_AVAILABLE;
}
if( $this->m_serversettings[$this->m_servers[0]]['auth'] != '' && $this->m_redirectauth && $this->m_status == swSTATUS_UNAVAILABLE){
if( preg_match('/'.$this->m_serversettings[$this->m_servers[0]]['auth'].'(.*)/i', $this->m_data[0], $match) ){
$server = trim($match[1]);
if( $server != '' ){
$this->m_servers[1] = $server;
$command = isset($this->m_serversettings[$this->m_servers[1]]['extra']) ? $this->m_serversettings[$this->m_servers[1]]['extra'] : '';
$dt = $this->dolookup($command.$this->m_domain, $this->m_servers[1]);
$this->m_data[1] = $dt;
}
}
}

return true;
}else{
return false;
}
}

return false;
}


function ValidDomain($domain){
$domain = strtolower($domain);
return $this->splitdomain($domain, $sld, $tld);
}

function GetTlds($alphabetical = false){
$tlds = array_keys($this->m_usetlds);
if( $alphabetical ) sort($tlds);
return $tlds;
}

function TldOptions($current = 'com', $alphabetical = false){
$opts = '';
if( $alphabetical ){
$tmp = array();
foreach( $this->m_usetlds as $t=>$i) $tmp[] = $t;
sort($tmp);
}else{
$tmp = array_keys($this->m_usetlds);
}
foreach( $tmp as $t ){
$sel = $t == $current ? ' SELECTED ' : '';
$opts.="<option value=\"$t\"$sel>$t</option>\n";
}
return $opts;
}

function GetDomain(){
return $this->m_domain;
}

function GetServer($i = 0){
return isset($this->m_servers[$i]) ? $this->m_servers[$i] : '';
}

function GetData($i = -1, $clean = false, $hilite = false){
if( $i != -1 && isset($this->m_data[$i])){
$dt = htmlspecialchars(trim($this->m_data[$i]));
if( $clean ) $this->cleandata($this->m_servers[$i], $dt);
if( $hilite ) $this->hilightdata($this->m_servers[$i], $dt);
return $dt;
}else{
return trim($this->getData(0,$clean, $hilite)."\n".$this->getData(1,$clean,$hilite));
}
return '';
}

function GetStatus(){
return $this->m_status;
}

function GetStatusText(){
$s = array('{domain}', '{sld}', '{tld}');
$r = array($this->m_domain, $this->m_sld, $this->m_tld);
return str_replace($s, $r, $this->m_statustexts[$this->m_status]);
}

function SetCacheLifetime($life = 0){
$this->m_cachelifetime = $life;
}

function GetServerCount(){ return count($this->m_servers);}
function SetAvailableMessage($msg){ $this->m_statustexts[swSTATUS_AVAILABLE] = $msg;}
function SetRegisteredMessage($msg){ $this->m_statustexts[swSTATUS_UNAVAILABLE] = $msg;}
function SetServerText($txt){ $this->m_servertemplate = $txt;}
function GetServerText($i){ return isset($this->m_servers[$i]) ? str_replace('{server}', $this->m_servers[$i], $this->m_servertemplate) : '';}

/* internal functions */

function splitdomain($domain, &$sld, &$tld){
$domain = strtolower($domain);
$sld = $tld = '';
$domain = trim($domain);
$pos = strpos($domain, '.');
if( $pos != -1){
$sld = substr($domain, 0, $pos);
$tld = substr($domain, $pos+1);
if( isset($this->m_usetlds[$tld]) && $sld != '' ) return true;
}else{
$tld = $domain;
}
return false;
}

function whatserver($domain){
$sld = $tld = '';
$this->splitdomain($domain, $sld, $tld);
$server = isset($this->m_usetlds[$tld]) ? $this->m_tlds[$tld] : '';
return $server;
}

function readfromcache($domain, $server){
$domain = strtolower($domain);
$server = strtolower($server);
$cname = md5($domain.$server);
if( $cname != '' ){
$folder = ($this->m_cachefolder == '' ? dirname(__FILE__).'/cache/' : $this->m_cachefolder);
if( $folder[strlen($folder)-1] != '/' ) $folder.= '/';
$fname =$folder.$cname.'.cache';
if( @file_exists($fname) ){
if( @filemtime($fname) > time()-($this->m_cachelifetime * 60) ){
return file_get_contents($fname);
}
}
}

return '';
}

function writetocache($domain, $server, &$data){
$domain = strtolower($domain);
$server = strtolower($server);
$cname = md5($domain.$server);
if( $cname != '' ){
$folder = ($this->m_cachefolder == '' ? dirname(__FILE__).'/cache/' : $this->m_cachefolder);
if( $folder[strlen($folder)-1] != '/' ) $folder.= '/';
$fname =$folder.$cname.'.cache';
if( @file_exists($fname) ) @unlink($fname);
$fp = @fopen($fname,"w");
if( $fp ){
fwrite($fp, $data);
fclose($fp);
}
}
}



function dolookup($domain, $server){
$domain = strtolower($domain);
$server = strtolower($server);
if( $domain == '' || $server == '' ) return false;
if( $this->m_cachelifetime > 0 ){
$data = $this->readfromcache($domain, $server);
if( $data != '' ) return $data;
}
$data = "";
$fp = @fsockopen($server, 43,$errno, $errstr, $this->m_connectiontimeout);
if( $fp ){
@fputs($fp, $domain."\r\n");
@socket_set_timeout($fp, $this->m_sockettimeout);
while( !@feof($fp) ){
$data .= @fread($fp, 4096);
}
@fclose($fp);

if( $this->m_cachelifetime > 0 ) $this->writetocache($domain, $server, $data);
return $data;
}else{
return "\n\Error - could not open a connection to $server\n\n";
}
}


function hilightdata($server, &$data){
if( isset($this->m_serversettings[$server]) ){
$hi = $this->m_serversettings[$server]['hilite'];
if( $hi != '' ){
$hi = explode("#", $hi);
foreach( $hi as $h ){
$h = preg_replace('/[^a-z0-9_ :]/i', '.', $h);
$reg = '/^(\s*)(('.$h.')(.*))/im';
$data = preg_replace($reg, '$1<span class="swHilight">$2</span>', $data);
}
}
}
}


function cleandata($server, &$data){
if( isset($this->m_serversettings[$server]) ){
$clean = $this->m_serversettings[$server]['clean'];
if( $clean != '' ){
$from = $clean[0];
if( $from == '>' || $from == '<' ){
$clean = substr($clean,1);
$pos = strpos(strtolower($data), strtolower($clean));
if( $pos !== false ){
if( $from == '>' ){
$data = trim(substr($data, 0, $pos));
}else{
$data = trim(substr($data, $pos+strlen($clean)));
}
}
}
}
}
}


}


?>

Еще один файл


<?php


require_once(dirname(__FILE__).'/inc.class.php');


$whois = new SamsWhois();


if( !isset($swHilite) ) $swHilite = 'no';
if( !isset($swClean) ) $swClean = 'no';
if( !isset($swAuth) ) $swAuth = true;
if( !isset($swOnlyShowAuth) ) $swOnlyShowAuth = false;
if( !isset($swSecure) ) $swSecure = false;
if( !isset($swListTlds) ) $swListTlds = false; /
if( !isset($swTldOptions) ) $swTldOptions = false;
if( !isset($swAlphabeticalTlds) ) $swAlphabeticalTlds = false;
if( !isset($swTlds) ) $swTlds = '';
if( !isset($swDefaultTld) ) $swDefaultTld = 'com';
if( !isset($swDefaultSld) ) $swDefaultSld = 'domain';
if( !isset($swCacheLifetime ) ) $swCacheLifetime = 0;
if( !isset($swOnlyShowAvailability) ) $swOnlyShowAvailability = false;


if( !isset($swSubmitLabel) ) $swSubmitLabel = 'Check Domain';

if( !isset($swInstructions) ){
if( $swTldOptions ){
$swInstructions = 'Enter a domain name and select a tld from the box above.';
}else{
$swInstructions = 'Enter a domain name including extension in the box above.';
}
}


if( !isset($swSecurityError) ){
$swSecurityError = 'For security reasons, you MUST enter the 4 digit code shown above.';
}

if( !isset($swLookupError) ){
$swLookupError = 'Sorry, an error occurred.';
}

if( !isset($swSecurityMessage) ){
$swSecurityMessage = 'For security purposes, please also enter the 4 digit code.';
}

if( !isset($swTldError) ){
$swTldError = 'Sorry, that tld is not supported.';
}

if( !isset($swHeadingText) ){
$swHeadingText = 'Whois Lookup';
}



$whois->SetCacheLifetime($swCacheLifetime);

if( isset($swAvailableMessage) ){
$whois->SetAvailableMessage($swAvailableMessage);
}

if( isset($swRegisteredMessage) ){
$whois->SetRegisteredMessage($swRegisteredMessage);
}

if( isset($swServerText) ){
$whois->SetServerText($swServerText);
}

if( isset($swAuth) && $swAuth == true ){
$whois->m_redirectauth = true;
}



if( $swSecure ){

require_once(dirname(__FILE__).'/secureimagecode.class.php');

$secure = new secureimagecode();
}


if( $swTlds != '') $whois->SetTlds($swTlds);



$tld = $swDefaultTld;
$sld = $swDefaultSld;
$domain = '';
$nocode = false;
$dolookup = false;


switch( $swClean ){
case 'yes': $sw_clean = true; break;
case 'optional': $sw_clean = isset($_REQUEST['clean']) ? true : false; break;
default: $sw_clean = false; break;
}


switch( $swHilite ){
case 'yes': $sw_hilite = true; break;
case 'optional': $sw_hilite = isset($_REQUEST['hilite']) ? true : false; break;
default: $sw_hilite = false; break;
}



if( isset($_REQUEST['lookup']) && isset($_REQUEST['domain'])){

$dn = trim($_REQUEST['domain']);

if( $dn != '' ){

$dot = strpos($dn, '.');
if( $dot !== false ){
$sld = substr($dn, 0, $dot);
$tld = substr($dn, $dot+1);
}else{
$sld = $dn;
if( $swTldOptions && isset($_REQUEST['tld']) ) $tld = trim($_REQUEST['tld']);
}

$domain = $sld.'.'.$tld;

if( $whois->ValidDomain($domain) ){
$dolookup = true;

if( $swSecure ){
if( !$secure->CheckCode($_REQUEST['code']) ){
$nocode = true;
$swErrorMessage = $swSecurityError;
$dolookup = false;
}
}
}
else{
$swErrorMessage = $swTldError;
}
}
}




if( $swTldOptions ){
$domain = $sld;
}else{
$domain = $sld.'.'.$tld;
}



?>
<div class="swPositioner">
<
br />
<
form id="whoisform" name="whoisform" style="margin: 0px;" action="<?php echo $_SERVER['SCRIPT_NAME'];?>" method="get">
<
div class="swForm">
<
div class="swHeading"><?php echo $swHeadingText;?></div>
<?php
?>

<input type="text" name="domain" class="swDomain" value="<?php echo $domain;?>" onFocus="this.select();" />
<?php
if( $swTldOptions){
?><b>.</b> <select class="swtld" name="tld"><?php echo $whois->TldOptions($tld,$swAlphabeticalTlds);?></select><?php
}
if( $swSecure ){
$secure->GenerateCode();
?>
<input type="text" class="swSecureCode" name="code" />
<
img align="absmiddle" src="swsecureimage.php" class="swSecureImage" />
<?php
}
?>
<input type="submit" name="lookup" value="<?php echo $swSubmitLabel;?>" class="swSubmit" />
<
div class="swInfo">
<?php
if( $swClean == 'optional' ){
?>
<input type="checkbox" name="clean" value="1" <?php if( $sw_clean ) echo 'CHECKED';?> />
<
b>Clean whois output?</b>
<?php
}
if( $swHilite == 'optional' ){
?>
<input type="checkbox" name="hilite" value="1" <?php if( $sw_hilite ) echo 'CHECKED';?> />
<
b>Hilight Important Fields?</b>
<?php
}
if( $swHilite == 'optional' || $swClean == 'optional' ) echo '<br />';
echo $swInstructions;
if( $swListTlds){
echo '<br />Supported Tlds: '.join(', ', $whois->GetTlds($swAlphabeticalTlds)).'.';
}
if( $swSecure ){
echo "<br />".$swSecurityMessage."<br />";
}
?>
</div>
<?php
if( isset($swErrorMessage ) ){
?><div class="swError"><?php echo $swErrorMessage;?></div><?php
}
?>
</div>
</
form>

<
script language="JavaScript" type="text/javascript">
<!--

document.forms['whoisform'].<?php echo $nocode == true ? 'code' : 'domain';?>.focus();
//-->
</script>
<?php



if( $dolookup == true ){

if( $whois->Lookup($sld.'.'.$tld) ){
?>
<div class="swResults">
<
table style="border: 0px;" align="center">
<
tr>
<
td style="font-size: 10pt; font-family: verdana, arial;">
<
div class="swStatus">
<?php
echo $whois->GetStatusText();
?>
</div>
<?php


if( !$swOnlyShowAvailability ){

$data = $whois->GetData(0, $swClean, $swHilite);
if( $whois->GetServerCount() == 2 ){
if( $swOnlyShowAuth ){
$output = '<div class="swServer">'.$whois->GetServerText(1).'</div>'."\n";
$output .='<div class="swData">'.nl2br($whois->GetData(1, $sw_clean, $sw_hilite)).'</div>'."\n";
}else{
$output = '<div class="swServer">'.$whois->GetServerText(1).'</div>'."\n";
$output .='<div class="swData">'.nl2br($whois->GetData(1, $sw_clean, $sw_hilite)).'</div>'."\n";
$output .= '<div class="swServer">'.$whois->GetServerText(0).'</div>'."\n";
$output .='<div class="swData">'.nl2br($whois->GetData(0, $sw_clean, $sw_hilite)).'</div>'."\n";
}
}
else{
$output = '<div class="swServer">'.$whois->GetServerText(0).'</div>'."\n";
$output .='<div class="swData">'.nl2br($whois->GetData(0, $sw_clean, $sw_hilite)).'</div>'."\n";
}
echo $output;
}
}
else{

?>
<div class="swError">
<?php echo $swLookupError;?>
</div>
<?php
}
?>
</td>
</
tr>
</
table>
<?php
}



?>
Mashanya
echo $whois->GetStatusText();

Эта функция должна выводить надпись введенные в поле инпут. Выводит только анг.

убирал это поле вообще ставил переменную $domain На прямую работает нормально. Но все равно почему где он там теряется что не работает норм.

....................................
Эта функция должна подключать файл с текстом опять. Анг выводит буквы русские нет.
	function readconfig($filename){
if( $filename == '' ) $filename = dirname(__FILE__).'/config.php';
$data = join('',file($filename));
$this->m_serversettings = array();
$this->m_tlds = array();
$this->m_usetlds = array();
if( preg_match('/\[servers\](.*)\[\/servers\].*\[tlds\](.*)\[\/tlds\]/is', $data, $matches) ){
$servers = explode("\n",$matches[1]);
$tlds = explode("\n",strtolower($matches[2]));
$cnt = count($servers);
$defaulthilight = '';
if( preg_match('/^defaulthilight=(.*)/im', $data, $match ) ) $defaulthilight = $match[1];
foreach( $servers as $server){
$server = trim($server);
$bits = explode('|', $server);
if( count($bits) > 1 ){
for( $i = count($bits); $i < 5; $i++){
if( !isset($bits[$i]) ) $bits[$i] = '';
}
$server = explode("#", $bits[0]);
if( !isset($server[1]) ) $server[1] = '';
if( $bits[4] == '' ) $bits[4] = $defaulthilight;
$this->m_serversettings[$server[0]] = array(
'server'=>$server[0], 'available'=>$bits[1], 'auth'=>$bits[2],
'clean'=>$bits[3], 'hilite'=>$bits[4], 'extra'=>$server[1]);
}
}

foreach( $tlds as $tld ){
$tld = trim($tld);
$bits = explode('=', $tld);
if( count($bits) == 2 && $bits[0] != '' && isset($this->m_serversettings[$bits[1]])){
$this->m_usetlds[$bits[0]] = true;
$this->m_tlds[$bits[0]] = $bits[1];
}
}
}
}


Вот и вся проблема. Помогите кто может...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.