И снова здравствуйте! Есть простой движок на пхп и mysql - нужно реализовать автоматическую выплату WM. Поэтому вопрос (может кто сталкивался и знает про подводные камни) - есть ли хорошие api/классы для этой задачи и какой, собственно, аттестат нужно иметь чтобы была возможность автоматически производить выплаты ? Спасибо.
В вашем коде кроме пустого массива в сесию ничего не добавляется. Что вы там хотите увидеть?
а как тогда сделать, чет не соображу..
смысл в чем - изначально массив может быть пустой, но может в нем и есть чтото (1,2,3) например. Если есть событие POST , я проверяю in_array на наличие в массиве idшника, приходяшего с ПОСТ, и если его нет дописываю в конец массива.
Но вот что-то все никак не получаетсо)))
Это не си, и $fav_node это не массив переменных сессии, это совершенно другой массив. Все что вы добавите в массив $fav_node будет только там.
Всем привет!
Пытаюсь разобраться с PHP и написать небольшую утилиту.
Задача в следующем:
Когда я ввожу IP адрес в форму - в поле ip и нажимаю на кнопку получить mac, ip адрес передается в скрипт php(ssh.php) который используя ssh подключается к этому ip и вытаскивает mac.
Теперь вопрос - как мне по нажатию на кнопку получить данные и вставить их в форму mac?
В форме есть 5 полей, имя сервера, ip адрес, mac адрес, OS и Arch
все это планируется получать через ssh
Проще всего сделать чтобы скрипт с формой сам вставлял в поле мак данные если он их
получил. То есть у вас будет форма, в которой клацаешь на кнопку и она в том же файле обрабатывает ваши данные, а функция get_mac() возвращает результат и он вставляется потом в форму просто так:
То есть если вы просто открыли форму, то поле мак будет пустое, если отправили ип для проверки нажав на кнопку формы, то в поле мак должен будет мак отобразится.
INSERT INTO WTB (offer, contact) VALUES ('texttext_pole1','contact_pole2')
ERROR, , not added.texttext_pole1,contact_pole2
Данные видит, таблицу и поля видит, значения для таблицы видит. Но не добавляет.
Подозреваю, что чтото ненравится самой таблице и БД. Я в таблице поставил значение полей NULL(чтоб допускалось пустое значение для ненужных полей), но вот с полем ID с автоинкрементом такое не проходит. и туда ничего не пишется(это поле ведь должно само автодобавляться).
А не может ли быть такое, что надо ещё и логин пароль от БД прописывать в команде добавления строки?
Чтобы не гадать нужно сделать так mysqli_error($dbcon) там где у вас ошибка выводится и смотреть на вывод. В общем узнать, что бд не нравится при добавлении.
Добавил по крайнему совету , только вывел ещё и переменные
echo "<p>ERROR, ".mysqli_error().", not added.".$offer.",".$contact."</p>";
Выдаёт ошибку:
INSERT INTO WTB (offer, contact) VALUES ('','')
ERROR, , not added.texttext,name
При этом ведь присвоил
$offer=$_POST['info']; \\ данные из поля INFO
$offer=htmlspecialchars($offer);
$contact=$_POST['cont']; \\ данные из поля CONT
$contact=htmlspecialchars($contact);
Переменные из формы передаются(в текстовый файл ведь пишет), К базе подключается, таблицу находит, соответствующие поля в таблице видит.
Ведь не может же быть ошибки из-за того, что в таблице 10 полей с разными именами, а данные передать хочу только в два?
ПС! мне все зарезервированные команды sql* следует заменить на sqli ?
Да, лучше заменить на mysqli эквиваленты. Я когда код приводил, я там забыл совсем что в mysqli_real_escape_string первым аргументом идет ссылка на соединение (я сам ооп стилем пользуюсь, поэтому совсем про эту деталь забыл), может быть поэтом у вас пустые переменные в запросе получились.
Должно быть что-то вроде:
первая ошибка
ERROR, Unknown column 'WTB WTB WTB' in 'field list', not added.
WTBWTBWTB - это текст в текстовом поле.
----
Смысл скрипта таков, что в зависимости от нажатой кнопки добавлять в таблицу WTB или WTS.
Как я понял - ругается на попытку первое текстовое поле записать в соответствующий столбец,
СТолбцы имеют то же название, варчары, кол-во символов большое.
Скрипт говорит что нету такого поля 'WTB WTB WTB' в таблице, что странно, так как кавычки у вас в запрос есть. Кстати, mysql* уже не использует никто, пользуйтесь mysqli и еще перед добавлением текста делайте mysqli->real_escape_string. Сделайте вывод запроса перед добавлением чтобы было видно какой запрос вносится в базу, то есть:
По другому нельзя. PHP не вызывается из тела страницы как javascript. Вообщем вам почитать побольше нужно по этой теме: работа с бд и отправка данных из формы.
Там и пример есть. Суть в том что крон это такое приложение в памяти, которое в заданные интервалы времени запускает нужную программу/скрипт. Вот и все. Все остальное делает пользователь/разработчик. То есть у вас, например есть код, который загружает в базу данные из какого-то файла. Вы добавили его в крон и поставили чтобы он каждый понедельник выполнялся. Значит каждый понедельник этот скрипт себе молча запускаться будет. Если вы хотите чтобы он (скрипт) как-то оповещал вас о том что работа проделана, добавьте, например создание файла с текстом "Работа выполнена: (тут текущее время)". А на вики пример конфигурационного файла, который нужно создать чтобы крон по нему работал.
У вас тут каша из php и javascript. Не будет php код так выполняться. Вам нужно либо сделать форму, либо с помощью ajax обращаться к странице со скриптом, который будет данные в бд вносить.
например так (могут быть мелкие неточности и ошибки, но суть такова):
Сейчас mysql* функции не используются, нужно юзать либо PDO либо mysqli. А чтобы понять почему данные не добавились нужно выводить сообщение с информацией об ошибке: