Хорошо со SQL-inj разобрались... а как защититься от заливки шеллов? Так вышледит скрипт заливающий файлы у меня... PHP: $uploaddir = '../images/works/minipic/'; $uploadfile = $uploaddir.basename($_FILES['minipic']['name']); if (copy($_FILES['minipic']['tmp_name'], $uploadfile)){ }else { echo "<h3>Ошибка! Не удалось загрузить файл на сервер!</h3>"; exit; } Как видите никак не экранируется...
Подскажите как сделать, чтобы перед записью ip адреса в БД, сначало была проверка: если такой ip в столбце уже есть, то запись не делалась. PHP: <? $ip = $_SERVER['REMOTE_ADDR']; include("connect.php"); $link = mysqli_connect(SERVER, USERNAME, PASSWORD, DBNAME); $result=mysqli_query($link, "INSERT INTO user (ip) VALUES ('$ip')"); mysqli_close($link); ?>
2m0Hze Добавьте численное поле[Queries],при каждом запросе проверяйте,есть ли данный запрос, если есть прибавляйте к этому значению 1[Queries] По поводу кодировки: Пользователь вводит запрос в произвольной кодировке, в зависимости от браузера,сервер преобразовывает и передает mysql=> такая же, как и у сервера,и интерпретатора(chcp1251)
m0Hze Во-первых, есть соседняя тема с вопросами про MySQL. Во-вторых - не надо создавать лишнюю таблицу. В-третьих, запрос будет такой: Code: SELECT `zapros`, count(*) AS `cnt` FROM `table` GROUP BY `ipaddress` ORDER BY `cnt` DESC LIMIT 10; Итого - zapros - имя столбца, через запятую можно еще добавить. count(*) as `cnt` - количество строк table - имя таблицы GROUP BY `ipaddress` - по какому столбцу объединять LIMIT 10 - 10 строк в выводе будет
PHP: SELECT column,... [FROM table WHERE definition] [ORDER BY col_name [ASC | DESC], ...] [LIMIT [offset], rows] Пример: PHP: SELECT * FROM ORDER BY `Queries` DESC LIMIT 0 , 5
m0Hze пффф, я-то думал хоть какой то лог у вас есть (типа кто, когда, что), а вы просто количество запросов увеличиваете :-\ Тогда так PHP: SELECT id,name,num FROM table ORDER BY num DESC LIMIT 5
Ребят помогите с регулярным выражением.. надо проверить на совпадение. будет приходить ГЕТ с такими данными: 1-2,3-2,1-1 или 2-2,1-1 то есть кол-во меняться будет постоянно. ^\d{1}-\d{1} вот я не знаю как в цикл с , можно было бы запустить? О.о
m0Hze Потому что гладиолус. Returns an array that corresponds to the fetched row and moves the internal data pointer ahead. PHP: while ($row = mysql_fetch_array($query)) print_r($row); Grema PHP: preg_match_all('~(\d)\-(\d)~',$_GET['c'],$result); var_dump($result);
Есть функция которая выводит дату... $date = date("d.m.Y", time()); Как из этот даты получить обратно секунды как в функции time() Точность как видите до 1 дня...
Как сделать чтоб было так не было хтмл тегов PHP: function treecat($parent=0,$lv=0) { connection(); $sql = mysql_query('SELECT id,parent,name FROM category where parent = '.intval($parent)); while($cat = mysql_fetch_array($sql)) { if ($lv == 2 ) break; if ($cat['parent'] !=0) { echo "<tbody><tr><td><a href=theme.php?cat=".$cat['id'].">".$cat['name']."</a></td></tr></tbody>"; } else { echo "<thead><tr><th class=\"title\">". $cat['name']."</th></tr></thead>"; } treecat($cat['id'],$lv+1) ; } } Например если сделать так в выводит массив PHP: function treecat($parent=0,$lv=0) { $arr= array(); connection(); $msql = mysql_query('SELECT id,parent,name FROM category where parent = '.intval($parent)); if(mysql_num_rows($msql)> 0) { while($cat = mysql_fetch_array($msql)) { if ($lv == 2 ) break; $arr[] = $cat; //echo "<tbody><tr><td><a href=theme.php?cat=".$cat['id'].">".$cat['name']."</a></td></tr></tbody>"; //echo "<thead><tr><th class=\"title\">". $cat['name']."</th></tr></thead>"; $arr[] = treecat($cat['id'],$lv+1) ; } return $arr ; } } $forum = treecat(); echo "<pre>"; print_r($forum); ?> как его потом вывести в хтмл вида и правельно ли я вернул массив как его потом вывести в хтмл вида .. HTML: <table border="1" width="70%" cellpadding="2" cellspacing="0 class="bord" > <thead><tr><th class="title"></th></tr></thead> <tbody> <tr><td><a href=theme.php?cat=""> </a></td></tr> </tbody> </table> <br/> Суб категория <table border="1" width="70%" cellpadding="2" cellspacing="0 class="bord" > <thead><tr><th class="title"></th></tr></thead> <tbody> <tr><td><a href=theme.php?cat=""> </a></td></tr> </tbody> </table> Как лучше это сделать?
Знает кто-нибудь хостинг (платный/бесплатный), где можно открывать постоянное соединение с mysql-сервером и постепенно передавать ему запросы, лимитов на время быть не должно. Спасибо.
Как полностью остановить работу скрипта, после чего сразу же возобновить. Цикл foreach. sleep(), flush(), не предлагать, т.к. они приостанавливают, но скрипт работает.