Ελληνικά σε PHP shoutbox

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
tasosnt
Δημοσιεύσεις: 21
Εγγραφή: 06 Ιαν 2005 17:38

Ελληνικά σε PHP shoutbox

Δημοσίευση από tasosnt » 28 Ιαν 2005 23:14

Χρησιμοποιώ ένα PHP shoutbox στην σελίδα μου (www.earta.gr) αλλά δεν υποστηρίζει ελληνικά. Λαμβάνοντας υπόψη ότι είμαι άσχετος με προγραμματισμό πως μπορώ να το κάνω να υποστηρίξει ελληνικά?
Έχετε να προτείνετε κάτι καλύτερο?
Ευχαριστώ

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Ελληνικά σε PHP shoutbox

Δημοσίευση από fafos » 29 Ιαν 2005 03:01

Anoikse to arxeio index.php pou exeis mesa sto www.earta.gr/txtshout/ me kapoion keimenografo kai to <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> kane to <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-7">

Άβαταρ μέλους
Cha0s
SysAdmin
Δημοσιεύσεις: 10242
Εγγραφή: 28 Ιούλ 2001 03:00

Ελληνικά σε PHP shoutbox

Δημοσίευση από Cha0s » 29 Ιαν 2005 10:49

Σωστός ο fafos ;)


Και για να είμαι και εγώ σωστός το μεταφέρω στην ανάλογη κατηγορία :P

Άβαταρ μέλους
milianos
Δημοσιεύσεις: 269
Εγγραφή: 11 Νοέμ 2004 01:39
Τοποθεσία: schwabenland
Επικοινωνία:

Ελληνικά σε PHP shoutbox

Δημοσίευση από milianos » 29 Ιαν 2005 11:02

Θα ανοίξεις το config.inc.php με εναν editor και στην σειρά 36 θα κάνης την αλλαγή:

$cfg['charset'] = 'iso-8859-1';

σε

$cfg['charset'] = 'iso-8859-7';

tasosnt
Δημοσιεύσεις: 21
Εγγραφή: 06 Ιαν 2005 17:38

Ελληνικά σε PHP shoutbox

Δημοσίευση από tasosnt » 29 Ιαν 2005 15:35

ευχαριστώ φίλοι, θα το δοκιμάσω όταν θα βρω λίγο χρόνο

tasosnt
Δημοσιεύσεις: 21
Εγγραφή: 06 Ιαν 2005 17:38

Ελληνικά σε PHP shoutbox

Δημοσίευση από tasosnt » 29 Ιαν 2005 18:28

φίλοι, δεν δουλέύει παρά την διόρθωση στο το config.inc.php. (στο index.php δεν υπάρχει πουθενά η γραμμή που λέτε).
Σας δίνω τον κώδικα του index.php και του config.inc.php μπας και βγει άκρη...
(σε κάποιο σημείο λέει ότι δεν υποστηρίζοντα multilingual character sets)
τι να κάνω, να το παρατήσω και να ψάξω για άλλο?

index.php

Κώδικας: Επιλογή όλων

<?
error_reporting&#40;E_ALL ^ E_NOTICE&#41;;
    /**************************
    *      txtShout v1.2      *
    *   ©2004 - Thomas Love   *
    *   http&#58;//txtbox.co.za   *
    **************************/
// Use of this software is subject to 
// agreement with the terms of the 
// included license. See license.txt.

$timer = microtime&#40;&#41; + time&#40;&#41;;

header&#40;"Expires&#58; Mon, 26 Jul 1997 05&#58;00&#58;00 GMT"&#41;;
header&#40;"Last-Modified&#58; " . gmdate&#40;"D, d M Y H&#58;i&#58;s"&#41; . " GMT"&#41;;
header&#40;"Cache-Control&#58; no-store, no-cache, must-revalidate"&#41;;
header&#40;"Cache-Control&#58; post-check=0, pre-check=0", false&#41;;
header&#40;"Pragma&#58; no-cache"&#41;;

