Nicolaschess
Новичок
Доброго времени суток, уважаемые!
Не сплю ночами, перелопатил интернет...но ответа не могу найти. фиговенький из меня программер-да и вообще не программер
Суть:
Есть опросник, в котором за правильные ответы плюсуются и минусуются баллы,
к нему уже прикручено определение IP
<?php
require_once('config.php');
if (!isset($conid)) {
function dbconnect() {
$mysql=mysql_connect(DB_HOST, DB_USER, DB_PASS); //хост, логин, пароль
mysql_select_db(DB_NAME); //имя базы данных
return $mysql;
}
function dbquery ($sql) { return mysql_query($sql,get_conid()); }
function dbrows ($result) { return mysql_num_rows($result); }
function dbfree ($result) { mysql_free_result($result); }
function dbclose ($conid) { mysql_close(get_conid()); }
function dbfetcha ($result) {
if ($row=mysql_fetch_assoc ($result)) return $row;
else return false;
}
function dbfetch ($result){
if ($row=mysql_fetch_array($result)) return $row;
else return false;
}
function get_conid () {
static $conid=0;
if ($conid==0) {
$conid=dbconnect();
mysql_set_charset (DB_ENCODING,$conid);
}
return $conid;
}
get_conid ();
}
function get_ip () {
if( getenv('HTTP_X_FORWARDED_FOR') != '' ) {
$client_ip = ( !empty($_SERVER['REMOTE_ADDR']) ) ? $_SERVER['REMOTE_ADDR'] :
( ( !empty($_ENV['REMOTE_ADDR']) ) ? $_ENV['REMOTE_ADDR'] : $REMOTE_ADDR );
$entries = explode(',', getenv('HTTP_X_FORWARDED_FOR'));
reset($entries);
while (list(, $entry) = each($entries)) {
$entry = trim($entry);
if ( preg_match("/^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/", $entry, $ip_list) ) {
$private_ip = array('/^0\./', '/^127\.0\.0\.1/', '/^192\.168\..*/',
'/^172\.((1[6-9])|(2[0-9])|(3[0-1]))\..*/', '/^10\..*/', '/^224\..*/', '/^240\..*/');
$found_ip = preg_replace($private_ip, $client_ip, $ip_list[1]);
if ($client_ip != $found_ip) {
$client_ip = $found_ip;
break;
}
}
}
}
else {
$client_ip = ( !empty($_SERVER['REMOTE_ADDR']) ) ? $_SERVER['REMOTE_ADDR'] :
( ( !empty($_ENV['REMOTE_ADDR']) ) ? $_ENV['REMOTE_ADDR'] : $REMOTE_ADDR );
}
return $client_ip;
}
?>
--------------------------------------------------------------------------------------------------------------------------------------------------
Прикладываю файлик для примера минусации:
<?php
require_once 'functions2.php';
$balM = intval(strip_tags(trim($_POST['balM'])));
$mov = mysql_real_escape_string(strip_tags(trim($_POST['move'])));
$ip = get_ip();
$result = dbquery('select * from '.DB_TABLE.' where ip="'.$ip.'" limit 0,1');
if ($result and dbrows($result)) {
$note = dbfetcha($result);
$note['cnt'] -= $balM;
if ($note['mov']!=$mov) { //не минусовать повторно за неверные
$result = dbquery('update '.DB_TABLE.' set cnt = "'.$note['cnt'].'", mov = "'.$mov.'" where ip = "'.$ip.'"');
if (!$result) die ('Invalid query 1: ' . mysql_error());
}
}
else {
$result = dbquery('insert into '.DB_TABLE.' (ip, cnt) values ("'.$ip.'", "'.(0-$balM).'")');
if (!$result) die ('Invalid query 2: ' . mysql_error());
}
?>
файл конфиг прописан, к БД на phpmyadmin подрубился, вывод данных тоже сделал
то есть по сути, фиговина рабочая, спасибо просторам интернета
Я пытался вытащить инфу из сессии и записать вместе с $login , но вообще не пашет
Пытался связать таблицы через Связи в phpmyadmin, но увы, что то пошло не так
Есть предложения, прощу помощи! штука оч нужная, уверяю
ЗЫ: форма регистрации и сам сайтыч на wordpress
Не сплю ночами, перелопатил интернет...но ответа не могу найти. фиговенький из меня программер-да и вообще не программер
Суть:
Есть опросник, в котором за правильные ответы плюсуются и минусуются баллы,
к нему уже прикручено определение IP
<?php
require_once('config.php');
if (!isset($conid)) {
function dbconnect() {
$mysql=mysql_connect(DB_HOST, DB_USER, DB_PASS); //хост, логин, пароль
mysql_select_db(DB_NAME); //имя базы данных
return $mysql;
}
function dbquery ($sql) { return mysql_query($sql,get_conid()); }
function dbrows ($result) { return mysql_num_rows($result); }
function dbfree ($result) { mysql_free_result($result); }
function dbclose ($conid) { mysql_close(get_conid()); }
function dbfetcha ($result) {
if ($row=mysql_fetch_assoc ($result)) return $row;
else return false;
}
function dbfetch ($result){
if ($row=mysql_fetch_array($result)) return $row;
else return false;
}
function get_conid () {
static $conid=0;
if ($conid==0) {
$conid=dbconnect();
mysql_set_charset (DB_ENCODING,$conid);
}
return $conid;
}
get_conid ();
}
function get_ip () {
if( getenv('HTTP_X_FORWARDED_FOR') != '' ) {
$client_ip = ( !empty($_SERVER['REMOTE_ADDR']) ) ? $_SERVER['REMOTE_ADDR'] :
( ( !empty($_ENV['REMOTE_ADDR']) ) ? $_ENV['REMOTE_ADDR'] : $REMOTE_ADDR );
$entries = explode(',', getenv('HTTP_X_FORWARDED_FOR'));
reset($entries);
while (list(, $entry) = each($entries)) {
$entry = trim($entry);
if ( preg_match("/^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/", $entry, $ip_list) ) {
$private_ip = array('/^0\./', '/^127\.0\.0\.1/', '/^192\.168\..*/',
'/^172\.((1[6-9])|(2[0-9])|(3[0-1]))\..*/', '/^10\..*/', '/^224\..*/', '/^240\..*/');
$found_ip = preg_replace($private_ip, $client_ip, $ip_list[1]);
if ($client_ip != $found_ip) {
$client_ip = $found_ip;
break;
}
}
}
}
else {
$client_ip = ( !empty($_SERVER['REMOTE_ADDR']) ) ? $_SERVER['REMOTE_ADDR'] :
( ( !empty($_ENV['REMOTE_ADDR']) ) ? $_ENV['REMOTE_ADDR'] : $REMOTE_ADDR );
}
return $client_ip;
}
?>
--------------------------------------------------------------------------------------------------------------------------------------------------
Прикладываю файлик для примера минусации:
<?php
require_once 'functions2.php';
$balM = intval(strip_tags(trim($_POST['balM'])));
$mov = mysql_real_escape_string(strip_tags(trim($_POST['move'])));
$ip = get_ip();
$result = dbquery('select * from '.DB_TABLE.' where ip="'.$ip.'" limit 0,1');
if ($result and dbrows($result)) {
$note = dbfetcha($result);
$note['cnt'] -= $balM;
if ($note['mov']!=$mov) { //не минусовать повторно за неверные
$result = dbquery('update '.DB_TABLE.' set cnt = "'.$note['cnt'].'", mov = "'.$mov.'" where ip = "'.$ip.'"');
if (!$result) die ('Invalid query 1: ' . mysql_error());
}
}
else {
$result = dbquery('insert into '.DB_TABLE.' (ip, cnt) values ("'.$ip.'", "'.(0-$balM).'")');
if (!$result) die ('Invalid query 2: ' . mysql_error());
}
?>
файл конфиг прописан, к БД на phpmyadmin подрубился, вывод данных тоже сделал
то есть по сути, фиговина рабочая, спасибо просторам интернета
НО
Необходимо теперь прикрутить к этому всему уже готовую форму регистрации, то есть сама форма и база данных зарегистрированных уже есть, но необходимо чтобы результат их деяний(заработанные баллы) был в одной строке с их ником(ID или ФИО), которые также уже заносятся в базу
Я пытался вытащить инфу из сессии и записать вместе с $login , но вообще не пашет
Пытался связать таблицы через Связи в phpmyadmin, но увы, что то пошло не так
Есть предложения, прощу помощи! штука оч нужная, уверяю
ЗЫ: форма регистрации и сам сайтыч на wordpress