-
Posts
214 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Store
Everything posted by Kompilator
-
Ну это не ко мне вопрос =). Спасибо.
-
Именно из этого примера я и сделал свой код удалив комментарии и ИФы.
-
Нет, ради интереса сделайте страничку и попробуйте. Сама инструкция пишется bind_param , а не bindparam, пропущено нижнее подчёркивание. И первым аргументом обязательно указывать тип переменной: i,b,d или s. А вот этот код работает: $mysqli = new mysqli('localhost', 'u1084818_bikel', '***', 'u1084818_bikel'); if ($mysqli->connect_errno) {exit('Error connect: ' . $mysqli->connect_error);} $stmt = $mysqli->prepare('insert into comment(id) value (?)'); $i = 88; $stmt->bind_param('i', $i); $stmt->execute(); $stmt->close();
-
C записью разобрался, сижу с 9-ти утра и всё из-за того, что в сети полно некорректных примеров, в том числе и в предыдущем сообщении. Кстати этот пример дали в этом сообщении - http://htmlforum.ru/index.php?showtopic=53757&p=360941 , ссылка ведёт на с виду уважаемый ресурс http://php.net, на котором опубликован нерабочий пример, который в свою очередь отнял у меня пол дня времени.
-
Понимаю, что это смешно, но третий час бьюсь и не могу вставить в таблицу два значения. Уже отпала охота переходить на mysqli и оставаться на mysql. Перепробовал кучу примеров из интернета, ни одни не пишет ничего в базу. Вот два из них: <?php $mysqli = new mysqli('localhost', 'u1084818_bikel', '***', 'u1084818_bikel'); if (mysqli_connect_errno()) { printf("Подключение невозможно: %s\n", mysqli_connect_error()); exit(); } else {} //$stmt = $mysqli->prepare("INSERT INTO comment (id, userid) VALUES (?,?,)") or die($this->db->error); //$stmt->bind_param('ss', $code, $language); //$code = '1'; //$language = '2'; //$stmt->execute(); $stmt = $dbh->prepare("INSERT INTO comment (id, userid) VALUES (:name, :value)"); $stmt->bindParam(':name', $name); $stmt->bindParam(':value', $value); $name = 'one'; $value = 1; $stmt->execute(); $stmt->close(); $mysqli->close(); ?> На листинге 2 обращения, 1-закомментировано, 2-е нет, ни одно не работает. — Может быть что бы заработал этот код, надо доустановить какие нибудь модули ?
-
Почитал инфу и решил делать таки подготовленными выражениями. И как водится, сразу, прямо в первой строчке ошибка - Access denied for user 'u1084818'@'localhost' (using password: YES) $mysqli = new mysqli('localhost', 'u1084818', '***', '***'); Скопировал строку соединения с базой данных, вставил к себе. Подставил свои значения пароля, имени базы и юзера (юзера в MySQL не было, может в нем проблема), локалхост не знаю что такое, но видимо без изменения везде. Значения скопировал из работающего соединения. — Кто ж знал, что название базы, это и есть имя юзера. Вроде соединился. Теперь не могу записать 1 байт в таблицу, в примерах везде разный синтаксис, и так и сяк пробую, никак пока.
-
Скорее всего. Напомните, вроде Вы писали какую то инструкцию, через которую надо прогонять текст, что бы с кодировкой не было проблем. — И вот ещё. Если пытаюсь в комментарии поставить знак одинарной кавычки - ', база ругается - "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '15.09.05')' at line 1". upd: с этим разобрался экранированием спец симфолов - mysql_escape_string — А если все переменные пришедшие через GET прогнать сквозь - mysql_escape_string ? безопасность такая как в SafeMySQL не достигнется ?
-
Воспользовавшись SafeMySQL можно будет убрать проверку на допустимость вводимых символов ? например в связке 'логин - пароль', а то регулярное выражение /^[a-zA-Zа-яА-ЯёЁ0-9_-]{3,16}$/ толком не работает.
-
Спасибо. Скажите, почему советуете именно SafeMySQL, а не подготовленные запросы ?
-
Что-то после 15 часов писания уже туплю. Мне надо сделать как в коде ниже, при помощи подготовленных запросов и проблем не будет ? <?php$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");$stmt->bindParam(':name', $name);$stmt->bindParam(':value', $value);// вставим одну строку$name = 'one';$value = 1;$stmt->execute();// теперь другую строку с другими значениями$name = 'two';$value = 2;$stmt->execute();?>
-
Значит может другой навредить. Как избежать такого вреда ? — Попробовал - /^[a-zA-Zа-яА-ЯёЁ0-9_-]{3,16}$/ , с исправлением вообще не проходят русские буквы.
-
А что, можно вот таким образом удалить у меня базу данных ? В самом начале пробовал, что-то не сросталось, попробую ещё раз.
-
Вижу, кто-то создал логин - "-- DROP database". В регулярном выражении пробелы же не разрешены - /[a-zA-Zа-яА-ЯёЁ0-9_-]{3,16}/ Одна головная боль с ними ((((((((((((((((
-
Попробуйте кто нибудь пожалуйста зарегистрироваться, потом войти в учетку и выйти из неё, если не трудно. http://велосвет.рф/compare.html?idright=32&idleft=32&navmenur=Kompilatorright&navmenul=Kompilatorleft&resimg=3&stat=&scrtop=450 Как оно, работает на ваш взгляд нормально ? Спасибо.
-
/^[а-яА-ЯёЁ0-9_-]{3,16}$/Не работают русские буквы в регулярном выражении. если заменить а-яА-Я (пробовал а-яА-ЯёЁ) на a-zA-Z, то латиница работает. — Достиг - /[a-zA-Zа-яА-ЯёЁ0-9_-]{3,16}/ , так работоспособность настала. Прямо ужас какойто, не могли этот ПХП попроще написать, например пишешь строку - проверка корректности логина как и у всех, ан раз и готово.
-
Спасибо, Вы спасли комментарии на моём сайте. Работает.
-
Задача создать учетную запись в базе, логин и пароль. В адресной строке GET передаёт свою инфу, т.е. "login=test#test", знак # там есть, но уже в ПХП, всё что после него, не работает. Код: echo $_GET['loginreg'];выведет только - test, всё что после # теряется.
-
Решил сделать регулярными выражениями. Начал играться разными символами и обнаружил, что - # вообще не передаётся методом GET, и всё что после него было в переменной, пропадает. Как же тогда быть, если для проверки в PHP строку даже нельзя полностью передать в случае присутствия там - # ? — Обнаружилось что и - &, + тоже не передаются. Как же быть ? Отказываться от создания комментариев значит придётся ((((( а уже столько написано для них, очень жаль.
-
Спасибо. Верно ли я понял, что функции - mysql_real_escape_string, мне будет достаточно ?
-
Cпасибо. Посоветуйте, нужен ли какой нибудь фильтр символов вводимых пользователем при регистрации ? На многих сайтах говорится о допустимых символах, почему ? Я пытался вводить в свою форму типа - "№;%::??*((?&^%$#@", всё проходит, ПХП ошибок не даёт. Зачем спрашивается требуют такое ?
-
Моё почтение в очередной, далеко, очень далеко не в последний раз. Начинаю делать комменты в сервисе сравнения фар. Как эффективнее всего бороться с длинной, неразрывной (безпробельной) строкой ? Кто нибудь обязательно такую напишет и будет она у меня торчать за пределы всех дивов, и даже, не побоюсь этого слова - самой границы экрана.
-
В общем, надо учить мат.часть. Вынес эту функцию в отдельный блок <script>...</script> и она перестала вносить помехи в работу других.
-
Как я понимаю, при загрузке страницы должен сработать скрипт позиционирования прокрутки. Я строку - window.scrollTo(0,<?php echo $_GET['scrtop'];?>); вставил в функцию, которая выполняется сразу после загрузки. startList = function allclose() { window.scrollTo(0,<?php echo $_GET['scrtop'];?>); for (i=0; i < id_menu.length; i++){ document.getElementById(id_menu[i]).style.display = "none"; if ((id_menu[i]) == "<?php echo $navmenul;?>") { document.getElementById(id_menu[i]).style.display = "block"; } if ((id_menu[i]) == "<?php echo $navmenur;?>") { document.getElementById(id_menu[i]).style.display = "block"; } } }window.onload=startList;Эта функция закрывает все открытые пункты меню, но после вставки, функция закрытия перестаёт работать. Подскажите куда строку скролла вставить, что бы не мешала работе function allclose() ?
-
Воистину Вы умнейший из мудрецов ! Спасибо, всё теперь работает. Теперь при выборе различных моделей/размера картинки, после перезагрузки, страница не прыгает в начало. Создаётся иллюзия, будто она не перезагружается, а изменения происходят в текущей.