require&#40;'txtdb.inc.php'&#41;;
require&#40;'functions.inc.php'&#41;;
require&#40;'config.inc.php'&#41;;

if &#40;isset&#40;$_COOKIE&#91;'sbox'&#93;&#41;&#41; &#123;
  session_name&#40;'sbox'&#41;;
  session_start&#40;&#41;;
&#125;
if &#40;!$cfg&#91;'reverse'&#93;&#41; $onload = 'window.scrollTo&#40;0,99999&#41;;';
$err = $_GET&#91;'err'&#93;;
if &#40;is_numeric&#40;$err&#41;&#41; &#123;
  switch &#40;$err&#41; &#123;
    case 1&#58; $onload .= 'alert&#40;\'You need to type something!\'&#41;;';break;
    case 2&#58; $onload .= 'alert&#40;\'Your e-mail / URL was discarded because it was invalid\'&#41;;';break;
    case 4&#58; $onload .= 'alert&#40;\'Logged-in successfully!\'&#41;;';break;
    case 5&#58; $onload .= 'alert&#40;\'Logged-out successfully!\'&#41;;';break;

  &#125;
&#125;
?>

<?printhead&#40;&#41;?>
<script language="javascript">
function cb_formreset&#40;btnonly&#41; &#123;
  if &#40;parent.document.shoutform&#41; &#123;
  frm = parent.document.shoutform;
  frm.sub.disabled = false;
  if &#40;!btnonly&#41; &#123;frm.msg.value = '';frm.msg.focus&#40;&#41;;&#125;
  &#125;
&#125;
function del&#40;id&#41; &#123;
  if &#40;confirm&#40;'Are you sure you want to delete this post?'&#41;&#41; document.location = "./index.php?del="+id;
&#125;
</script>
<body class="mnbdy" <?=&#40;$onload != ''&#41;?'onload="'.$onload.'"'&#58;''?>>
<?
$reload = $_GET&#91;'reload'&#93;;
if &#40;$reload == 1&#41; echo '<script language="JavaScript">cb_formreset&#40;false&#41;;</script>';
elseif &#40;$reload == 2&#41; echo '<script language="JavaScript">cb_formreset&#40;true&#41;;</script>';

$db = new txtdb&#40;&#41;;
//$db->create_table&#40;$cfg&#91;'sfile'&#93;, array&#40;'tme', 'ip', 'nme', 'url', 'msg'&#41;&#41;;
$db->open_table&#40;$cfg&#91;'sfile'&#93;, $cfg&#91;'sfilepath'&#93;&#41; or die &#40;$db->get_error&#40;&#41;&#41;;

if &#40;isset&#40;$_GET&#91;'del'&#93;&#41; && $_SESSION&#91;'lin'&#93;&#41; &#123;
  $id = &#40;int&#41;$_GET&#91;'del'&#93;;
  $db->delete_record&#40;$id&#41;;
&#125;

// work out pagination
$pg = $_GET&#91;'pg'&#93;;
$scount = $db->get_count&#40;&#41;;
if &#40;$cfg&#91;'mpp'&#93; < 1&#41; die&#40;'unexpected mpp config error'&#41;;
$pgs = ceil&#40;$scount / $cfg&#91;'mpp'&#93;&#41;;
if &#40;$pg > $pgs || $pg < 1&#41; $pg = 1;
if &#40;!$cfg&#91;'multipage'&#93;&#41; &#123;
  $pg = 1;
  $pgs = 1;
&#125;

// A cheap way to work this
$skip = &#40;$scount-&#40;&#40;$pg-1&#41;*$cfg&#91;'mpp'&#93;&#41;-$cfg&#91;'mpp'&#93;&#41;;
if &#40;$skip < 0&#41; &#123;
  $skip2 = 0;
  $lt = $cfg&#91;'mpp'&#93; + $skip;
