Хостинг серверов Minecraft playvds.com
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление
  3. Данный раздел создан исключительно для релизов! Вопросы по лаунчеру или обвязке задавайте ТОЛЬКО в соответсвующей теме автора. Любые другие темы будут удалены, а авторы понесут наказание.

Веб Web-интерфейс смены скинов

Тема в разделе "Веб-обвязки и лаунчеры", создана пользователем lol63, 5 окт 2011.

  1. SpitFire

    SpitFire Активный участник Пользователь

    Баллы:
    78
    Dragon_Knight, это пишет.
    Код:
    Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 3 in ololo\upload.php on line 25
    Как ты сказал не получается
     
    MineMan910 нравится это.
  2. Хостинг MineCraft
    <
  3. SpitFire

    SpitFire Активный участник Пользователь

    Баллы:
    78
    PHP:
    <html>
    <head>
      <title>Загрузка скинов на сервер</title>
    </head>
    <body>
    <?php
    //Коннекты к базе
    $dbhost "";
    $dbuser "";
    $dbpass "";
    $dbname "cauth";
    $docRoot getenv("DOCUMENT_ROOT");

    mysql_connect($dbhost$dbuser$dbpass);
    MYSQL_SELECT_DB($dbname);

        
    $pass_md5 md5($_POST['mcpass']);
        
    $pass_md1 substr($pass_md5033);

        
    // echo "Оригинальный: ".$_POST['mcpass']; //Тестовые
        // echo " MD5 PHP: ".$pass_md1;                //Тестовые
        
    if(!isset($_POST['mcname'])){die("Вы не ввели имя!");}
        if(!isset(
    $pass_md1)){die("Вы не ввели пароль!");}
        
    $sql mysql_query("SELECT password FROM users WHERE login='".$_POST['mcname']."'");
        
    $query mysql_result($sql,0);
        
    // echo " MD5 Query: ".$query;                //Тестовые
        
    if($query != $pass_md1){die("Такого аккаунта не существует, либо пароль введен не верно!");}

        
    $imageinfo getimagesize ($_FILES['filename']['tmp_name']);
        if(
    $_FILES['filename']['type'] != "image/png") {
            echo(
    "\nЭтот файл не в формате png!");
            exit;
        } elseif(
    $imageinfo['mime'] != 'image/png') {
            echo(
    "\nЭтот файл не в формате png!");
            exit;
        } elseif(
    $imageinfo["0"] != '64') {
            echo(
    "\nСкин должен быть размером 64x32!");
            exit;
        } elseif(
    $imageinfo["1"] != '32') {
            echo(
    "\nСкин должен быть размером 64x32!");
            exit;
        } elseif (!
    preg_match("/\.(png)$/i"$_FILES['filename']['name'])){
            echo(
    "\nУ вас нет прав на закачку файла!");
            exit;
        }
      if(
    is_uploaded_file($_FILES["filename"]["tmp_name"]))
      {
        
    move_uploaded_file($_FILES["filename"]["tmp_name"], "lolol\".$_POST['mcname'].".png");
        echo (" 
    Скин успешно обновлен!"); //
      }                                  //
    else
        {
          echo(" 
    Ошибка загрузки файла");
        }
    mysql_close();
    ?>
    <br>
    <br><input type="
    button" id="indexButton1" onclick="history.back();return false;" name="" value="Назад" style="position:absolute;width:96px;height:25px;font-family:Arial;font-size:13px;">
    </body>
    </html>
    Пытался и так и сяк. Да, я слишком корявый :)
     
  4. SpitFire

    SpitFire Активный участник Пользователь

    Баллы:
    78
    Теперь он обновляет скин на на любой ник, с паролем или без него.
     
  5. kosh

    kosh Старожил Пользователь

    Баллы:
    103
    Skype:
    ambassadorkosha
    потому что
    Код:
    $sql = mysql_query("SELECT password FROM users WHERE login='".$_POST['mcname']."'");
    возвращает "false" если в самом запросе ошибка(я опускаю варианты с проблемами доступа к базе и таблице)
    т.е. если запрос составлен правильно но юзера в базе не нашлось - $sql будет содержать "ссылку" на ресурс результата выполнения запроса и
    Код:
    if(!$sql) print "Логина не существует!";
    else
    {
    // весь код после запроса и до начало html тегов.
    }
    отработает "else" (в любом случае, есть пользователь или нет)

    предложение:
    PHP:
    $res mysql_query("SELECT password FROM users WHERE login='".$_POST['mcname']."';")
        or die(
    mysql_error());
    $sql mysql_fetch_array($res,1);            //Генерирует удобный массив из результата запроса
    if(empty($sql)) {                    //Если массив не пустой (это значит, что пара имя/пароль верная)
        
    print "Логина не существует!";
    } else {
        
    // весь код после запроса и до начало html тегов.
    }
     
    SpitFire нравится это.
  6. SpitFire

    SpitFire Активный участник Пользователь

    Баллы:
    78
    Работаит! Я щаслев и даволен ^^
     
  7. Draiget

    Draiget Активный участник Пользователь

    Баллы:
    78
    Skype:
    draiget
    Имя в Minecraft:
    Draiget
    Кто нибудь знает, новая мускуль или старая, принимает запросы только с с `` ?
    К примеру:

    Код:
    SELECT * FROM `table` SHERE `line`='bla-bla-bla' LIMIT 1 
    Сейчас у меня стоит: 5.0.92
     
  8. SpitFire

    SpitFire Активный участник Пользователь

    Баллы:
    78
    При неправильном вводе ника пишет
    Код:
    Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 3 in \upload.php on line 41
    Пароль не верен! 
     
  9. kosh

    kosh Старожил Пользователь

    Баллы:
    103
    Skype:
    ambassadorkosha
    да, вывод останавливается.. и в приведенном мною куске кода die отработает только в том случае если в запросе будет "ошибка" или "работа с базой будет невозможна", с "выхлопом" по какой причине прервано выполнение скрипта.. но в таком случае зачем продолжать выполнение скрипта?

    перечитал (мало ли, могло что-то изменится)
    кроме
    Код:
    Note:
    The link to the server will be closed as soon as the execution of the script ends, unless it's closed earlier by explicitly calling mysql_close(). 
    ничегошеньки по теме не встретил...
    "сие" означает, что открытое соединение с базой закрывается:
    а) автоматически после окончания выполнение скрипта
    б) при выполнении mysql_close()

    повторю еще раз:
    в Вашем случае if(!$sql) "выполнит" свое задуманное предназначение только в случае ошибки допущенной в формировании запроса или проблемы с доступом к базе, а не к отсутствию записи в таблицы.

    если запрос "выполняется" и:
    а) ни одна запись не соответствует условию запроса - $sql !не будет! равнятся "false"
    б) одна и более запись соответствует условию запроса - $sql !не будет! равнятся "false"

    следовательно и в одном и другом случае отработается "else"

    з.ы. "Так что делать нада как я сказал:" и "На работе нету сервера что-бы проверить..." у меня как-то не стыкуется..
     
  10. kosh

    kosh Старожил Пользователь

    Баллы:
    103
    Skype:
    ambassadorkosha
    и "с" и "без" работать должно
    `` - используют для явного указания, что содержимое стринг, а не зарезервированное название функции, переменная или еще что-то что может "исказить" то что "хочется" на то что "получится"
     
  11. kosh

    kosh Старожил Пользователь

    Баллы:
    103
    Skype:
    ambassadorkosha
    угу.. и в случае "проблем" мы получим:
    Код:
    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in test.php on line X

    замечательно...

    если у нас нет обмена данных с базой - скрипт не несет своей функции. и все "остальное" неважно.

    на вкус и цвет...
    з.ы. пишу скрипты по схеме
    • сбор/обработка информации
    • формирование вывода
    • вывод
    да, и "счетчики" бессмыслены...
     
  12. Draiget

    Draiget Активный участник Пользователь

    Баллы:
    78
    Skype:
    draiget
    Имя в Minecraft:
    Draiget
    Без `` выдает синтаксическую ошибку)
     
  13. SpitFire

    SpitFire Активный участник Пользователь

    Баллы:
    78
    Теперь работает :ОО
     
  14. kosh

    kosh Старожил Пользователь

    Баллы:
    103
    Skype:
    ambassadorkosha
    потому что table зарезервированное слово
     
    Сникерсни нравится это.
  15. kosh

    kosh Старожил Пользователь

    Баллы:
    103
    Skype:
    ambassadorkosha
    теперь подведите итог каким должен быть примерно правильно-работающий код по данной теме..
    надеюсь мои замечания хорошо запомнятся и будут направлять в нужную сторону решения задач в будущем..
     
  16. Draiget

    Draiget Активный участник Пользователь

    Баллы:
    78
    Skype:
    draiget
    Имя в Minecraft:
    Draiget
    Я table как пример привел, в запросе другие таблицы...
     
  17. kosh

    kosh Старожил Пользователь

    Баллы:
    103
    Skype:
    ambassadorkosha
    Вы привели пример - я объяснил в чем будет ошибка по этому примеру... откуда мне знать в на что ругается в "не примере"? может Вы матюк написали вместо имени таблицы?... :p

    хорошо.. пойдем сначала...
    вопрос (тупой/простой/но вынужденный):
    SHERE? (я понадеялся что это просто очепятка на форуме)
     
    ВремяПриключений нравится это.
  18. Draiget

    Draiget Активный участник Пользователь

    Баллы:
    78
    Skype:
    draiget
    Имя в Minecraft:
    Draiget
    Опечатка) Я имел ввиду WHERE...
     
  19. kosh

    kosh Старожил Пользователь

    Баллы:
    103
    Skype:
    ambassadorkosha
    запрос где?
     
  20. DYLAN31

    DYLAN31 Активный участник

    Баллы:
    63
    Помогите

    Warning: mysql_result(): supplied argument is not a valid MySQL result resource in C:\OLOLO\31world.dyndns.org\www\upload.php on line 25

    Такого аккаунта не существует, либо пароль введен не верно!

     
    Сникерсни и slavik123123123 нравится это.
  21. Автор темы
    lol63

    lol63 Модератор Переводчик

    Баллы:
    153
    Путь к папке можно и не знать, достаточно указать переменную $docRoot ;)
     

Поделиться этой страницей