PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (17): В начало « ... 3 4 5 6 [7] 8 9 10 11 ... » В конец
Найдено сообщений: 243
livote
Отправлено: 16 Июля, 2014 - 17:43:55 • Тема: Как ограничить ветку в древовидных комментариях • Форум: Вопросы новичков
Ответов: 0 Просмотров: 156
Есть скрипт древовидных комментариев. Как ограничить ветку, что бы после, например, пятого комментария в ветке никто не мог ниже отвечать на пятый коммент?
код php
Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
<?
"server" => "localhost" ,
"user" => "root" ,
"pass" => "" ,
"base" => "superbase"
) ;
if ( $_GET [ 'op' ] === 'clear-all' ) {
header ( "Location: index.php" ) ; }
if ( isset ( $_POST [ 'uname' ] ) ) { setcookie ( "unamecom" , $uname , $time + 1209600
) ; // время существования куки две недели } elseif ( isset ( $_COOKIE [ "unamecom" ] ) ) { } else {
$uname = "Аноним" ;
}
if ( ! empty ( $_POST [ 'uname' ] ) && ! empty ( $_POST [ 'message' ] ) && $_POST [ 'op' ] == 'add-comment' ) {
$ip = $_SERVER [ 'REMOTE_ADDR' ] ;
$client = $_SERVER [ 'HTTP_USER_AGENT' ] ;
$content_id = intval ( $_POST [ 'content' ] ) ; $parent_id = intval ( $_POST [ 'parent' ] ) ;
mysql_query ( "INSERT INTO les_comments (`id`, `name`, `ip`, `client`, `comment`, `content_id`, `parent_id`, `time`) VALUES (NULL, '$uname ', '$ip ', '$client ', '$comment ', '$content_id ', '$parent_id ', '$time ')" ) ; }
/*
*/
$content_id = 0 ; // это ключевой идентификатор от конкретной статьи(комменты то разные в каждой статье, помним?)
// выводим комменты
$result = mysql_query ( "SELECT * FROM les_comments WHERE content_id='$id '" ) ; $msg [ ] = $row ;
}
$parent = 0 ;
$form = "<div class='editor'>
<form id='comment-form' autocomplete='off' method='post'>
<input type='hidden' name='op' value='add-comment'>
<input type='hidden' name='content' value='{$id} '>
<input type='hidden' name='parent' value='{$parent} '>
<table border='0'><tr><td><input id='uname' name='uname' type='text' value='{$uname} ' maxlength='20' size='25' /></td><td>Ваше имя*</td></tr></table>
<textarea name='message' rows='5' cols='65'></textarea><br><input id='submit' name='signup' type='submit' value='Добавить' /></div>
</form>" ;
$i = 0 ;
if ( $count ) {
$comments = "<div class='comments-all'><span style='float:left'>Всего комментариев: {$count} </span><span class='add-comment'>Написать комментарий</span></div>" . $form ;
$msg = crazysort( $msg ) ;
while ( $i < $count ) {
$margin = $msg [ $i ] [ 'level' ] * 20 ;
$date = date ( "d.m.Y в H:i" , $msg [ $i ] [ 'time' ] ) ; $comments .= "<div id='msg{$msg [$i ]['id']}' style='margin-left: {$margin} px'><div class='comment-title'><span style='float:left'><b>{$msg [$i ]['name']}</b> <small>({$date} )</small></span><span class='comment-ans' id={$msg [$i ]['id']}>ответить</span></div><div class='comment-message'>{$msg [$i ]['comment']}</div></div>" ;
$i ++;
}
} else {
$comments = "<div class='comments-all'><span style='float:left'>Эту новость ещё не комментировали</span><span class='add-comment'>Написать комментарий</span></div>" . $form ;
}
// функция сортирует массив по деревьям
function crazysort( & $comments , $parentComment = 0, $level = 0, $count = null ) {
} else {
$c = $count ;
}
for ( $i = 0 ; $i < $c ; $i ++ ) {
if ( ! isset ( $comments [ $i ] ) ) continue ; $comment = $comments [ $i ] ;
$parentId = $comment [ 'parent_id' ] ;
if ( $parentId == $parentComment ) {
$comment [ 'level' ] = $level ;
$commentId = $comment [ 'id' ] ;
$return [ ] = $comment ;
while ( $nextReturn = crazysort( $comments , $commentId , $level + 1, $c ) ) {
}
}
}
return $return ;
}
return false ;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"/>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.7.0/build/reset/reset-min.css"/>
<title>Древовидные комментарии для Вашего сайта</title>
<link rel='stylesheet' type='text/css' href='css/style.css'/>
<script type='text/javascript' src='js/jquery-1.5.2.min.js'></script>
<body>
<div style='margin:0 auto; width:780px'>
<?
echo $comments ;
echo "<center><a href='?op=clear-all'>очистить все комменты</a></center>" ;
?>
</div>
<script>
$(function () {
$('.add-comment').click(function(){
var editor = $('.editor');
if (editor.is(":hidden")){
editor.slideDown();
}else{
editor.slideUp();
}
return false;
});
$('.comment-ans').click(function(){
var $editor = $('.editor');
$editor.hide();
var mid = $(this).attr("id");
var clone = $editor.clone();
$editor.remove();
setTimeout(function(){
$(clone).css("margin", "5px 0 5px 20px");
$(clone).insertAfter("div#msg"+mid).slideDown();
$("input[name=parent]").val(mid);
}, 200);
});
});
</script>
</body>
</html>
бд
Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
CREATE TABLE IF NOT EXISTS `les_comments` (
`id` INT( 11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR( 50) NOT NULL ,
`ip` VARCHAR( 15) NOT NULL ,
`client` VARCHAR( 250) NOT NULL ,
`comment` TEXT NOT NULL ,
`content_id` INT( 11) NOT NULL DEFAULT '0' ,
`parent_id` INT( 11) NOT NULL DEFAULT '0' ,
`
time ` INT
( 10
) NOT
NULL DEFAULT '0' , ) ENGINE= MYISAM DEFAULT CHARSET= utf8 AUTO_INCREMENT= 1 ;
livote
Отправлено: 21 Июня, 2014 - 10:09:10 • Тема: Вопрос по jquery • Форум: JavaScript & VBScript
Ответов: 1 Просмотров: 852
Почему код выводит ошибку, что введено неверное количество?
Спойлер (Отобразить ) CODE (
javascript ):
скопировать код в буфер обмена
$( '#zform' ) .submit ( function ( ) {
var ver = true ;
var fio = $( '#fio' ) .val ( ) ;
var p = /.{3,}/i ;
if ( p.test ( fio) )
{
massage_a= 'Введите корректные Ф.И.О.\n ' ;
ver= false ;
}
adres = $( '#adres' ) .val ( ) ;
var p = /.{3,}/i ;
if ( p.test ( adres) )
{
massage_a= 'Введите корректный адрес\n ' ;
ver= false ;
}
index = $( '#index' ) .val ( ) ;
var p = /^\d{6}$/ ;
if ( p.test ( index) )
{
massage_a= 'Введите корректный почтовый индекс\n ' ;
ver= false ;
}
email = $( '#email' ) .val ( ) ;
var p = /^([a-z0-9_\.-])+@[a-z0-9-]+\.([a-z]{2,4}\.)?[a-z]{2,4}$/i ;
if ( p.test ( email) )
{
massage_a= 'Введите корректные email\n ' ;
ver= false ;
}
tel = $( '#tel' ) .val ( ) ;
var p = /([0-9\(\)\/\+ \-]{10,})$/ ;
if ( p.test ( tel) )
{
massage_a= 'Введите корректные телефон\n ' ;
ver= false ;
}
kol = $( '#kol' ) .val ( ) ;
var p = /\d{1,4}/ ;
if ( p.test ( kol) )
{
massage_a= 'Введите колличество\n ' ;
ver= false ;
}
if ( ver) {
return true ;
} else {
$( '.nevse' ) .text ( massage_a) ;
// alert(massage_a);
return false ;
}
} ) ;
html код:
Спойлер (Отобразить ) CODE (
html ):
скопировать код в буфер обмена
<div class = "nevse" ></ div >
<form method = "post" id = "zform" name = "zimp" target = "_blank" >
<table id = "tepol" >
<tr >
<td class = "txleft" id = "ifio" > Ф.И.О. *</ td >
<td ><input type = "text" name = "fio" id = "fio" / ></ td >
</ tr >
<tr >
<td class = "txleft" id = "istran" > Страна *</ td >
<td >
<select name = "stran" size = "1" >
<option value = "rus" > Россия</ option >
</ select >
</ td >
</ tr >
<tr >
<td class = "txleft" id = "iadres" > Адрес *</ td >
<td ><textarea rows = "3" name = "adres" id = "adres" wrap= "virtual" maxlength = "500" ></ textarea ></ td >
</ tr >
<tr >
<td class = "txleft" id = "iindex" > Почтовый индекс *</ td >
<td ><input type = "text" name = "index" id = "index" maxlength = "6" / ></ td >
</ tr >
<tr >
<td class = "txleft" id = "iemail" > Email *</ td >
<td ><input type = "text" name = "email" id = "email" maxlength = "48" / ></ td >
</ tr >
<tr >
<td class = "txleft" id = "itel" > Телефон *</ td >
<td ><input type = "text" name = "tel" value = "+7" id = "tel" maxlength = "17" / ></ td >
</ tr >
<tr >
<td class = "txleft" id = "ikol" > Количество *</ td >
<td ><input type = "text" name = "kol" id = "kol" maxlength = "4" value = "1" / > <input value = "Заказать" name = "sub" id = "sub" type = "submit" / ></ td >
</ tr >
</ table >
</ form >
livote
Отправлено: 05 Июня, 2014 - 15:39:21 • Тема: функция mail и почта mail.ru • Форум: Вопросы новичков
Ответов: 1 Просмотров: 109
Указал кодировку utf 8 в файле, прописал
"Content-type: text/html; charset='utf-8'\nFrom: info@fon-shoker.ru\n";
на gmail и яндекс почте всё хорошо.сегодня попробовал mail.ru - ������
что делать?
(Добавление)
Кому потом потребуется.указать вот так надо:
$header = "Content-type: text/html; charset=\"utf-8\"\nFrom: info@fon-shoker.ru\n";
livote
Отправлено: 01 Июня, 2014 - 17:47:05 • Тема: Как при добавлении данных в таблицу бд выгрузить id этой записи • Форум: Вопросы новичков
Ответов: 2 Просмотров: 84
Т.к. я параноик - нужен 100% способ, а то мало ли 2 пользователя одновременно будут добавлять в бд данные.
вот код добавления, как к нему добавить вытаскивание id
$query = "INSERT INTO user_date VALUES(NULL, '$lname', '$name', '$email')";
$result = mysql_query($query);
if (!$result) die("Сбой ".mysql_error());
livote
Отправлено: 31 Мая, 2014 - 20:53:45 • Тема: Проблема с кодировкой (utf8) в mysql • Форум: Вопросы новичков
Ответов: 0 Просмотров: 60
На денвере всё хорошо. Грузанул файлы на хостинг, то когда добавляю данные в базу данных - русские символы мутируются в что-то типа Дмитрий
Прописал
mysql_query("SET NAMES utf8");
mysql_query('SET CHARACTER SET utf8');
(честно говоря не помню, что именно делают эти строки, помню что мне раньше помогало)
Теперь в бд вместо неведомой хренатени стали вопросики ???????
кодировка в бд utf8_general_ci
в .htaccess прописал AddDefaultCharset utf-8
Что за дела?
(Добавление)
Решено. надо так:
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
mysql_query("SET SESSION collation_connection = 'utf8_general_ci'");
Страниц (17): В начало « ... 3 4 5 6 [7] 8 9 10 11 ... » В конец
Powered by ExBB FM 1.0 RC1. InvisionExBB