B
B
Bobur Bakhritdinov2015-12-11 14:47:03
MySQL
Bobur Bakhritdinov, 2015-12-11 14:47:03

PHP script, problem solving?

Help solve the problem, using this form, you need to add data to the database, according to the selected parameters in php

<script src="js/signup.js"> </script>


 <form  action="order.php"  id="orderPage" method="post">
<table width="80%" cellspacing="7" cellpadding="0" border="0" align="center">
   <tbody>
   
    <tr>
  <td style="padding: 0px;">
     <input type="hidden"  name="order_users"  value="<?=$order_users["name"];?>">
    </td><td>
   </td></tr>
    <tr>
    <td style="padding: 0px;">
     <input type="hidden"  name="order_status"  value="<?=$order_status = "send";?>">
    </td><td>
   </td></tr>

   <?=$friends?>
   <tr>
    <td class="ta_r">
     <span class="grey"><?=$language['order_fname'];?>:</span>
    </td>
    <td style="padding: 0px;">
     <input type="text" style="margin: 0px;" size="50"  name="order_fname" class="inputText" value="">
    </td><td>
   </td></tr>
   
   <tr>
    <td class="ta_r">
     <span class="grey"><?=$language['order_cat'];?>:</span>
    </td>
    <td style="padding: 0px;">
      <select size="2" name="order_cat" style="width:20%;">
          <option value="cat_films" selected="selected">Фильмы
                    <option value="cat_serials">Сериалы
            </select>
    </td><td>
   </td></tr>
   
   <tr>
    <td class="ta_r">
     <span class="grey"><?=$language['order_date'];?>:</span>
    </td>
    <td style="padding: 0px;">
     <input type="date" style="margin: 0px;" size="25"  name="order_date" class="inputText" value="">
    </td>
   </tr>
   
    <tr>
    <td class="ta_r">
     <span class="grey"><?=$language['order_formate'];?>:</span>
    </td>
    <td style="padding: 0px;">
      <select size="4" name="order_formate" style="width:20%;">
          <option value="order_320p" selected="selected">320p
                    <option value="order_720p">720p
                    <option value="order_1024p">1024p
                    <option value="order_hd">Full HD
            </select>
    </td><td>
   </td></tr>
   
   
   
    <tr>
    <td class="ta_r">
     <span class="grey"><?=$language['order_about'];?>:</span>
    </td>
    <td style="padding: 0px;">
     <textarea cols="50" rows="9" name="order_about" value=""></textarea>
    </td>
   </tr>
   

   <tr>
    <td>
     &nbsp;
    </td>
    <td>
<div style="height: 20px; margin: 5px 0px;">
  <input style="background-color: #FF0000;" type="submit" value="<?=$language['order_send'];?>" >
</div>

    </td>
   </tr>
  

  </tbody></table>

  </form>

Task:
Check $order_fname and $order_about for correctness and add to the database.
<?
//Подключаем главный системный файл
require 'system/init.php';
//Заголовок
head("Стол заказов");
begin_frame();
msg("Заполните форму для заказа фильмов");

//Проверка авторизации
is_login();
//Определяем номер пользователя
$id = (int)$_GET['id'];

//Выполняем запрос к базе данных
$select_user = $db->query("SELECT name FROM users WHERE id='".$db->safesql($id)."'");		
$order_users = mysql_fetch_array($select_user);
  
  
  
/////////////////////////////////////////////////////////////////////
//Обработка данных
/////////////////////////////////////////////////////////////////////

if(isset($_POST['submit']))
{
  $err = array();
  
  /*Проверяем мин и макс символов название фильма*/
    if(strlen($_POST['order_fname']) < 3 or strlen($_POST['order_fname']) > 50)
    {
        $err[] = "Название фильма должен быть не меньше 3-х символов и не больше 50";
    }
  /*Проверяем мин и макс символов описание фильма*/
    if(strlen($_POST['order_about']) < 6 or strlen($_POST['order_about']) > 150)
    {
        $err[] = "Описание фильма должен быть не меньше 6-х символов и не больше 150";
    }

  
    # проверяем, не сущестует ли фильм с таким именем    
  $dbquery = $db->query("SELECT COUNT(id) FROM order WHERE fname='".mysqli_real_escape_string($_POST['order_fname'])."'");
    if(mysqli_num_rows($dbquery) > 0)
    {
        $err[] = "Уже заказали данной фильм, ждите одобрения администратора сайта.";
    }

    # Если нет ошибок, то добавляем в БД нового заявку
    if(count($err) == 0)
    {        
    $order_users  = trim($_POST['order_users']); //Пользователи
    $order_status  = trim($_POST['order_status']); // Статус заявки
    $order_fname  = trim($_POST['order_fname']); //Название фильма
    $order_cat  = trim($_POST['order_cat']); // Каталог
                $cat_films  = trim($_POST['cat_films']); // Каталог фильмов		
                $cat_serials  = trim($_POST['cat_serials']); // Каталог сериалов		
    $order_date  = trim($_POST['order_date']); // Год выпуска
    $order_formate  = trim($_POST['order_formate']); // Формат, качество фильма
                $order_320p  = trim($_POST['order_320p']); // Формат, качество фильма
                $order_720p  = trim($_POST['order_720p']); // Формат, качество фильма
                $order_1024p  = trim($_POST['order_1024p']); // Формат, качество фильма
                $order_hd  = trim($_POST['order_hd']); // Формат, качество фильма
    $order_about  = trim($_POST['order_about']); // Отзывы о фильм
      
     $db->query("INSERT INTO order (users , status , fname , cat , date , formate, about) VALUES ('".$db->safesql($order_users)."' , '".$db->safesql($order_status)."' , '".$db->safesql($order_fname)."' , '".$db->safesql($order_cat)."', '".$db->safesql($order_date)."', '".$db->safesql($order_formate)."', '".$db->safesql($order_about)."'" );
     echo "<p>Заявка успешно отправлен на обработку<br/></p>";
     header("Location: index.php"); exit();
    }
    else
    {
        print "<b>При отправке заявку произошли следующие ошибки:</b><br>";
        foreach($err AS $error)
        {
            print $error."<br>";
        }
    }
}
?>

Answer the question

In order to leave comments, you need to log in

2 answer(s)
B
Bobur Bakhritdinov, 2015-12-12
@bakhritdinov_b

I solved the problem myself, the global variable $USER stored all user sessions and the reason for sending the request without result was the conditions
I changed to

$if($_POST){
и здесь реализовал задачу + добавил уведомления по ЛС и электронной почте после обработки заявка.
}

M
MetaDone, 2015-12-11
@MetaDone

I recognize the handwriting of the shitcoder
, you can immediately see which "master" you learned from

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question