Система за правене на mini chat

Malfurion

Registered
Наскоро видях някакъв сайт за правене на миничатове...има ли готова система и ако има ако може да ми я дадете, ще съм ви много благодарен...
Благодаря, предварително...
 
А със MySql, как ще стане...много ми е интересно, защото сега се уча и ще ми е интересно да науча как ще стане... А иначе благодаря за кода...
 
няма проблеми.

Заповядай:


чата:

Код:
<html> 
<head> 
<title>Mini Chat Sample</title> 
</head> 
<body> 
<form method="post"><br> 
Login:<input type="text" name="login" size="6"><br> 
Message:<input type="text" name="message" size="10"><br> 
<input type="submit" value="Send"><br> 
</form> 
</body> 
</html>

датабаза схема:

Код:
<?php 
/* 
CREATE TABLE MINICHAT ( 
LOGIN varchar(20) NOT NULL default '', 
MESSAGE varchar(255) NOT NULL default '', 
ITSTIME varchar(10) NOT NULL default '' 
); 
*/ 

// Add message into minichat 
function addMessage( $login, $message ) { 

$login = mysql_escape_string( strip_tags( $login ) ); 
$message = mysql_escape_string( strip_tags( $message, '<a><b><i><u>') ); 
mysql_query( "INSERT INTO MINICHAT ( ITSTIME, LOGIN, MESSAGE ) VALUES ( "'".time()."', '".$login."','".$message."' )"); 
} 

// Message Posted ? 
if ( isset( $_POST['msg'] )) { 
addMessage( $_POST['login'], $_POST['msg'] ); 
} 
?>




Оригинал: http://web-tourist.net/login/login/view.php?st=848 :wink:
 
Pussycat каза:
няма проблеми.

Заповядай:


чата:

Код:
<html> 
<head> 
<title>Mini Chat Sample</title> 
</head> 
<body> 
<form method="post"><br> 
Login:<input type="text" name="login" size="6"><br> 
Message:<input type="text" name="message" size="10"><br> 
<input type="submit" value="Send"><br> 
</form> 
</body> 
</html>

датабаза схема:

Код:
<?php 
/* 
CREATE TABLE MINICHAT ( 
LOGIN varchar(20) NOT NULL default '', 
MESSAGE varchar(255) NOT NULL default '', 
ITSTIME varchar(10) NOT NULL default '' 
); 
*/ 

// Add message into minichat 
function addMessage( $login, $message ) { 

$login = mysql_escape_string( strip_tags( $login ) ); 
$message = mysql_escape_string( strip_tags( $message, '<a><b><i><u>') ); 
mysql_query( "INSERT INTO MINICHAT ( ITSTIME, LOGIN, MESSAGE ) VALUES ( "'".time()."', '".$login."','".$message."' )"); 
} 

// Message Posted ? 
if ( isset( $_POST['msg'] )) { 
addMessage( $_POST['login'], $_POST['msg'] ); 
} 
?>




Оригинал: http://web-tourist.net/login/login/view.php?st=848 :wink:
Явно не ме разбра... аз и сам вече мога да си напиша чат...а мога да взема и готов...трябва ми система от която хората да могат да вземат линк към чат на моя сайт и да го слагат във техния...както системата за анкети тук във Web-Tourist
 
е така кажи :wink:


значи ти трябва нещо такова: http://www.cbox.ws/


Но нямам си на идея как да стане.


Всъщност .. Имам, имам. Ама трябва някой да ти напише код.

Значи като се отвори например файл: creat.php да се копира с функцията за копирване на файл с пхп файла на име chat.php.. ще се копирва в папка която ще се създаде още с влизането на човека. Папката ще бъде неговото ip. И в нея папка ще бъде копирания chat.php


Аз така имах една система за регистрация и за секунди ми копирваше скрипта ГАЛЕРИЯ (система), БЛОГ система и ФОРУМ.



Но това е един много прост начин.


Има и по хубави.. и по тарикатски... :)



всичко това което ти казах, можеш да го намериш из форума. Немога да ти дам линкове защото незнам къде точно са... но не са от скоро !
 
И на мен ми е горе-долу ясно какво трябва да се направи...

Скрипт за рег и логин
Във рега се слага функция за правене на папка със името $username . След това във тази папка се копира фаелът chat.php и install.php (примерно от install.php да се настройват някви неща, като например как да изглежда или нещо от сорта. Може да бъде и admin.php) или само chat.php...и ето ти системата...но незнам как да го направа :(
 
ето ти още един мини чат:

minichat2.inc.php
Код:
<?

    /**
     * minichat 2
     * Copyright Paul Mutton, 15th August 2002.
     * http://www.jibble.org/
     * 
     * Include this file on a PHP web page to add a mini chat box.
     *
     * Features:-
     *   Totally rewritten from scratch.
     *   Much much more efficient than the previous version.
     *   HTML tags are filtered out.
     *   Imposes a max word size to avoid wrapping issues.
     *   Max nick and message lengths are enforced on the server side.
     *   Accidental "refresh" reposting is avoided.
     *   Appends all messages chronologically to the archive file.
     *   Displays latest 20 messages with the most recent at the top.
     *   Now logs I.P. addresses within comments (do what you want with them).
     *   Displays posting time in correct local time.
     *   
     */

    $latest = $DOCUMENT_ROOT . "/temp/minichat2.latest";
    $archive = $DOCUMENT_ROOT . "/temp/minichat2.archive";
    $size = 20;
    $nick_size = 20;
    $message_size = 256;
    $max_word_size = 20;
    
?>

<table width="120" align="center" border="0">
 <tr>
  <td>
   <p align="center">
    <font face="arial,sans-serif"><b><a href="http://www.jibble.org/chatbox.php">minichat 2</a></b></font>
   </p>
   <p align="center">
    <form name="minichat_form" method="POST" action="<? echo $_SERVER['PHP_SELF']; ?>">
     <font face="arial,sans-serif" size="2">
      <input type="hidden" name="minichat_md5" value="<? if (isset($minichat_message)) {echo md5($minichat_message);} ?>">
      Nick:<br>
      <input type="text" name="minichat_nick" maxlength="<? echo $nick_size; ?>" size="15" style="font-family: Verdana, Arial, Helvetica, Sans-serif; font-size: 10px"><br>
      Message:<br>
      <textarea name="minichat_message" cols="16" rows="3" style="font-family: Verdana, Arial, Helvetica, Sans-serif; font-size: 10px"></textarea><br>
      <input type="submit" name="minichat_submit" value="Submit">
     </font>
    </form>
   </p>
   <p>
    <font face="arial,sans-serif" size="1">

<?
    
    // Check to see if the user is trying to post something.
    if (isset($minichat_md5) && isset($minichat_nick) && isset($minichat_message)) {
        
        // Replace any new line stuff with a space.
        $nick = strtr($nick, "\r\n", "  ");
        $message = strtr($message, "\r\n", "  ");

        // Trim leading and trailing whitespace where necessary and remove slashes.
        $nick = trim(stripslashes($minichat_nick));
        $message = trim(stripslashes($minichat_message));
        
        // Only proceed if the md5 hash of message is not repeated.
        if (md5($message) != $minichat_md5) {
        
            // Only proceed if the user actually filled in both fields.
            if (strlen($nick) > 0 && strlen($message) > 0) {
                
                // If the fields are too long, then chop them to the limits.
                if (strlen($nick) > $nick_size) {
                    $nick = substr($nick, 0, $nick_size);
                }
                if (strlen($message) > $message_size) {
                    $message = substr($message, 0, $message_size);
                }
                
                // Remove new line characters from the input.
                $nick = str_replace("\n", " ", $nick);
                $message = str_replace("\n", " ", $message);
                
                // Enforce the maximum word size by breaking up $message into lines.
                $message = preg_replace("/([^\s]{20})/", "$1\n", $message);
                
                // Now we can encode the nick and message into HTML.
	        $nick = htmlentities($nick);
                $message = htmlentities($message);
                
                // Now replace the new line characters in $message.
                $message = str_replace("\n", "<br>", $message);
                
                // The IP address of the poster, web cache or whatever.
                $ip = $_SERVER['REMOTE_ADDR'];
                $time = date("j M Y - G:i:s T");
                
                // Check to see if the 'latest' and 'archive' files exist and can be written to.
                if (!is_writable($latest) || !is_writable($archive)) {
                    // Touch both files.
                    touch($latest);
                    touch($archive);
                    if (!is_writable($latest) || !is_writable($archive)) {
                        exit("$latest or $archive is not writable. Please check your permissions and try again.");
                    }
                }
                
                // Read every line of the 'latest' file into an array.
                $lines = file($latest);
                $bottom_index = count($lines);
                
                // Note that each entry takes up 4 lines.
                $line_ip = "\n";
                $line_nick = "* <font color=\"#9999ff\">Posted by $nick\n";
                $line_time = "on $time</font><br>\n";
                $line_message = "$message<br><br>\n";

                $entry = $line_ip . $line_nick . $line_time. $line_message;

                $already_posted = 0;
                for ($i = 3; $i < $bottom_index; $i += 4) {
                    if ($lines[$i] == $line_message) {
                        $already_posted = 1;
                        break;
                    }
                }
                
                if ($already_posted == 0) {
                    // Now rebuild the 'latest' file.
                    // Start by entering the new entry at the top.
                    $out = fopen($latest, "w");
                    fwrite($out, $entry);
                    
                    // Then write all other entries except the oldest.
                    if ($bottom_index >= $size * 4) {
                        $bottom_index = $size * 4 - 4;
                    }
                    for ($i = 0; $i < $bottom_index; $i++) {
                        fwrite($out, $lines[$i]);
                    }
                    fclose($out);
                    
                    // Also append the entry to the archive file.
                    $out = fopen($archive, "a");
                    fwrite($out, $entry);
                    fclose($out);
                }
                else {
                    // This avoided a "probably accidental" repost.
                }
                
            }
            else {
                echo "<font color=\"red\">You must fill in both fields</font><br><br>";
            }
        }
        else {
            // This avoided a deliberate repost, maybe we should say something?
        }
        

    }
    
    // include the latest comments on the page.
    if (file_exists($latest)) {
        include($latest);
    }
    
?>

    </font>
   </p>
  </td>
 </tr>
</table>

само че сега не мога да ти дам демо!!! сори!
 
Само не знам защо така сложно мислите с опиране и тн... ква е логиката като има 1000 копия на 1 файл, с една база? всичките пишат на едно място. въпроса е да измислиш как ще го визуалйзраш. дали чрез фреим или JS. прави се още една база. примерно за този:

http://web-tourist.net/login/login/view.php?st=848

Код:
CREATE TABLE MINICHAT ( 
LOGIN varchar(20) NOT NULL default '', 
MESSAGE varchar(255) NOT NULL default '', 
ITSTIME varchar(10) NOT NULL default '' 
);

ще стане следното:

Код:
CREATE TABLE MINICHAT ( 
LOGIN varchar(20) NOT NULL default '', 
MESSAGE varchar(255) NOT NULL default '', 
ITSTIME varchar(10) NOT NULL default '',
IDCHAT varchar(10) NOT NULL default '' 
); 

CREATE TABLE USERCHAT ( 
IDCHAT varchar(20) NOT NULL default auto_increment'', 
USERNAME varchar(255) NOT NULL default '' 
);

Като за всеки чат има уникален IDCHAT и при създаването в USERCHAT се задава автоматично номер и име на създаващия. след това за всички такове резултата се записва в MINICHAT като поле IDCHAT се записва номера на чата.

П.П. Забравих да кажа, задаи в таблица MINICHAT да има и дата, за да може да триеш съонщения по стари от някакъв перйод, няма смисъл много да се натрупват. А в USERCHAT може да зададеш и ЦВЯТ на чата и на Шрифта, за да може потребителите да си ги избират при създаването му.
 
една форма да речем с 3 плета, едното е за цвят на чата, другото на текста и третото за име на потребителя създал чата, (може да сложиш и други полета, като ip, data и др ако искаш.) където потребителите си избират какви да са (може да вложиш въонражение с някое прозорче с няколко цвята които се показват и кат цъкнеш да се изписват в полето с JS ама там вече на разбирам). и едно бутонче, при натискането на което се записва в базата USERCHAT като номера се самогенерира и в един нов файл или същия извеждаш линк за чата, да речем:

http://site.com/chat/index.php?id=12

това е 12-ти чат. за визуализиране, можа да ползваш iframe, понеже ще е с точни размери, без скролване :-). общо взето се генерира целия код в една текстареа където потребителя само да го копира.
 
Благодаря ти... но формата ми е ясно как да я направа...но не ми е ясно как да направа php часта...ще трябва доста да си играя докато успея да я направя...благодаря ти
 

Back
Горе