Нужна помощь в PHP

Discussion in 'PHP' started by Guno7, 8 Feb 2017.

  1. Guno7

    Guno7 Banned

    Joined:
    22 Dec 2016
    Messages:
    13
    Likes Received:
    0
    Reputations:
    0
    Здравствуйте, уважаемые форумчане. Создавал одну программку, которая через post отсылает данные о пк. Так вот. Мой PHP скрипт не записывает post данные в бд. В чем может быть проблема?
    <?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 "Такая запись уже существует!";
    }


    ?>
     
  2. st55

    st55 Level 8

    Joined:
    20 Apr 2016
    Messages:
    195
    Likes Received:
    341
    Reputations:
    47
    Есть ли какие-нибудь ошибки?
     
  3. Guno7

    Guno7 Banned

    Joined:
    22 Dec 2016
    Messages:
    13
    Likes Received:
    0
    Reputations:
    0
    Никаких ошибок нету. Данные просто не записываются в бд. Хотя до того, как сменил бд, все работало.
     
  4. Guno7

    Guno7 Banned

    Joined:
    22 Dec 2016
    Messages:
    13
    Likes Received:
    0
    Reputations:
    0
    Никаких ошибок нету. Данные просто не записываются в бд. Хотя до того, как сменил бд, все работало.
     
  5. winstrool

    winstrool ~~*MasterBlind*~~

    Joined:
    6 Mar 2007
    Messages:
    1,413
    Likes Received:
    910
    Reputations:
    863
    Включите в шапке вот этот код и смотрите на ошибки, там по большей части что то должно проясниться:
    PHP:
    ini_set('error_reporting'E_ALL);
    ini_set('display_errors'1);
    ini_set('display_startup_errors'1);
     
    _________________________
  6. Guno7

    Guno7 Banned

    Joined:
    22 Dec 2016
    Messages:
    13
    Likes Received:
    0
    Reputations:
    0
    Пробовал. Ничего не выходит. Может дело в скрипте?
     
  7. Guno7

    Guno7 Banned

    Joined:
    22 Dec 2016
    Messages:
    13
    Likes Received:
    0
    Reputations:
    0
    Пытался в консоле MySQL из phpmyadmin выполнить такой же код. Выдается ошибка
    #1062 - Дублирующаяся запись '' по ключу 'os'
    Что это значит?
     
  8. VY_CMa

    VY_CMa Green member

    Joined:
    6 Jan 2012
    Messages:
    917
    Likes Received:
    492
    Reputations:
    724
    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
     
    _________________________
    Guno7 likes this.
  9. Guno7

    Guno7 Banned

    Joined:
    22 Dec 2016
    Messages:
    13
    Likes Received:
    0
    Reputations:
    0
    Спасибо. У меня раньше так работало. Сможете исправить мой скрипт? Заранее спасибо
     
  10. Guno7

    Guno7 Banned

    Joined:
    22 Dec 2016
    Messages:
    13
    Likes Received:
    0
    Reputations:
    0
    Ребята всем спасибо. Справился