За последние 24 часа нас посетили 19484 программиста и 1601 робот. Сейчас ищут 1047 программистов ...

функция "mysql_real_escape_string" выдаёт ошибки!

Тема в разделе "PHP для новичков", создана пользователем Panich, 23 май 2011.

  1. Panich

    Panich Активный пользователь

    С нами с:
    10 май 2011
    Сообщения:
    548
    Симпатии:
    0
    Адрес:
    Ростов-Москва
    При использовании функции "mysql_real_escape_string"в файли проверки при сохранении пользователя1
    2
    3
    4
    5
    6
    7
    8
    9
    10 <?php
    if (isset($_POST['name']))
    {
    $name = mysql_real_escape_string($_POST['name']); //это пятая линия
    if ($name == '')
    {
    unset($name);
    }
    }
    ?>


    Выдаёт в окне браузера ошибки:
    Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in Z:\home\localhost\www\save_user.php on line 5

    Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in Z:\home\localhost\www\save_user.php on line 5

    Не могу разобраться в причине!
     
  2. Panich

    Panich Активный пользователь

    С нами с:
    10 май 2011
    Сообщения:
    548
    Симпатии:
    0
    Адрес:
    Ростов-Москва
    В причине разобрался!
    Перенёс подключение к базе данных(когда непосредственно необходимо было обращение к данным)в начало строки и всё заработало!
    Вот ещё проблема!
    при использовании скрипта для генерации кода:
    PHP:
    1. <?php
    2. $DOCUMENT_ROOT = $_SERVER["DOCUMENT_ROOT"];
    3. define("code_dir", "my_codegen/");
    4.  
    5.  
    6.  
    7. function generate_code()
    8. {            
    9.     $hours = date("H");      
    10.     $minuts = substr(date("H"), 0 , 1);
    11.     $mouns = date("m");              
    12.     $year_day = date("z");
    13.  
    14.     $str = $hours . $minuts . $mouns . $year_day;
    15.     $str = md5(md5($str));
    16.     $str = strrev($str);
    17.     $str = substr($str, 3, 6);
    18.    
    19.     $array_mix = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
    20.     srand ((float)microtime()*1000000);
    21.     shuffle ($array_mix);
    22.    
    23.     return implode("", $array_mix);
    24. }
    25. function img_code()
    26. {
    27. header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");                  
    28. header("Last-Modified: " . gmdate("D, d M Y H:i:s", 10000) . " GMT");
    29. header("Cache-Control: no-store, no-cache, must-revalidate");        
    30. header("Cache-Control: post-check=0, pre-check=0", false);          
    31. header("Pragma: no-cache");                                          
    32. header("Content-Type:image/png");
    33. $linenum = 2;
    34. $img_arr = array(
    35.                  "codegen.png",
    36.                  "codegen0.png"
    37.                 );
    38.  
    39. $font_arr = array();
    40. $font_arr[0]["fname"] = "verdana.ttf";
    41. $font_arr[0]["size"] = 16;
    42. $font_arr[1]["fname"] = "times.ttf";
    43. $font_arr[1]["size"] = 16;
    44.  
    45. $n = rand(0,sizeof($font_arr)-1);
    46. $img_fn = $img_arr[rand(0, sizeof($img_arr)-1)];
    47. $im = imagecreatefrompng (code_dir . $img_fn);
    48.  
    49. for ($i=0; $i<$linenum; $i++)
    50. {
    51. //рисуем линии
    52.     $color = imagecolorallocate($im, rand(0, 150), rand(0, 100), rand(0, 150));
    53.     imageline($im, rand(0, 20), rand(1, 50), rand(150, 180), rand(1, 50), $color);
    54. }
    55.  
    56. $color = imagecolorallocate($im, rand(0, 200), 0, rand(0, 200));
    57. imagettftext ($im, $font_arr[$n]["size"], rand(-4, 4), rand(10, 45), rand(20, 35), $color, code_dir.$font_arr[$n]["fname"], generate_code());
    58.  
    59. for ($i=0; $i<$linenum; $i++)
    60. {
    61.     $color = imagecolorallocate($im, rand(0, 255), rand(0, 200), rand(0, 255));
    62.     imageline($im, rand(0, 20), rand(1, 50), rand(150, 180), rand(1, 50), $color);
    63. }
    64.  
    65. ImagePNG ($im);
    66. }
    67.  
    68. img_code();
    69. ?>
    вводя данные в поле для ввода сгенерированного кода выдаёт,что код с картинки неверный введён,но запись в базу данных производится!
    Проверка ввода:
    PHP:
    1. if (!chec_code($_POST['code']))
    2.     {  
    3.     exit ("Вы неверно ввели код с картинки");
    4.     }
    поле для ввода самого кода с картинки:
    HTML:
    1. <td>
    2.         <input id="id_form_enter" class="validate[required,custom[noSpecialCaracters]" type="text" name="code" maxlength="20">     
    3.         </td></tr>
    4.         <tr><td colspan="2">
    5.         <img src="../znakomstva/code/my_codegen.php">    
    6.         </td>
    Как думаете в чём проблема?
     
  3. Alex_pac

    Alex_pac Активный пользователь

    С нами с:
    11 апр 2011
    Сообщения:
    285
    Симпатии:
    1
    Адрес:
    Россия, Тольятти
    Доступ закрыт для пользователя с именем ODBC , который подключается через хост localhost и пароль не использует

    ссылка на сервер не может быть объявлена
     
  4. Panich

    Panich Активный пользователь

    С нами с:
    10 май 2011
    Сообщения:
    548
    Симпатии:
    0
    Адрес:
    Ростов-Москва
    По первому вопросу разобрался уже!
    Вот втрой,где я скрипт выложил-что с этой проблемой делать может кто подсказать?
     
  5. Mamont

    Mamont Активный пользователь

    С нами с:
    5 дек 2010
    Сообщения:
    183
    Симпатии:
    0
    И где код с картинки сохранен?
     
  6. Panich

    Panich Активный пользователь

    С нами с:
    10 май 2011
    Сообщения:
    548
    Симпатии:
    0
    Адрес:
    Ростов-Москва
    Там же где и файл,который генерит код,а в отдельной папке фоновые подложки под код и шрифты для отображения кода!
    Но всё это находится отдельно от всех файлов самого сайта!