Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2017, 21:08   #1
JackFoster
Пользователь
 
Регистрация: 31.03.2017
Сообщений: 15
По умолчанию Ошибка в файле search.php

Ломаю голову уже 3 дня, чтобы я не писал в строке поиска постоянно вылазит одна ошибка - "Поисковое значение должно быть от 3 до 150 символов!". Прошу Вас помочь. Не знаю где конкретно заключается ошибка, поэтому напишу весь код, сильно не серчайте)

PHP код:
<?php
   
include("include/db_connect.php");
   include(
"functions/functions.php");
   
session_start();
   include(
"include/auth_cookie.php");

$search clear_string($_GET["q"]);
       
     
?>
<!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" xml:lang="en" lang="en">
 
<head>
    <meta http-equiv="content-type" content="text/html; charset=windows-1251" />
    <link href="css/reset.css" rel="stylesheet" type="text/css" />
    <link href="css/style.css" rel="stylesheet" type="text/css" />
    <link href="trackbar/trackbar.css" rel="stylesheet" type="text/css" />
     
    <script type="text/javascript" src="/js/jquery-1.8.2.min.js"></script> 
    <script type="text/javascript" src="/js/jcarousellite_1.0.1.js"></script> 
    <script type="text/javascript" src="/js/shop-script.js"></script>
    <script type="text/javascript" src="/js/jquery.cookie.min.js"></script>
    <script type="text/javascript" src="/trackbar/jquery.trackbar.js"></script>
    <script type="text/javascript" src="/js/TextChange.js"></script>
     
    <title>Поиск - <?php echo $search?></title>
</head>
<body>
<div id="block-body">
<?php    
    
include("include/block-header.php");    
?>
<div id="block-right">
<?php    
    
include("include/block-category.php");  
    include(
"include/block-parameter.php");  
    include(
"include/block-news.php"); 
?>
</div>
<div id="block-content">
 
