2016-01-09 4 views
1

Я хочу спросить об этом коде .. им начиная с PHP и MYSQL и я не могу понял, почему это обыкновение INSERT INTO дб даже если им связано с ..PHP - вставка данных в базу данных

В основном PHP код оленья кожа работа после "не ВВЕСТИ" я не ПРИЕЕ сообщения, ничего .. Спасибо за каждую помощь

add_post.php:

<form> 
    <div class="form-group"> 
    <label for="post_title">title</label> 
    <input type="text" class="form-control" id="post_title" name="title"/> 
    </div> 
    <div class="form-group"> 
    <label for="post_video">video</label> 
    <input type="text" class="form-control" id="post_video" name="video"/> 
    </div> 
    <div class="form-group"> 
    <label for="post_content">content</label> 
    <textarea rows="10" id="post_content" class="form-control" name="content"></textarea> 
    </div> 
    <div class="form-group"> 
    <label for="file_input">file input</label> 
    <input type="file" id="file_input" name="image"> 
    <p class="help-block">Max upload file is 5MB.</p> 
    </div> 
    <button class="btn btn-default" name="submit">Submit</button> 
</form> 

<?php 
    include('connect.php'); 

    if(isset($_POST['submit'])){ 

     $post_title = $_POST['title']; 
     $post_date = date('d-m-y'); 
     $post_video = $_POST['video']; 
     $post_content = $_POST['content']; 
     $post_image = $FILES['image']; 

     if(empty($post_title) || empty($post_content)) { 
      echo "<script>alert('title or content is empty')</script>"; 
     } 
     else { 
      move_uploaded_file($post_image,"image/uploads/$post_image"); 

      $insert_query = "INSERT INTO post (title, image, content, video) VALUES (
       '$post_title', 
       '$post_image', 
       '$post_content', 
       '$post_video')"; 

      if(mysqli_query($db, $insert_query)) { 
       echo "<center><h1>post published successfuly</h1></center>"; 
      } 
     } 

    } 
?> 

connect.php (для C9.com):

<?php 
    // A simple PHP script demonstrating how to connect to MySQL. 
    // Press the 'Run' button on the top to start the web server, 
    // then click the URL that is emitted to the Output tab of the console. 

    $servername = getenv('IP'); 
    $username = getenv('C9_USER'); 
    $password = ""; 
    $database = "portfolio"; 
    $dbport = 3306; 

    // Create connection 
    $db = new mysqli($servername, $username, $password, $database, $dbport); 

    // Check connection 
    if ($db->connect_error) { 
     die("Connection failed: " . $db->connect_error); 
    } 
?> 

дБ скриншоты:

enter image description hereenter image description here

+1

его '$ _FILES' не' $ FILES' –

+0

Хорошо, спасибо за это, но все равно не сэкономить на db .. все еще не работает эхо-тексты, ничего – liborza

+0

ваши отсутствующие несколько элементов здесь, посмотрите http://php.net/manual/en/ features.file-upload.php –

ответ

2

Я думаю, вы должны использовать атрибут "метод" в вашем в этом случае:

<form method="post"> 

Поскольку метод по умолчанию - get, и, как я вижу, вы ожидаете получить данные $ _POST. Надеюсь, это поможет

+0

это не все, что ему не хватает в элементе формы. –

+1

Я люблю у человека .. haha ​​ Да, это была проблема .. Я был глуп, что все еще проверяю PHP-код, и проблема была «МЕТОД» в HTML-форме – liborza

+0

@Dagon: Он прав с этим .. его работа я имею в виду экономию на db и эхо-сообщения. – liborza

2

Метод формы должен быть POST, и поскольку вы загружаете файлы, вы должны указать enctype.

Вот Exemple:

<form method="post" enctype="multipart/form-data"> 

также переменная для файла должен быть $ _FILES не $ FILES

эталонными для ENCTYPE: http://www.w3schools.com/tags/att_form_enctype.asp

+0

Спасибо за ответ .. – liborza

Смежные вопросы