&#125;
else &#123;
  $skip2 = $skip;
  $lt = $cfg&#91;'mpp'&#93;;
&#125;
$db->goto_record&#40;$skip2+1&#41;;

$i = 0;
$srow = array&#40;&#41;;
while &#40;&#40;$srowa = $db->get_record&#40;&#41;&#41; && $i < $lt&#41; &#123;
  $srow&#91;&#93; = $srowa;
  $i++;
&#125;

if &#40;$pgs > 1 && &#40;!$cfg&#91;'reverse'&#93; || $pg > 1&#41;&#41; &#123;?>
<table border="0" cellpadding="2" cellspacing="0" width="100%" class="hbtbl">
<tr><td class="stxt2" align="left" width="30%">&nbsp;<?if &#40;$pg + 1 <= $pgs&#41; &#123;?><a href="./?<?=$reqquery?>&sec=main&pg=<?=$pg+1?>">&laquo;&nbsp;prev</a><?&#125;?></td>
<td class="stxt2" align="center" width="40%"><span class="dtxt2"> &middot; <?=$pg?> of <?=$pgs?> &middot; </span></td>
<td class="stxt2" align="right" width="30%"><?if &#40;$pg - 1 > 0&#41; &#123;?><a href="./?<?=$reqquery?>&sec=main&pg=<?=$pg-1?>">next&nbsp;&raquo;</a><?&#125;?>&nbsp;</td>
</tr></table>
<br>
<?&#125;?>
<table border="0" cellpadding="1" cellspacing="0" width="100%">
<?
if &#40;count&#40;$srow&#41; > 0&#41; &#123;
  if &#40;$cfg&#91;'reverse'&#93;&#41; $srow = array_reverse&#40;$srow&#41;;
  
  // Create arrays of smilies and their corresponding images
  if &#40;$cfg&#91;'smilies'&#93;&#41; &#123;
    require&#40;'smilies.inc.php'&#41;;
    if &#40;count&#40;$sm&#41; > 0&#41; &#123;
      foreach &#40;$sm as $code => $file&#41; &#123;
        $smilies_a&#91;&#93; = ' '.$code;
        $smilies&#91;&#93; = ' <img src="'.$cfg&#91;'smilies'&#93;.'/'.$file.'" border="0" width="15" height="15" alt="'.$code.'">';
      &#125;
    &#125;
  &#125;

  // swear
  if &#40;$cfg&#91;'filter'&#93;&#41; &#123;
    $swords = array&#40;'f****','shit','bitch','cunt','pussy','cock','nigger'&#41;;
    $swordsmsk = array&#40;&#41;;
    for &#40;$i=0;$i<count&#40;$swords&#41;;$i++&#41; &#123;
      $msk = '';
      for &#40;$j=0;$j<strlen&#40;$swords&#91;$i&#93;&#41;;$j++&#41; &#123;
        $swordsmsk&#91;$i&#93; .= '*';
      &#125;
    &#125;
  &#125;

  for&#40;$i=0;$i<count&#40;$srow&#41;;$i++&#41; &#123;
    if &#40;!$col&#41; $col = 2;
    else $col = '';
    $str = $srow&#91;$i&#93;&#91;'msg'&#93;;
    $cname = $srow&#91;$i&#93;&#91;'nme'&#93;;
    
    $str = str_replace&#40;'&','&amp;',$str&#41;;
    $str = str_replace&#40;'<','&lt;',$str&#41;; 
    $str = str_replace&#40;'>','&gt;',$str&#41;;
    
    $cname = str_replace&#40;'&','&amp;',$cname&#41;;
    $cname = str_replace&#40;'<','&lt;',$cname&#41;;
    $cname = str_replace&#40;'>','&gt;',$cname&#41;;
    
    if &#40;$cfg&#91;'linebreak'&#93; > 0&#41; &#123;
      $cname = wordwrap&#40;$cname,$cfg&#91;'linebreak'&#93;,'<br>',1&#41;;
    &#125;

    // swear filter
    if &#40;$cfg&#91;'filter'&#93;&#41; &#123;
      for &#40;$k=0;$k<count&#40;$swords&#41;;$k++&#41; &#123;
        $str = eregi_replace&#40;$swords&#91;$k&#93;,$swordsmsk&#91;$k&#93;,$str&#41;;
        $cname = eregi_replace&#40;$swords&#91;$k&#93;,$swordsmsk&#91;$k&#93;,$cname&#41;;
      &#125;
    &#125;
        
    // autolinking
    if &#40;$cfg&#91;'autolink'&#93;&#41; &#123;
      $str = preg_replace&#40;"#&#40;&#91; &#93;|^|&#93;&#41;&#40;&#91;a-z&#93;+?&#41;&#58;//&#40;&#91;a-z0-9@&#58;\-&#93;+&#41;\.&#40;&#91;a-z0-9@&#58;\-.\~&#93;+&#41;&#40;&#40;?&#58;/&#91;^ &#93;*&#41;?&#91;^&#93;&#91;\".,?!;&#58; &#93;&#41;#i", "\\1<a href=\"\\2&#58;//\\3.\\4\\5\" target=\"_blank\">\\2&#58;//\\3.\\4\\5</a>", $str&#41;;
      $str = preg_replace&#40;"#&#40;&#91; &#93;|^|&#93;&#41;www\.&#40;&#91;a-z0-9\-&#93;+&#41;\.&#40;&#91;a-z0-9&#58;\-.\~&#93;+&#41;&#40;&#40;?&#58;/&#91;^ &#93;*&#41;?&#91;^&#93;&#91;\".,?!;&#58; &#93;&#41;#i", "\\1<a href=\"http&#58;//www.\\2.\\3\\4\" target=\"_blank\">www.\\2.\\3\\4</a>", $str&#41;;
      $str = preg_replace&#40;"#&#40;&#91; &#93;|^|&#93;&#41;&#40;&#91;a-z0-9\-_.&#93;+?&#41;@&#40;&#91;\w\-&#93;+\.&#40;&#91;\w\-\.&#93;+\.&#41;?&#91;\w&#93;+&#91;^&#93;&#91;\".,?!;&#58; &#93;&#41;#i", "\\1<a href=\"mailto&#58;\\2@\\3\">\\2@\\3</a>", $str&#41;;
    &#125;
    
    // Parse smilie codes
    if &#40;&#40;strstr&#40;$str,'&#58;'&#41; !== false || strstr&#40;$str,';'&#41; !== false&#41; && $cfg&#91;'smilies'&#93;&#41; &#123;
      $str = str_replace&#40;$smilies_a,$smilies,' '.$str.' '&#41;;
      $str = trim&#40;$str&#41;;
    &#125;
    
    // Line breaker. Ignores stuff in HTML tags, but not HTML entities
    if &#40;$cfg&#91;'linebreak'&#93; > 0&#41; &#123;
      $strlng = strlen&#40;$str&#41;;
      $nospc = 0;$ishtml = false;
      for&#40;$j=0;$j<$strlng;$j++&#41; &#123;
        if &#40;substr&#40;$str,$j,1&#41; == '<'&#41; $ishtml = true;
        if &#40;!$ishtml&#41; &#123;
          if &#40;$nospc > $cfg&#91;'linebreak'&#93; - 1&#41; &#123;
            $str = substr&#40;$str,0,$j&#41;.'<br>'.substr&#40;$str,$j&#41;;
            $strlng += 4;
            $j += 4;
            $nospc = 0;
          &#125;
          if &#40;substr&#40;$str,$j,1&#41; != ' '&#41; $nospc++;
          else $nospc = 0;
        &#125;
        if &#40;substr&#40;$str,$j,1&#41; == '>'&#41; $ishtml = false;
      &#125;
    &#125;
    $email2 = '';
    if &#40;!empty&#40;$srow&#91;$i&#93;&#91;'url'&#93;&#41;&#41; &#123;
      // work out if it's an e-mail or URL
      $email = $srow&#91;$i&#93;&#91;'url'&#93;;
      if &#40;preg_match&#40;'#&#40;&#91; &#93;|^&#41;&#40;&#91;a-z0-9\-_.&#93;+?&#41;@&#40;&#91;\w\-&#93;+\.&#40;&#91;\w\-\.&#93;+\.&#41;?&#91;\w&#93;+&#91;^\".,?! &#93;&#41;#i',$email&#41;&#41;
        $email2 = '<a href="mailto&#58;'.$email.'">';
      elseif &#40;strpos&#40;$email,'&#58;//'&#41; > 0&#41; $email2 = '<a href="'.$email.'" target="_blank">';
      else $email2 = '<a href="http&#58;//'.$email.'" target="_blank">';
    &#125;
?>
<tr><td class="stxt<?=$col?>"><div class="dtxt<?=$col?>"><?=date&#40;'j M y, H&#58;i', getztime&#40;$cfg&#91;'timezone'&#93;,$srow&#91;$i&#93;&#91;'tme'&#93;&#41;&#41;?></div>
<?if &#40;$_SESSION&#91;'lin'&#93;&#41; &#123;?><a href="JavaScript&#58;del&#40;<?=$srow&#91;$i&#93;&#91;'id'&#93;?>&#41;" title="delete">&#91;&times;&#93;</a>&nbsp;<?&#125;?>
&#58;<?if &#40;$email2&#41; echo $email2?><b title="<?=$srow&#91;$i&#93;&#91;'ip'&#93;?>"><?=&#40;$cname == ''&#41;?'anonymous'&#58;$cname?></b><?if &#40;$email2&#41; echo '</a>'?>&#58; <?=$str?> 
</td></tr>
<?
  &#125;
&#125; 
else &#123;?>
<tr><td align="center" class="stxt"><span class="dtxt"><i>No posts</i></span></td></tr>
<?&#125;?>
</table>
<?if &#40;$pgs > 1 && &#40;$cfg&#91;'reverse'&#93; || $pg > 1&#41;&#41; &#123;?>
<br>
<table border="0" cellpadding="2" cellspacing="0" width="100%" class="hbtbl">
<tr><td class="stxt2" align="left" width="30%">&nbsp;<?if &#40;$pg + 1 <= $pgs&#41; &#123;?><a href="./?<?=$reqquery?>&sec=main&pg=<?=$pg+1?>">&laquo;&nbsp;prev</a><?&#125;?></td>
<td class="stxt2" align="center" width="40%"><span class="dtxt2"> &middot; <?=$pg?> of <?=$pgs?> &middot; </span></td>
<td class="stxt2" align="right" width="30%"><?if &#40;$pg - 1 > 0&#41; &#123;?><a href="./?<?=$reqquery?>&sec=main&pg=<?=$pg-1?>">next&nbsp;&raquo;</a><?&#125;?>&nbsp;</td>
</tr></table>
<?&#125;?>

<!--compiled in <?=round&#40;&#40;&#40;time&#40;&#41; + microtime&#40;&#41;&#41; - $GLOBALS&#91;'timer'&#93;&#41;*1000&#41;?> milliseconds-->
</body>
</html>
config.inc.php

Κώδικας: Επιλογή όλων

<?
// txtShout Config File

$cfg = array&#40;&#41;;

// Username and password for admin &#40;so you can delete posts&#41;. 
// To log in, uname goes in name field, pword in email/url field. 
// Hit Go _without_ typing anything in the message field.
// To log out, do the same thing again.

	$cfg&#91;'uname'&#93; = 'uname';
	$cfg&#91;'pword'&#93; = 'pword';


// The path to the backend file, NOT including a trailing slash or 
// filename. e.g. '/path/to/mysite/store' or './store'.

	$cfg&#91;'sfilepath'&#93; = '.';

// The NAME of the file in which to store posts. This file must have write
// permission. Give write permission with CHMOD 646. Do not include path 
// information here.

	$cfg&#91;'sfile'&#93; = 'shouts.txt';


// Timezone to adjust post times for. GMT is 0. The value is decimal, 
// so for +4&#58;30 hours, type 4.5

	$cfg&#91;'timezone'&#93; = 2.00;


// Character set to display posts in. Mutlibyte charsets like 
// Japanese do not work correctly with this version of txtShout.

	$cfg&#91;'charset'&#93; = 'iso-8859-7';


