Пришлось переделать mod-access-key так чтоб он запрашивал доступ на URL в базу.<br>Вот код<br><br> MYSQL *conn;<br> MYSQL_RES *res;<br> MYSQL_ROW row;<br> char *server = "localhost";<br> char *user = "root";<br>
char *password = "123";<br> char *database = "download";<br> unsigned int retint;<br> conn = mysql_init(NULL);<br> if (!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)) {<br>
ngx_log_error(NGX_LOG_INFO, r->connection->log, 0, "Error: %s\n",mysql_error(conn));<br> };<br><br> signed char *q_uri = (signed char *)r->unparsed_uri.data;<br> sprintf(query, "SELECT COUNT(*) AS CNT FROM DOWNS WHERE URI = RTRIM('%s')", q_uri);<br>
ngx_log_error(NGX_LOG_INFO, r->connection->log, 0, "EXECUTING: %s",query);<br> if (mysql_query(conn, query)) {<br> ngx_log_error(NGX_LOG_INFO, r->connection->log, 0, "Error: %s",mysql_error(conn));<br>
};<br> res = mysql_use_result(conn);<br> row = mysql_fetch_row(res);<br><br><b style="color: rgb(255, 0, 0);">Проблема:</b><br>никак не удается взать резултат из базы в переменную.<br><b>retint = (unsigned int)row[0];</b><br>
mysql_free_result(res);<br>
mysql_close(conn);<br>
<br>чтоб потом сделать простои IF.<br> <br> if (retint > 0)<br> {<br> return NGX_OK;<br> }<br> else<br> {<br> return NGX_HTTP_FORBIDDEN;<br> };<br>Все ето происходит на линуксе, пробовал и етот код работает на тестере (не модуль, просто апликация пишет на stdout)<br>
<br>За любую помощь буду очень благодарен,<br>С уважением,<br><br>