Webmaster общности: Predpriemach.com | SearchEngines.bg

    Обикновен чат с mysql

    Автор: DrViS

    Нямах какво да правя и написах един обикновен чат с mysql Veryhappy

    Чата се състои от 1 файл.
    Постарал съм се да обясня всичко.

    Може да съм сбъркал нещо в кодовете или да съм сложил нещо ненужно,
    но още съм начинаещ в php и mysql.

    Стига съм се обяснявам, да започваме.

    Първо да направим базата данни.
    Отворете си phpmyadmin-а и направете една база данни, например chat и там сложете следния SQL код

    CREATE TABLE `chat` (
    `id` int(10) unsigned NOT NULL auto_increment,
    `username` varchar(30) collate cp1251_bulgarian_ci NOT NULL,
    `msg` text collate cp1251_bulgarian_ci NOT NULL,
    `ip` varchar(30) collate cp1251_bulgarian_ci NOT NULL,
    `data` varchar(30) collate cp1251_bulgarian_ci NOT NULL,
    `chas` varchar(30) collate cp1251_bulgarian_ci NOT NULL,
    KEY `id` (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COLLATE=cp1251_bulgarian_ci AUTO_INCREMENT=1 ;
    

    Сега отваряте notepad или друг текстов редактор и там пишете кода след този текст и после го записвате (Save As…) като chat.php, но и да го сейфате като друго име няма да има абсолютно никакъв проблем.

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>Чат :)</title>
    <meta http-equiv="content-type" content="text/html; charset=windows-1251">
    </headЛ
    <body>
    <form action="?" name="submit" method="post">
    <input type="text" name="username"><br>
    <textarea rows="5" cols="30" name="msg"></textarea><br>
    <input type="submit" name="submit" value="Добави"> <a href="http://validator.w3.org/check?uri=referer" target="_blank">Valid HTML</a>
    </form><hr>
    <?php
    
    $server="localhost"; //mysql хост
    $user="user"; //mysql име
    $pass="pass"; //mysql парола
    $db="chat"; //име на базата данни
    
    $broi_msg="20"; //тук задаваме колко съобщения да показва
    $con=mysql_connect("$server", "$user", "$pass") or die("Error 1"); //свързваме се с mysql
    mysql_select_db($db,$con) or die("Error 2"); // свързваме се с базата данни
    $chars="set character set cp1251";mysql_query($chars); //този код помага да показва данните които са на български език
    
    $mysql_db=mysql_query("SELECT * FROM `chat` ORDER BY id DESC LIMIT 0,$broi_msg") or die("Error 3"); //тук се свързваме с таблицата на базата данни
    while($row=mysql_fetch_array($mysql_db)) //тук изкарваме записаните данни в базата данни
    {
    $username=$row['username']; //изкарваме потребителските имена
    $msg=$row['msg']; //изкарваме съобщенията
    
    $username2=htmlspecialchars("$username", ENT_QUOTES); //тук предотвратяваме да се изпълняват < и > в името
    $msg2=htmlspecialchars("$msg", ENT_QUOTES); //тук също предотвратяваме да се изпълняват < и > обаче в съобщението
    
    echo "<b>$username2</b>: $msg2<br>
    "; //тук изкарваме записите от базата данни в php файл
    }
    ?>
    </body>
    </html>
    <?php
    if (isset($_POST['submit'])) { //тук правиме кодовете по-долу да се изпълняват само когато се натисне бутона "Добави"
    
    $con2=mysql_connect("$server", "$user", "$pass") or die("Error 1"); //свързваме се с mysql
    mysql_select_db("$db",$con2) or die("Error 2"); //свързваме се с базата данни
    $chars="SET CHARACTER SET cp1251";mysql_query($chars); //този код помага да добавя данните които са на български език
    
    $username=$_POST['username']; //извличаме потребителското име
    $msg=$_POST['msg']; //извличаме съобщеноето
    $ip=$_SERVER['REMOTE_ADDR']; //изкарваме IP-то на потребителя
    $data=date("j F - Y"); //изкарваме датата
    $chas=date("g:i:s a"); //изкарваме часа
    
    if($username==""){ die(""); } //ако не е написано име, не изпълнява кода по-надолу
    if($msg == ""){ die(""); } //ако не е написано съобщение, не изпълнява кода по-надолу
    
    $sql = "INSERT INTO `chat` (`username`, `msg`, `ip`, `data`, `chas`) VALUES ('$username', '$msg', '$ip', '$data', '$chas')" or die("Error 3");
    mysql_query($sql, $con2) or die("Error 4"); //записваме данните в базата данни
    $sql2 = "SELECT * FROM `chat` WHERE msg='$msg'" or die("Error 5"); //тук се свързваме с таблицата на базата данни
    $result = mysql_query($sql2) or die("Error 6"); //свързваме се с таблицата на базата данни
    while($row=mysql_fetch_array($result))//изкарваме записаните данни
    {
    echo "<meta http-equiv='refresh' content='0; url=?'>"; //ако данните са запизани в базата данни, рефрешва страницата за да покаже новите данни
    }} mysql_close(); ?>

    Това е всичко Cool
    Надявам се да Ви хареса.

    Урока е авторски и забранявам преписването му в други сайтове !!!