Здравствуйте, уважаемые форумчане. Создавал одну программку, которая через post отсылает данные о пк. Так вот. Мой PHP скрипт не записывает post данные в бд. В чем может быть проблема? Spoiler: Код <?php $host="localhost"; $user="user"; $pass="pass"; //установленный вами пароль $db_name="db"; $username=$_POST['username']; $pcname=$_POST['pcname']; $ram=$_POST['ram']; $os=$_POST['os']; $osversion=$_POST['osversion']; $platform=$_POST['platform']; $sysdir=$_POST['sysdir']; $windir=$_POST['windir']; $currdir=$_POST['currdir']; $link=mysql_connect($host,$user,$pass); mysql_select_db($db_name,$link); $connect_db = mysql_connect("localhost", "user", "pass"); mysql_select_db("db", $connect_db); $posts = mysql_query("SELECT * FROM users", $connect_db); $sql=mysql_query("UPDATE users SET id = '".$posts."'+1 "); $ip=getenv("REMOTE_ADDR"); $status=$_POST['status']; $sql=mysql_query("UPDATE users SET status = 'offline' WHERE id ='".$posts."'+1 "); if ($status=="1") { $sql=mysql_query("UPDATE users SET status = 'online' WHERE id ='".$posts."'+1 "); } else { if ($status=="0") { $sql=mysql_query("UPDATE users SET status = 'offline' WHERE id ='".$posts."'+1 "); } else { $sql=mysql_query("UPDATE users SET status = 'unknown' WHERE id ='".$posts."'+1"); } } //if (isset($_GET['os'])) { } mysql_query("SET NAMES `UTF-8`"); mysql_set_charset('utf8'); $sql = "SELECT username FROM users WHERE username = '".$username."'"; $result = mysql_query($sql); if(mysql_num_rows($result)==0){ $sql = "SELECT ip FROM users WHERE ip = '".$ip."'"; $result = mysql_query($sql); if(mysql_num_rows($result)==0){ $sql = mysql_query("INSERT INTO `users` (`platform`, `username`,`pcname`, `os`,`osversion`, `windir`,`sysdir`, `currdir`) VALUES ('".$_POST['platform']."','".$_POST['username']."','".$_POST['pcname']."','".$_POST['os']."','".$_POST['osversion']."','".$_POST['windir']."','".$_POST['sysdir']."','".$_POST['currdir']."',)"); } //Если вставка прошла успешно if ($sql) { echo "<p>Данные успешно добавлены в таблицу.</p>"; } else { echo "<p>Произошла ошибка.</p>"; } }else{ echo "Такая запись уже существует!"; } ?>
Включите в шапке вот этот код и смотрите на ошибки, там по большей части что то должно проясниться: PHP: ini_set('error_reporting', E_ALL);ini_set('display_errors', 1);ini_set('display_startup_errors', 1);
Пытался в консоле MySQL из phpmyadmin выполнить такой же код. Выдается ошибка #1062 - Дублирующаяся запись '' по ключу 'os' Что это значит?
1) $posts = mysql_query("SELECT * FROM users", $connect_db); - возвращает не данные, а ссылку на ресурс. 2) $sql=mysql_query("UPDATE users SET id = '".$posts."'+1 "); - так нельзя, поскольку $posts - смотри пункт 1 3) SQL Inj. Смотри документацию mysql_real_escape_string