// Stylesheet to use for message iframe. 

	$cfg&#91;'stylesheet'&#93; = 'shoutstyle.css';


// The maximum lengths of the three inputs. If you change msglength, 
// be sure to change "maxMsgLength = 200;" accordingly - it's near the 
// top of the code snippet that you paste into your pages. The 
// "maxlength" input textbox attributes should also be changed. 
// All three values below must not add up to > 8000. 

	$cfg&#91;'namelength'&#93; = 25;
	$cfg&#91;'urllength'&#93; = 80;
	$cfg&#91;'msglength'&#93; = 300;
	
// The maximum number of posts to store. Above this number, old posts will be deleted as new ones 
// are made. 
	$cfg&#91;'prune'&#93; = 500;


// Forced linebreaking limit. Make this limit higher if your 
// message frame is wider, or smaller if it is narrower. If 
// not set properly, long words can mess up the layout.

	$cfg&#91;'linebreak'&#93; = 16;


// Profanity filter. true = on, false = off. The words 
// themselves can be edited in index.php.

	$cfg&#91;'filter'&#93; = true;


// Auto-hyperlinking for URLs / email addresses. 
// true = on, false = off

	$cfg&#91;'autolink'&#93; = true;


// Reverse message order. The view will jump to the bottom 
// if the order is oldest->newest. 
// true = newest-to-oldest, false = oldest-to-newest.

	$cfg&#91;'reverse'&#93; = true;


// Whether or not to allow browsing of older posts, using next / 
// prev links. true = on, false = off.

	$cfg&#91;'multipage'&#93; = true;


// Number of posts per page. 

	$cfg&#91;'mpp'&#93; = 20;


// Path to smilies. Check smilies.inc.php for smilie code-file 
// assignments.

	$cfg&#91;'smilies'&#93; = 'smilies';
?>

tasosnt
Δημοσιεύσεις: 21
Εγγραφή: 06 Ιαν 2005 17:38

Ελληνικά σε PHP shoutbox

Δημοσίευση από tasosnt » 29 Ιαν 2005 18:34

Έκανα λάθος γράφει ότι δεν υποστηρίζονται multibyte χαρακτήρες.
Τέλος πάντων μπορείτε να μου προτείνετε κάποιο shoutbox να λειτουργεί με ελληνικά, να γράφει ώρα και ημερομηνία αποστολής του μηνύματος, και να κάνει και reload αυτόματα κάθε λίγα δευτερόλεπτα?
Αυτά τα λίγα θέλω......

felix
Δημοσιεύσεις: 2
Εγγραφή: 18 Οκτ 2004 22:07

Ελληνικά σε PHP shoutbox

Δημοσίευση από felix » 10 Φεβ 2005 11:06

Επειδή το είχα ψάξει και εγώ για να βάλω στο site που φτιάχνω ένα shootbox..
το καλύτερο που βρήκα και λειτουργεί άψογα θα το βρείς εδώ http://website-design.anandsoft.com/fre ... roller.php

Δουλεύει με βάση δεδομένων άψογα. Κάνε μια δοκιμή !!!

Αν βρείς κάποια δυσκολία,ευχαρίστως να βοηθήσω. :kaloe:

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 4 επισκέπτες