Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как побороться с ошибкой - Warning: mysql_connect(): Access denied for user 'root'@'localhost' (using password: YES)
 
 автор: drpan   (12.03.2014 в 15:33)   письмо автору
 
 

Есть ошибка Warning: mysql_connect(): Access denied for user 'root'@'localhost' (using password: YES) in /var/www/eximtest/data/www/.............Ошибка соединения с БД сервером: Access denied for user 'root'@'localhost' (using password: YES) как с ней бороться, при установке скрипта логин пароль сервер ввел.

  Ответить  
 
 автор: psychomc   (12.03.2014 в 15:42)   письмо автору
 
   для: drpan   (12.03.2014 в 15:33)
 

бороться с ней никак не надо, нужно только убедиться, что имя пользователя и пароль действительно верные

  Ответить  
 
 автор: drpan   (12.03.2014 в 15:47)   письмо автору
 
   для: psychomc   (12.03.2014 в 15:42)
 

Сайт полностью работает нормально, пароль и пользователь подходят. Но когда переходишь в картинки выскакивает эта ошибка.


Вот файл на который ругается


<?php

require_once('path_utils.php');
require_once('utils.php');

class ImagesAdmin extends WorkFlow {
protected $urlDir = '';
protected $dblink = null;

protected function init() {
//setlocale(LC_ALL, 'ru_RU.UTF8');
$settings_dir = "../settings";
include "$settings_dir/conf.php";
header("Content-type: text/html; charset={$this->charset}");
$this->DEBUG = 1;

$this->setConfig('imgcfg.php');

$this->urlDir = dirname($_SERVER['SCRIPT_NAME']);
$this->tplDir = '../templates/'.$template.'';

}

protected function main() {
if (isset($this->get['list'])) {
$this->tplName = 'site_list.tpl';
} elseif (isset($this->get['search'])) {
$this->tplName = 'search_result.tpl';
$this->dblink = $this->dbconnect();

// определяем начало выборки строк из базы(LIMIT)
$this->get['start'] = is_numeric(@$this->get['start']) && @$this->get['start'] >= 0 ? $this->get['start'] : 0;
$rowStart = mysql_real_escape_string($this->get['start']);
ini_set("display_errors",0);
$searchPhrase = $_GET['phrase'];// = iconv('cp1251', 'utf-8', $_GET['phrase']);
$searchPhrase = mysql_real_escape_string(urldecode($_GET['phrase']));
$searchPhrase = preg_replace("/\s{2,}/i", '', trim($searchPhrase));
ini_set("display_errors",0);
# start for language
$settings_dir = "../settings";
include "$settings_dir/conf.php";
include "../languages/$language-language.php";

//проверяем язык в куках
$domain= $site;
$lang=$_GET['lang'];
if (!$lang) {$HTTP_GET_VARS['lang'];}
if ($lang){
setcookie("langu", $lang, time() + 3600*24*30);
header("location:$domain");
}
if ($_COOKIE['langu']) {
include_once("../languages/".$_COOKIE['langu']."-language.php");
}
# end for language

//Опрееляем язык как файл для шаблонизатора
foreach ($sph_messages as $key => $value)
{
$this->tplvars[$key] = $value;
}
if (empty($searchPhrase)) {
// если фраза для поиска пустая то выходим в основной main
$this->tplvars['searchres'] = $sph_messages['text_img_nokeywords'];
$this->tplvars['pages'] = '';
$this->tplvars['searchphrase'] = '';
parent::main();
return false;

}

// Считаем общее кол-во найденных строк. Этот параметр лучше кэшировать
$sqlTotalRows = "SELECT count(*) AS imgcnt FROM `images_indexed`
WHERE (LOWER(`title`) LIKE LOWER('%$searchPhrase%')) OR (LOWER(`url`) LIKE LOWER('%$searchPhrase%'));";
$res = mysql_query($sqlTotalRows);
$row = mysql_fetch_assoc($res);

if ($row['imgcnt'] <= 0) { // если найдено 0 результатов то выходим в основной main
$this->tplvars['searchres'] = $sph_messages['text_img_noresult'];
$this->tplvars['pages'] = '';
$this->tplvars['searchphrase'] = $_GET['phrase'];
parent::main();
return false;
}

$totalPages = ceil($row['imgcnt'] / $this->config['search']['rows']);
$pagesHtml = $this->makePageList($rowStart, $row['imgcnt'], $this->config['search']['rows'], "?ajaxsearch&phrase=".urlencode(iconv('utf-8', 'cp1251', $_GET['phrase']))."&start=");

$sqlQuery = "SELECT * FROM `images_indexed`
WHERE (LOWER(`title`) LIKE LOWER('%$searchPhrase%')) OR (LOWER(`url`) LIKE LOWER('%$searchPhrase%'))
LIMIT $rowStart, {$this->config['search']['rows']};";
$res = mysql_query($sqlQuery);
//echo $searchPhrase."<br/>";

$html = '';
while ($row = mysql_fetch_assoc($res)) {
$row['stitle'] = mb_substr($row['title'], 0, 20, 'utf-8');
$row['size'] = intval($row['size'] / 1024);
$imgHost = extractHost($row['url']);
$html .= "<li>
<a href=\"/preview?url={$row['url']}\" ><img src=\"{$row['local_path']}\" alt=\"{$row['title']}\" title=\"{$row['title']}\"></a><br/>
{$row['stitle']}<br/>
{$row['width']} x {$row['height']} - {$row['size']}k - {$row['type']}<br/>
<a href=\"{$row['page']}\" target=\"_blank\">$imgHost</a>
</li>\n";
}
$this->tplvars['searchres'] = $html;
$this->tplvars['pages'] = $pagesHtml;
$this->tplvars['searchphrase'] = $_GET['phrase'];







} elseif (isset($this->get['ajaxsearch'])) {
//$this->tplName = 'search_result.tpl';
$this->dblink = $this->dbconnect();

$searchPhrase = $_GET['phrase'];// = iconv('cp1251', 'utf-8', $_GET['phrase']);
$searchPhrase = mysql_real_escape_string(urldecode($_GET['phrase']));
$searchPhrase = preg_replace("/\s{2,}/i", '', trim($searchPhrase));

if (empty($searchPhrase)) {
// если фраза для поиска пустая то выходим в основной main
$this->tplvars['searchres'] = 'Не задана фраза для поиска';
$this->tplvars['pages'] = '';
$this->tplvars['searchphrase'] = '';
parent::main();
return false;
}

$formSqlParams = array(
'page' => array(16 => 16, 20 => 20),
'geosize' => array('all' => '', 'large' => 'AND `width`>=1200',
'medium' => 'AND (`width`<1200 AND `width`>300)',
'small' => 'AND `width`<=300' ),
'filesize' => array(
'all' => '',
20 => 'AND `size`<20480',
50 => 'AND `size`<51200',
100 => 'AND `size`<102400',
200 => 'AND `size`<204800'
),
'type' => array(
'all' => '',
'jpg' => "AND ( LOWER(`type`)='jpg' OR LOWER(`type`)='jpeg' )",
'gif' => "AND LOWER(`type`)='gif'",
'png' => "AND LOWER(`type`)='png'"
)
);
// Устанавливаем sql параметры выборки из базы заданные в форме фильтрации
$sqlLimit = isset($formSqlParams['page'][$this->get['perpage']]) ? $formSqlParams['page'][$this->get['perpage']] : $this->config['search']['rows'];

$this->get['start'] = is_numeric(@$this->get['start']) && @$this->get['start'] >= 0 ? $this->get['start'] : 0;
$rowStart = mysql_real_escape_string($this->get['start']);

$sqlGeosize = isset($formSqlParams['geosize'][$this->get['geosize']]) ? $formSqlParams['geosize'][$this->get['geosize']] : '';
$sqlFilesize = isset($formSqlParams['filesize'][$this->get['filesize']]) ? $formSqlParams['filesize'][$this->get['filesize']] : '';
$sqlType = isset($formSqlParams['type'][$this->get['type']]) ? $formSqlParams['type'][$this->get['type']] : '';

// Считаем общее кол-во найденных строк. Этот параметр лучше кэшировать
$sqlTotalRows = "SELECT count(*) AS imgcnt FROM `images_indexed`
WHERE (LOWER(`title`) LIKE LOWER('%$searchPhrase%') OR LOWER(`url`) LIKE LOWER('%$searchPhrase%'))
$sqlGeosize $sqlFilesize $sqlType;";
$res = mysql_query($sqlTotalRows);
$row = mysql_fetch_assoc($res);

if ($row['imgcnt'] <= 0) { // если найдено 0 результатов то выходим в основной main
$this->tplvars['searchres'] = 'По вашему запросу ничего не найдено';
$this->tplvars['pages'] = '';
$this->tplvars['searchphrase'] = $_GET['phrase'];
parent::main();
return false;
}

$totalPages = ceil($row['imgcnt'] / $sqlLimit);
//$pagesHtml = $this->makePageList($rowStart, $row['imgcnt'], $this->config['search']['rows'], "?ajaxsearch&phrase=".urlencode(iconv('utf-8', 'cp1251', $_GET['phrase']))."&start=", "onclick=\"return false;\"");
$pagesHtml = $this->makePageList($rowStart, $row['imgcnt'], $this->config['search']['rows'], "?ajaxsearch&phrase=".urlencode(iconv('utf-8', 'cp1251', $_GET['phrase']))."&start=");
//$pagesHtml = $this->makePageList($rowStart, $row['imgcnt'], $this->config['search']['rows'], '');

$sqlQuery = "SELECT * FROM `images_indexed`
WHERE (LOWER(`title`) LIKE LOWER('%$searchPhrase%') OR LOWER(`url`) LIKE LOWER('%$searchPhrase%'))
$sqlGeosize $sqlFilesize $sqlType
LIMIT $rowStart, $sqlLimit;";
//echo $sqlQuery;
$res = mysql_query($sqlQuery);
$html = '';
while ($row = mysql_fetch_assoc($res)) {
$row['stitle'] = mb_substr($row['title'], 0, 20, 'utf-8');
$row['size'] = intval($row['size'] / 1024);
$imgHost = extractHost($row['url']);
$html .= "<li>
<a href=\"/preview?url={$row['url']}\" ><img src=\"{$row['local_path']}\" alt=\"{$row['title']}\" title=\"{$row['title']}\"></a><br/>
{$row['stitle']}<br/>
{$row['width']} x {$row['height']} - {$row['size']}k - {$row['type']}<br/>
<a href=\"{$row['url']}\" target=\"_blank\">$imgHost</a>
</li>\n";
}

$this->tplvars['rawdata'] = "<div class='pages'>$pagesHtml</div><br/><br/>$html<br/><div class='pages'>$pagesHtml</div>";

} elseif (isset($this->get['showimages'])) {
$this->tplName = 'site_images.tpl';
$this->dblink = $this->dbconnect();

$sid = mysql_real_escape_string($this->get['site_id']);

// определяем начало выборки строк из базы(LIMIT)
$this->get['start'] = is_numeric(@$this->get['start']) && @$this->get['start'] >= 0 ? $this->get['start'] : 0;
$rowStart = mysql_real_escape_string($this->get['start']);

// Считаем общее кол-во найденных строк. Этот параметр лучше кэшировать
$sqlTotalRows = "SELECT count(*) AS imgcnt FROM `images_indexed` WHERE `site_id` = $sid;";
$res = mysql_query($sqlTotalRows);
$row = mysql_fetch_assoc($res);
$pagesHtml = $this->makePageList($rowStart, $row['imgcnt'], 16, "?showimages&site_id=$sid&start=");

$sqlQuery = "SELECT * FROM `images_indexed`
WHERE `site_id` = $sid ORDER BY `id`
LIMIT $rowStart, {$this->config['search']['rows']};";
$res = mysql_query($sqlQuery);
$html = '';
while ($row = mysql_fetch_assoc($res)) {
if (empty($row['title'])) {
$row['title'] = 'Нет описания';
}
//$row['stitle'] = substr($row['title'], 0, 40); // в utf-8 может отрезать байт от символа.
$row['size'] = intval($row['size'] / 1024);
$imgHost = preg_replace("/^https*\:\/\/([^\/]+?)\/.*/is", "\\1", $row['url']);
$html .= "<li>
<div class=\"imgbox\">
<a href=\"/preview?url={$row['url']}\"><img src=\"{$row['local_path']}\" alt=\"{$row['title']}\" title=\"{$row['title']}\"></a><br/>
<a href=\"{$row['url']}\" target=\"_blank\">$imgHost</a>
</div>
<div class=\"imgtitle\">{$row['title']}</div>
<div class=\"imgaction\" id=\"img_{$row['id']}\"><a href=\"\" onclick=\"delImage({$row['id']}); return false;\">Удалить</a></div>
</li>\n";
}

$this->tplvars['searchres'] = $html;
$this->tplvars['pages'] = $pagesHtml;

} elseif (isset($this->get['ajaxdelimg'])) {
if ( !(is_numeric($this->get['id']) && $this->get['id'] >= 0) ) {
$this->tplvars['rawdata'] = "Неверный ID $this->get['id']";
} else {
$this->dblink = $this->dbconnect();
$id = mysql_real_escape_string($this->get['id']);
$sqlDelQuery = "DELETE FROM `images_indexed` WHERE `id` = $id;";
$res = mysql_query($sqlDelQuery);
if (mysql_affected_rows() > 0 ) {
$this->tplvars['rawdata'] = "Удалена";
} else {
$this->tplvars['rawdata'] = "Ошибка удаления. Возможно id $id не найден в базе";
}
}
} else {
$this->tplName = 'default.tpl';
}

parent::main();
}

protected function dbconnect() {
$this->dblink = mysql_connect($this->config['db']['host'], $this->config['db']['user'], $this->config['db']['passwd']);
if (!$this->dblink) {
die('Ошибка соединения с БД сервером: ' . mysql_error());
}
//mysql_set_charset($this->config['db']['charset']);
//mysql_query("SET NAMES '{$this->config['db']['charset']}';") or die(mysql_error().'. '.__FILE__.' [line:'.__LINE__.']');
mysql_set_charset($this->config['db']['charset']) or die(mysql_error().'. '.__FILE__.' [line:'.__LINE__.']');
if ( !mysql_select_db($this->config['db']['name']) ) die ('Ошибка подключения к БД: ' . mysql_error());
//echo mysql_client_encoding();
return $this->dblink;
}

// Возвращает хтмл-меню паджинатора
protected function makePageList($offset, $total, $limit, $base = '', $js = '') {
$total = $total == 0 ? 1 : $total;
$lastp = ceil($total / $limit);
$thisp = ceil(($offset == 0 ? 1 : ($lastp / ($total / $offset))));

$html = "<script language=\"javascript\">
\$('.pagesls').click( function(){
submit(\$(this).attr('start'));
return false;
});
</script>";
$html .= "<div class=\"paginator\">\n";
if ($thisp==1) $html .= "<SPAN CLASS=\"atstart\">&lt&lt</SPAN>\n";
else $html .= "<span class=\"pagesls\" start=\"".(($thisp - 2) * $limit)."\"><a href=\"".$base.(($thisp - 2) * $limit)."\" $js class=\"prev\">&lt;&lt</a></span> \n";
$page1 = $base . "0";
$page2 = $base . $limit;
if ($thisp <= 5) {
for ($p = 1;$p <= min( ($thisp<=3) ? 5 : $thisp+2,$lastp); $p++) {
if ($p == $thisp) {
$html .= "<span class=\"this-page\">$p</span>\n ";
} else {
$url = $base . (($limit * ($p - 1)));
$html .= "<span class=\"pagesls\" start=\"".($limit * ($p - 1))."\"><a href=\"$url\" $js >$p</a></span>\n";
}
}
if ($lastp > $p) {
$html .= "<span class=\"break\">...</span>\n";
$html .= "<span class=\"pagesls\" start=\"".(($lastp - 2) * $limit)."\"><a href=\"".$base.(($lastp - 2) * $limit)."\" $js >".($lastp-1)."</a></span>\n";
$html .= "<span class=\"pagesls\" start=\"".(($lastp - 1) * $limit)."\"><a href=\"".$base.(($lastp - 1) * $limit)."\" $js >".$lastp."</a></span>\n";
}
} else if ($thisp > 5) {
$html .= "<span class=\"pagesls\" start=\"0\"><a href=\"".$page1."\" $js >1</a></span> <span class=\"pagesls\" start=\"$limit\"><a href=\"".$page2."\" $js>2</a></span>";
if ($thisp != 6) $html .= "<span class=\"break\">...</span>\n ";
for ($p = ($thisp == 6) ? 3 : min($thisp - 2,$lastp-4);$p <= (($lastp-$thisp<=5) ? $lastp:$thisp+2); $p++) {
if ($p == $thisp) {
$html .= "<span class=\"this-page\">$p</span>\n ";
} elseif ($p <=$lastp) {
$url = $base . ($limit * ($p - 1));
$html .= "<span class=\"pagesls\" start=\"".($limit * ($p - 1))."\"><a href=\"$url\" $js >$p</a></span>\n ";
}
}
if ($lastp > $p+1) {
$html .= "<span class=\"break\">...</span>\n";
$html .= "<span class=\"pagesls\" start=\"".(($lastp - 2) * $limit)."\"><a href=\"".$base.(($lastp - 2) * $limit)."\" $js >".($lastp-1)."</a></span>\n";
$html .= "<span class=\"pagesls\" start=\"".(($lastp - 1) * $limit)."\"><a href=\"".$base.(($lastp - 1) * $limit)."\" $js >".$lastp."</a></span>\n";
}
}
if ($thisp == $lastp) $html .= "<SPAN CLASS=\"atend\">&gt&gt</SPAN>\n";
else $html .= "<span class=\"pagesls\" start=\"".(($thisp) * $limit)."\"><a href=\"".$base.(($thisp) * $limit)."\" $js class=\"next\" >&gt&gt;</a></span>\n";
$html .= "</div>\n";
return $html;
}

}

  Ответить  
 
 автор: moonfox   (12.03.2014 в 16:34)   письмо автору
 
   для: drpan   (12.03.2014 в 15:47)
 