<?php
     
  
if (strlen($search) >= && strlen($search) < 150
  {    
 
    
$num 6// Здесь указываем сколько хотим выводить товаров.
    
$page = (int)$_GET['page'];              
     
    
$count mysql_query("SELECT COUNT(*) FROM table_products WHERE title LIKE '%$search%' AND visible = '1'",$link);
    
$temp mysql_fetch_array($count);
 
    If (
$temp[0] > 0)
    {  
    
$tempcount $temp[0];
 
    
// Находим общее число страниц
    
$total = (($tempcount 1) / $num) + 1;
    
$total =  intval($total);
 
    
$page intval($page);
 
    if(empty(
$page) or $page 0$page 1;  
        
    if(
$page $total$page $total;
      
    
// Вычисляем начиная с какого номера
    // следует выводить товары 
    
$start $page $num $num;
 
    
$qury_start_num " LIMIT $start$num"
    }
 
If (
$temp[0] > 0)
{
     
 echo 
'
  
 <div id="block-sorting">
<p id="nav-breadcrumbs"><a href="index.php" >Главная страница</a> \ <span>Поиск</span></p>
<ul id="options-list">
<li>Вид: </li>
<li><img id="style-grid" src="/images/icon-grid.png" /></li>
<li><img id="style-list" src="/images/icon-list.png" /></li>
<li>Сортировать:</li>
<li><a id="select-sort">'
.$sort_name.'</a>
<ul id="sorting-list">
<li><a href="index.php?sort=price-asc" >От дешевых к дорогим</a></li>
<li><a href="index.php?sort=price-desc" >От дорогих к дешевым</a></li>
<li><a href="index.php?sort=popular" >Популярное</a></li>
<li><a href="index.php?sort=news" >Новинки</a></li>
<li><a href="index.php?sort=brand" >От А до Я</a></li>
</ul>
</li>
</ul>
</div>
<ul id="block-tovar-grid" > 
 '
;   
     
     
  
$result mysql_query("SELECT * FROM table_products WHERE title LIKE '%$search%' AND visible='1' ORDER BY $sorting $qury_start_num ",$link);  
 
if (
mysql_num_rows($result) > 0)
{
 
$row mysql_fetch_array($result); 
  
 do
 {
 
if  (
$row["image"] != "" && file_exists("./uploads_images/".$row["image"]))
{
$img_path './uploads_images/'.$row["image"];
$max_width 200
$max_height 200
 list(
$width$height) = getimagesize($img_path); 
$ratioh $max_height/$height
$ratiow $max_width/$width
$ratio min($ratioh$ratiow); 
$width intval($ratio*$width); 
$height intval($ratio*$height);    
}else
{
$img_path "/images/no-image.png";
$width 110;
$height 200;

   
  echo 
'
   
  <li>
  <div class="block-images-grid" >
  <img src="'
.$img_path.'" width="'.$width.'" height="'.$height.'" />
  </div>
  <p class="style-title-grid" ><a href="" >'
.$row["title"].'</a></p>
  <ul class="reviews-and-counts-grid">
  <li><img src="/images/eye-icon.png" /><p>0</p></li>
  <li><img src="/images/comment-icon.png" /><p>0</p></li>
  </ul>
  <a class="add-cart-style-grid" ></a>
  <p class="style-price-grid" ><strong>'
.$row["price"].'</strong> руб.</p>
  <div class="mini-features" >
  '
.$row["mini_features"].'
  </div>
  </li>
   
  '
;
   
     
 }
    while (
$row mysql_fetch_array($result));
}    
 
 
?>
</ul>
 
 
<ul id="block-tovar-list" >
 
<?php
     
  $result 
mysql_query("SELECT * FROM table_products WHERE title LIKE '%$search%' AND visible='1' ORDER BY $sorting $qury_start_num",$link);  
 
if (
mysql_num_rows($result) > 0)
{
 
$row mysql_fetch_array($result); 
  
 do
 {
 
if  (
$row["image"] != "" && file_exists("./uploads_images/".$row["image"]))
{
$img_path './uploads_images/'.$row["image"];
$max_width 150
$max_height 150
 list(
$width$height) = getimagesize($img_path); 
$ratioh $max_height/$height
$ratiow $max_width/$width
$ratio min($ratioh$ratiow); 
$width intval($ratio*$width); 
$height intval($ratio*$height);    
}else
{
$img_path "/images/noimages80x70.png";
$width 80;
$height 70;

   
  echo 
'
   
  <li>
  <div class="block-images-list" >
  <img src="'
.$img_path.'" width="'.$width.'" height="'.$height.'" />
  </div>
 
  <ul class="reviews-and-counts-list">
  <li><img src="/images/eye-icon.png" /><p>0</p></li>
  <li><img src="/images/comment-icon.png" /><p>0</p></li>
  </ul>
   
  <p class="style-title-list" ><a href="" >'
.$row["title"].'</a></p>
   
  <a class="add-cart-style-list" ></a>
  <p class="style-price-list" ><strong>'
.$row["price"].'</strong> руб.</p>
  <div class="style-text-list" >
  '
.$row["mini_description"].'
  </div>
  </li>
   
  '
;
   
     
 }
    while (
$row mysql_fetch_array($result));
}    
 

 
}else
{
    echo 
"<p>Ничего не найдено!</p>";
}
  }else
  {
     echo 
"<p>Поисковое значение должно быть от 3 до 150 символов!</p>";
  }
?>
</div>
 
<?php    
    
include("include/block-footer.php");    
?>
</div>
 
</body>
</html>
JackFoster вне форума Ответить с цитированием
Старый 29.05.2017, 10:17   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

перед
Код:
if (strlen($search) >= 3 && strlen($search) < 150)
сделайте
Код:
echo "search=$search";
и все станет ясно.
По коду не видно функции - clear_string()
возможно дело в ней....
ADSoft вне форума Ответить с цитированием
Старый 29.05.2017, 10:27   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
и все станет ясно.
По коду не видно функции - clear_string()
коллега, а Вам удалось разобраться в логике данного скрипта?
я, если честно, запутался во вложенных if else и потерялся...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.05.2017, 10:59   #4
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
коллега, а Вам удалось разобраться в логике данного скрипта?
я, если честно, запутался во вложенных if else и потерялся...
да я особо и не пытался. Посмотрел строку где проверка на условие, предположил что если всегда условие срабатывает - то наверняка переменная или не определена либо еще что - увидел неизвестную функцию - предложил минимальный дебаг )
ADSoft вне форума Ответить с цитированием
Старый 29.05.2017, 11:08   #5
JackFoster
Пользователь
 
Регистрация: 31.03.2017
Сообщений: 15
По умолчанию

Если я всё правильно понял, то я сделал так :
Код:
echo "search=$search";
     
  if (strlen($search) >= 3 && strlen($search) < 150)
Выводит всё также , только ещё над "Поисковое значение должно быть от 3 до 150 символов!" Добавилось "search=".
JackFoster вне форума Ответить с цитированием
Старый 29.05.2017, 11:29   #6
JackFoster
Пользователь
 
Регистрация: 31.03.2017
Сообщений: 15
По умолчанию

Если нужно, вот полный код https://www.dropbox.com/sh/wh6ugjsqt...iew=search.php
JackFoster вне форума Ответить с цитированием
Старый 29.05.2017, 12:03   #7
JackFoster
Пользователь
 
Регистрация: 31.03.2017
Сообщений: 15
По умолчанию

Вот..
Код:
<?php
 if($_SERVER["REQUEST_METHOD"] == "POST")
{
 include("db_connect.php");
 include("../functions/functions.php");
 
 $search = iconv("UTF-8", "cp1251",strtolower(clear_string($_POST['text'])));


 $result = mysql_query("SELECT * FROM table_products WHERE title LIKE'%$search%' AND visible = '1'",$link);
  
 If (mysql_num_rows($result) > 0)
{
$result = mysql_query("SELECT * FROM table_products WHERE title LIKE '%$search%'  AND visible = '1' LIMIT 10",$link);
$row = mysql_fetch_array($result);
do
{
echo '
<li><a href="search.php?q='.$row["title"].'">'.$row["title"].'</a></li>
';
}
 while ($row = mysql_fetch_array($result));
 
}
 }
 
 
 
?>
_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 29.05.2017 в 15:10.
JackFoster вне форума Ответить с цитированием
Старый 29.05.2017, 14:14   #8
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

а подумать?
если добавилось
Цитата:
Добавилось "search=".
значит в перменной $serach пусто!!!! понимаете?
в php нет функции clear_string - значит нужно найти её реализацию и проверить
ну и
Код:
$_ POST['text']
надеюсь описка или баг при вставке кода... иначе эта галиматья работать не будет
ADSoft вне форума Ответить с цитированием
Старый 29.05.2017, 15:13   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
Надеюсь описка или баг при вставке кода...
это результат отсутствия форматирования кода тегами [CODE]...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.05.2017, 17:45   #10
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Был же GET сначала – теперь уже откуда-то POST нарисовался в коде.
Так GET или POST?
Andkorol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Joomla 2.5 - Ошибка с Universal AJAX Live Search после переноса сайта на новый хостинг new player WordPress и другие CMS 0 19.02.2013 14:04
Изменение определенных строк в php файле xew PHP 9 18.01.2012 16:02
Проблема с Html формой в Php файле s77lanselot77s PHP 4 20.08.2011 15:48
PHP удаление нужной строки в файле Seran4ek Помощь студентам 2 12.08.2011 12:38