我想让我的表单处理代码可重用,但是如何?

Benwhittaker25

如标题中所述,我希望我的代码可重用。我在添加新的数据库内容时不想编辑大部分内容。

我的多个文件中的代码相似:

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

$_SESSION["message"] = "";
$sticky = $_POST["sticky"];
$visible = $_POST["visible"];
$title = mysql_prep( trim( $_POST["title"] ) );
$trailer = mysql_prep( trim( $_POST["trailer"] ) );
$description = mysql_prep( trim( $_POST["description"] ) );
$price = mysql_prep( trim( $_POST["price"] ) );
$source = mysql_prep( $_POST["source"] );
$sourceurl = mysql_prep( $_POST["sourceurl"] );
$appstore = mysql_prep( $_POST["appstore"] );
$googleplay = mysql_prep( $_POST["googleplay"] );
$device = mysql_prep( $_POST["device"] );
$rating = $_POST["rating"];

//form validations
$required_fields = array( "title", "trailer", "description" );

required_post_fields( $required_fields );
//end form validations

if( $_FILES["image_file"]["size"] != 0 ) {

    $image_ext = pathinfo( $_FILES["image_file"]["name"], PATHINFO_EXTENSION );
    $image_name = remove_bad_words( str_replace( " ", "_", strtolower( $title ) ), "/[^a-zA-Z0-9\s_]/" ) . "." . $image_ext;
    $folder_location = "../images/game/";
    $upload_path = $folder_location . $image_name;

    if( file_exists( $folder_location . $_SESSION["image_name"] ) ) {

        if( $_SESSION["image_name"] != $image_name ) {

            $_SESSION["message"] .= $_SESSION["image_name"] . " has been deleted successfully.<next>";
        }
        unlink( $folder_location . $_SESSION["image_name"] );
    }

    upload_check( $image_ext, $upload_path, $image_name );

    if( empty( $errors ) ) {

        $_SESSION["message"] .= "{$image_name} was uploaded successfully.<next>";

        move_uploaded_file( $_FILES["image_file"]["tmp_name"],  $upload_path );
    }

} else {

    $image_name = $_SESSION["image_name"];
}


if ( isset( $_POST["sticky"] ) && $sticky == 1 && empty( $errors ) ) {

    $query = "SELECT * FROM `game_content` WHERE `sticky` = 1";

    $sticky_result = mysqli_query( $connection, $query );

    if( $sticky_result && mysqli_num_rows( $sticky_result ) > 0 ) {

        $sticky_data = mysqli_fetch_assoc( $sticky_result );

        $query = "UPDATE `game_content` SET `sticky` = 0 WHERE `id` = {$sticky_data["id"]}";

        $stickied = mysqli_query( $connection, $query );
        check_query( $stickied );

        if ( $stickied && $sticky_data["id"] != $id ) {

            $_SESSION["message"] .= "{$sticky_data["title"]} is no longer stickied.<next>";
        }
    }
}

if ( empty( $errors ) ) {

    $query = "UPDATE `game_content` SET ";
    $query .= "`sticky` = '{$sticky}', ";
    $query .= "`visible` = '{$visible}', ";
    $query .= "`title` = '{$title}', ";
    $query .= "`logo` = '{$image_name}', ";
    $query .= "`trailer` = '{$trailer}', ";
    $query .= "`description` = '{$description}', ";
    $query .= "`price` = '{$price}', ";
    $query .= "`source` = '{$source}', ";
    $query .= "`sourceurl` = '{$sourceurl}', ";
    $query .= "`appstore` = '{$appstore}', ";
    $query .= "`googleplay` = '{$googleplay}', ";
    $query .= "`device` = '{$device}', ";
    $query .= "`rating` = '{$rating}' ";
    $query .= "WHERE id = {$id} ";
    $query .= "LIMIT 1";

    $result = mysqli_query( $connection, $query );
    check_query( $result );

    if ( $result ) {

        //forget the stored image name
        unset( $_SESSION["image_name"] );
        if( $sticky == 1 ) {

            $_SESSION["message"] .= "{$title} was updated successfully & has been stickied.";

        } else {

            $_SESSION["message"] .= "{$title} was updated successfully.";
        }
        redirect_to( ROOT_PATH . "/" . ADMIN_FOLDER . "/game_edit.php?id=" . $id );

    } else {

        redirect_to( ROOT_PATH . "/" . ADMIN_FOLDER . "/game.php" );
    }
}
}

我有不同的文件game_new.php,game_edit.php,tech_new.php,tech_edit.php和其他所有文件,这些文件都包含相似的代码。有人可以帮我重构这些东西吗?

我仍然在学习谢谢。

13 ruce1337

您可能想尝试一些PHP类,并以传统的OOP方式使用它。然后,您可以稍后再调用其中的一些代码。您也可以对SQL语句使用PDO

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使我的功能可重用

来自分类Dev

如何实现可重用的PHP表单处理逻辑?

来自分类Dev

如何实现可重用的PHP表单处理逻辑?

来自分类Dev

我如何在后面重用我的代码?

来自分类Dev

我如何以可重用的方式创建此jQuery?

来自分类Dev

如果不是功能,我该如何重用javascript代码

来自分类Dev

“ typedef”如何使我的代码可移植?

来自分类Dev

代码效果很好,但是我不知道如何在第二步中进行逆向处理

来自分类Dev

我有以下弹出框代码,但是当我调整页面大小时,我想关闭弹出框

来自分类Dev

numpy.float64对象不是可迭代的...但是我不是想

来自分类Dev

如何改进我的代码以处理大数字?

来自分类Dev

我想调用一个stock.setPrice()方法,但是我不知道如何

来自分类Dev

我想使用numpy分析一些数据,但是执行代码时错误不断弹出

来自分类Dev

如何在没有装饰器的情况下使异常处理代码可重用?

来自分类Dev

函数的顺序不允许我用C ++编写可重用的代码

来自分类Dev

我想让卡片响应。但是在Django

来自分类Dev

我想使卡片响应。但是在Django

来自分类Dev

我如何调整我的代码以进行多处理

来自分类Dev

我们应该在更新后处理重用代码应用程序吗?

来自分类Dev

如何使代码在jQuery中可重用?

来自分类Dev

我想运行我的cakephp代码

来自分类Dev

我想改善我的JavaScript条件代码

来自分类Dev

我如何选择convertview重用?

来自分类Dev

我如何选择convertview重用?

来自分类Dev

我想删除数组元素,但是我有问题

来自分类Dev

我的代码如下。它工作正常,但是我希望它在发现错误之后不再显示表单。怎么做到呢?

来自分类Dev

我们如何在php中处理动态表单

来自分类Dev

如何从我的 WinForms 表单事件处理程序操作类对象?

来自分类Dev

如何在我的所有Web表单中重用一个jquery validate函数?

Related 相关文章

  1. 1

    使我的功能可重用

  2. 2

    如何实现可重用的PHP表单处理逻辑?

  3. 3

    如何实现可重用的PHP表单处理逻辑?

  4. 4

    我如何在后面重用我的代码?

  5. 5

    我如何以可重用的方式创建此jQuery?

  6. 6

    如果不是功能,我该如何重用javascript代码

  7. 7

    “ typedef”如何使我的代码可移植?

  8. 8

    代码效果很好,但是我不知道如何在第二步中进行逆向处理

  9. 9

    我有以下弹出框代码,但是当我调整页面大小时,我想关闭弹出框

  10. 10

    numpy.float64对象不是可迭代的...但是我不是想

  11. 11

    如何改进我的代码以处理大数字?

  12. 12

    我想调用一个stock.setPrice()方法,但是我不知道如何

  13. 13

    我想使用numpy分析一些数据,但是执行代码时错误不断弹出

  14. 14

    如何在没有装饰器的情况下使异常处理代码可重用?

  15. 15

    函数的顺序不允许我用C ++编写可重用的代码

  16. 16

    我想让卡片响应。但是在Django

  17. 17

    我想使卡片响应。但是在Django

  18. 18

    我如何调整我的代码以进行多处理

  19. 19

    我们应该在更新后处理重用代码应用程序吗?

  20. 20

    如何使代码在jQuery中可重用?

  21. 21

    我想运行我的cakephp代码

  22. 22

    我想改善我的JavaScript条件代码

  23. 23

    我如何选择convertview重用?

  24. 24

    我如何选择convertview重用?

  25. 25

    我想删除数组元素,但是我有问题

  26. 26

    我的代码如下。它工作正常,但是我希望它在发现错误之后不再显示表单。怎么做到呢?

  27. 27

    我们如何在php中处理动态表单

  28. 28

    如何从我的 WinForms 表单事件处理程序操作类对象?

  29. 29

    如何在我的所有Web表单中重用一个jquery validate函数?

热门标签

归档