информативно.....

  Ответить  
 
 автор: drpan   (12.03.2014 в 16:45)   письмо автору
 
   для: moonfox   (12.03.2014 в 16:34)
 

Ни кто не знает как победить эту штуку?

  Ответить  
 
 автор: psychomc   (12.03.2014 в 17:50)   письмо автору
 
   для: drpan   (12.03.2014 в 16:45)
 

перед строкой
$this->dblink = mysql_connect($this->config['db']['host'], $this->config['db']['user'], $this->config['db']['passwd']);
выведите на экран все параметры, которые вы скармливаете mysql_connect и убедитесь что они правильные.
p.s код очень грязный, в одном файле php логика, sql-запросы, html и бог знает что еще

  Ответить  
 
 автор: добряк   (12.03.2014 в 20:46)   письмо автору
 
   для: drpan   (12.03.2014 в 15:47)
 

1. В начале добавьте в отладке
ini_set('display_errors', 1); и в рабочем
ini_set('display_errors', 0);
2. Пропишите параметры жестко, если заработает, то по очереди исключайте
3. Попробуйте отладочным кодом вывести данные базы
4. Используйте Исключительные ситуации, Exception. Польезно логировать их в вашей ситуации

  Ответить  
 
 автор: Trianon   (14.03.2014 в 21:07)   письмо автору
 
   для: drpan   (12.03.2014 в 15:47)
 

вот это вот
$settings_dir = "../settings";

- верно?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования