Tìm kiếm nhanh

Lỗi không tự động load lại trang khi thêm mới

Thảo luận trong 'Các Vấn Đề Chung' đăng bởi hpleduit, 05/12/2016 02:29.

  •  

    Chào cả nhà hiện tại mình đang tạo một module và một fuction thêm mới thông tin như đoạn code dưới. Cho mình hỏi tại sao khi mình thêm mới một thông tin hoặc chỉnh sửa thì trang web báo lỗi 500 khi mình nhấn F5 hoặc reload lại là hết. Ai biết xin chỉ giúp cảm ơn.

    <?php
    
    /**
     * @Project NUKEVIET 4.x
     * @Author VINADES.,JSC (contact@vinades.vn)
     * @Copyright (C) 2016 VINADES.,JSC. All rights reserved
     * @License GNU/GPL version 2 or any later version
     * @Createdate Mon, 05 Dec 2016 07:06:05 GMT
     */
    
    if ( ! defined( 'NV_IS_FILE_ADMIN' ) ) die( 'Stop!!!' );
    
    if ( $nv_Request->isset_request( 'get_alias_title', 'post' ) )
    {
    	$alias = $nv_Request->get_title( 'get_alias_title', 'post', '' );
    	$alias = change_alias( $alias );
    	die( $alias );
    }
    
    if( $nv_Request->isset_request( 'ajax_action', 'post' ) )
    {
    	$id = $nv_Request->get_int( 'id', 'post', 0 );
    	$new_vid = $nv_Request->get_int( 'new_vid', 'post', 0 );
    	$content = 'NO_' . $id;
    	if( $new_vid > 0 )
    	{
    		$sql = 'SELECT id FROM ' . NV_PREFIXLANG . '_' . $module_data . '_student WHERE id!=' . $id . ' ORDER BY weight ASC';
    		$result = $db->query( $sql );
    		$weight = 0;
    		while( $row = $result->fetch() )
    		{
    			++$weight;
    			if( $weight == $new_vid ) ++$weight;
    			$sql = 'UPDATE ' . NV_PREFIXLANG . '_' . $module_data . '_student SET weight=' . $weight . ' WHERE id=' . $row['id'];
    			$db->query( $sql );
    		}
    		$sql = 'UPDATE ' . NV_PREFIXLANG . '_' . $module_data . '_student SET weight=' . $new_vid . ' WHERE id=' . $id;
    		$db->query( $sql );
    		$content = 'OK_' . $id;
    	}
    	nv_del_moduleCache( $module_name );
    	include NV_ROOTDIR . '/includes/header.php';
    	echo $content;
    	include NV_ROOTDIR . '/includes/footer.php';
    	exit();
    }
    if ( $nv_Request->isset_request( 'delete_id', 'get' ) and $nv_Request->isset_request( 'delete_checkss', 'get' ))
    {
    	$id = $nv_Request->get_int( 'delete_id', 'get' );
    	$delete_checkss = $nv_Request->get_string( 'delete_checkss', 'get' );
    	if( $id > 0 and $delete_checkss == md5( $id . NV_CACHE_PREFIX . $client_info['session_id'] ) )
    	{
    		$weight=0;
    		$sql = 'SELECT weight FROM ' . NV_PREFIXLANG . '_' . $module_data . '_student WHERE id =' . $db->quote( $id );
    		$result = $db->query( $sql );
    		list( $weight) = $result->fetch( 3 );
    		$db->query('DELETE FROM ' . NV_PREFIXLANG . '_' . $module_data . '_student  WHERE id = ' . $db->quote( $id ) );
    		if( $weight > 0)
    		{
    			$sql = 'SELECT id, weight FROM ' . NV_PREFIXLANG . '_' . $module_data . '_student WHERE weight >' . $weight;
    			$result = $db->query( $sql );
    			while(list( $id, $weight) = $result->fetch( 3 ))
    			{
    				$weight--;
    				$db->query( 'UPDATE ' . NV_PREFIXLANG . '_' . $module_data . '_student SET weight=' . $weight . ' WHERE id=' . intval( $id ));
    			}
    		}
    		nv_del_moduleCache( nvtools );
    		Header( 'Location: ' . NV_BASE_ADMINURL . 'index.php?' . NV_LANG_VARIABLE . '=' . NV_LANG_DATA . '&' . NV_NAME_VARIABLE . '=' . $module_name . '&' . NV_OP_VARIABLE . '=' . $op );
    		die();
    	}
    }
    
    $row = array();
    $error = array();
    $row['id'] = $nv_Request->get_int( 'id', 'post,get', 0 );
    if ( $nv_Request->isset_request( 'submit', 'post' ) )
    {
    	$row['hoten'] = $nv_Request->get_title( 'hoten', 'post', '' );
    	$row['alias'] = $nv_Request->get_title( 'alias', 'post', '' );
    	$row['alias'] = ( empty($row['alias'] ))? change_alias( $row['title'] ) : change_alias( $row['alias'] );
    	$row['image'] = $nv_Request->get_title( 'image', 'post', '' );
    	if( is_file( NV_DOCUMENT_ROOT . $row['image'] ) )
    	{
    		$row['image'] = substr( $row['image'], strlen( NV_BASE_SITEURL . NV_UPLOADS_DIR . '/' . $module_name . '/' ) );
    	}
    	else
    	{
    		$row['image'] = '';
    	}
    	$row['nienkhoa'] = $nv_Request->get_title( 'nienkhoa', 'post', '' );
    	$row['lop'] = $nv_Request->get_title( 'lop', 'post', '' );
    	$row['donvi'] = $nv_Request->get_title( 'donvi', 'post', '' );
    	$row['phone'] = $nv_Request->get_title( 'phone', 'post', '' );
    	$row['email'] = $nv_Request->get_title( 'email', 'post', '' );
    	$row['ghichu'] = $nv_Request->get_string( 'ghichu', 'post', '' );
    
    	if( empty( $row['hoten'] ) )
    	{
    		$error[] = $lang_module['error_required_hoten'];
    	}
    	elseif( empty( $row['nienkhoa'] ) )
    	{
    		$error[] = $lang_module['error_required_nienkhoa'];
    	}
    	elseif( empty( $row['lop'] ) )
    	{
    		$error[] = $lang_module['error_required_lop'];
    	}
    	elseif( empty( $row['donvi'] ) )
    	{
    		$error[] = $lang_module['error_required_donvi'];
    	}
    	elseif( empty( $row['phone'] ) )
    	{
    		$error[] = $lang_module['error_required_phone'];
    	}
    	elseif( empty( $row['email'] ) )
    	{
    		$error[] = $lang_module['error_required_email'];
    	}
    
    	if( empty( $error ) )
    	{
    		try
    		{
    			if( empty( $row['id'] ) )
    			{
    
    				$row['add_time'] = 0;
    
    				$stmt = $db->prepare( 'INSERT INTO ' . NV_PREFIXLANG . '_' . $module_data . '_student (hoten, alias, image, nienkhoa, lop, donvi, phone, email, ghichu, weight, add_time) VALUES (:hoten, :alias, :image, :nienkhoa, :lop, :donvi, :phone, :email, :ghichu, :weight, :add_time)' );
    
    				$weight = $db->query( 'SELECT max(weight) FROM ' . NV_PREFIXLANG . '_' . $module_data . '_student' )->fetchColumn();
    				$weight = intval( $weight ) + 1;
    				$stmt->bindParam( ':weight', $weight, PDO::PARAM_INT );
    
    				$stmt->bindParam( ':add_time', $row['add_time'], PDO::PARAM_INT );
    
    			}
    			else
    			{
    				$stmt = $db->prepare( 'UPDATE ' . NV_PREFIXLANG . '_' . $module_data . '_student SET hoten = :hoten, alias = :alias, image = :image, nienkhoa = :nienkhoa, lop = :lop, donvi = :donvi, phone = :phone, email = :email, ghichu = :ghichu WHERE id=' . $row['id'] );
    			}
    			$stmt->bindParam( ':hoten', $row['hoten'], PDO::PARAM_STR );
    			$stmt->bindParam( ':alias', $row['alias'], PDO::PARAM_STR );
    			$stmt->bindParam( ':image', $row['image'], PDO::PARAM_STR );
    			$stmt->bindParam( ':nienkhoa', $row['nienkhoa'], PDO::PARAM_STR );
    			$stmt->bindParam( ':lop', $row['lop'], PDO::PARAM_STR );
    			$stmt->bindParam( ':donvi', $row['donvi'], PDO::PARAM_STR );
    			$stmt->bindParam( ':phone', $row['phone'], PDO::PARAM_STR );
    			$stmt->bindParam( ':email', $row['email'], PDO::PARAM_STR );
    			$stmt->bindParam( ':ghichu', $row['ghichu'], PDO::PARAM_STR, strlen($row['ghichu']) );
    
    			$exc = $stmt->execute();
    			if( $exc )
    			{
    				nv_del_moduleCache( $module_name );
    				Header( 'Location: ' . NV_BASE_ADMINURL . 'index.php?' . NV_LANG_VARIABLE . '=' . NV_LANG_DATA . '&' . NV_NAME_VARIABLE . '=' . $module_name . '&' . NV_OP_VARIABLE . '=' . $op );
    				die();
    			}
    		}
    		catch( PDOException $e )
    		{
    			trigger_error( $e->getMessage() );
    			die( $e->getMessage() ); //Remove this line after checks finished
    		}
    	}
    }
    elseif( $row['id'] > 0 )
    {
    	$row = $db->query( 'SELECT * FROM ' . NV_PREFIXLANG . '_' . $module_data . '_student WHERE id=' . $row['id'] )->fetch();
    	if( empty( $row ) )
    	{
    		Header( 'Location: ' . NV_BASE_ADMINURL . 'index.php?' . NV_LANG_VARIABLE . '=' . NV_LANG_DATA . '&' . NV_NAME_VARIABLE . '=' . $module_name . '&' . NV_OP_VARIABLE . '=' . $op );
    		die();
    	}
    }
    else
    {
    	$row['id'] = 0;
    	$row['hoten'] = '';
    	$row['alias'] = '';
    	$row['image'] = '';
    	$row['nienkhoa'] = '';
    	$row['lop'] = '';
    	$row['donvi'] = '';
    	$row['phone'] = '';
    	$row['email'] = '';
    	$row['ghichu'] = '';
    }
    if( ! empty( $row['image'] ) and is_file( NV_UPLOADS_REAL_DIR . '/' . $module_name . '/' . $row['image'] ) )
    {
    	$row['image'] = NV_BASE_SITEURL . NV_UPLOADS_DIR . '/' . $module_name . '/' . $row['image'];
    }
    
    $q = $nv_Request->get_title( 'q', 'post,get' );
    
    // Fetch Limit
    $show_view = false;
    if ( ! $nv_Request->isset_request( 'id', 'post,get' ) )
    {
    	$show_view = true;
    	$per_page = 5;
    	$page = $nv_Request->get_int( 'page', 'post,get', 1 );
    	$db->sqlreset()
    		->select( 'COUNT(*)' )
    		->from( '' . NV_PREFIXLANG . '_' . $module_data . '_student' );
    
    	if( ! empty( $q ) )
    	{
    		$db->where( 'hoten LIKE :q_hoten OR nienkhoa LIKE :q_nienkhoa OR lop LIKE :q_lop OR phone LIKE :q_phone OR email LIKE :q_email' );
    	}
    	$sth = $db->prepare( $db->sql() );
    
    	if( ! empty( $q ) )
    	{
    		$sth->bindValue( ':q_hoten', '%' . $q . '%' );
    		$sth->bindValue( ':q_nienkhoa', '%' . $q . '%' );
    		$sth->bindValue( ':q_lop', '%' . $q . '%' );
    		$sth->bindValue( ':q_phone', '%' . $q . '%' );
    		$sth->bindValue( ':q_email', '%' . $q . '%' );
    	}
    	$sth->execute();
    	$num_items = $sth->fetchColumn();
    
    	$db->select( '*' )
    		->order( 'weight ASC' )
    		->limit( $per_page )
    		->offset( ( $page - 1 ) * $per_page );
    	$sth = $db->prepare( $db->sql() );
    
    	if( ! empty( $q ) )
    	{
    		$sth->bindValue( ':q_hoten', '%' . $q . '%' );
    		$sth->bindValue( ':q_nienkhoa', '%' . $q . '%' );
    		$sth->bindValue( ':q_lop', '%' . $q . '%' );
    		$sth->bindValue( ':q_phone', '%' . $q . '%' );
    		$sth->bindValue( ':q_email', '%' . $q . '%' );
    	}
    	$sth->execute();
    }
    $xtpl = new XTemplate( $op . '.tpl', NV_ROOTDIR . '/themes/' . $global_config['module_theme'] . '/modules/' . $module_file );
    $xtpl->assign( 'LANG', $lang_module );
    $xtpl->assign( 'NV_LANG_VARIABLE', NV_LANG_VARIABLE );
    $xtpl->assign( 'NV_LANG_DATA', NV_LANG_DATA );
    $xtpl->assign( 'NV_BASE_ADMINURL', NV_BASE_ADMINURL );
    $xtpl->assign( 'NV_NAME_VARIABLE', NV_NAME_VARIABLE );
    $xtpl->assign( 'NV_OP_VARIABLE', NV_OP_VARIABLE );
    $xtpl->assign( 'MODULE_NAME', $module_name );
    $xtpl->assign( 'OP', $op );
    $xtpl->assign( 'ROW', $row );
    $xtpl->assign( 'Q', $q );
    
    if( $show_view )
    {
    	$base_url = NV_BASE_ADMINURL . 'index.php?' . NV_LANG_VARIABLE . '=' . NV_LANG_DATA . '&amp;' . NV_NAME_VARIABLE . '=' . $module_name . '&amp;' . NV_OP_VARIABLE . '=' . $op;
    	if( ! empty( $q ) )
    	{
    		$base_url .= '&q=' . $q;
    	}
    	$xtpl->assign( 'NV_GENERATE_PAGE', nv_generate_page( $base_url, $num_items, $per_page, $page) );
    
    	while( $view = $sth->fetch() )
    	{
    		for( $i = 1; $i <= $num_items; ++$i )
    		{
    			$xtpl->assign( 'WEIGHT', array(
    				'key' => $i,
    				'title' => $i,
    				'selected' => ( $i == $view['weight'] ) ? ' selected="selected"' : '') );
    			$xtpl->parse( 'main.view.loop.weight_loop' );
    		}
    		$view['link_edit'] = NV_BASE_ADMINURL . 'index.php?' . NV_LANG_VARIABLE . '=' . NV_LANG_DATA . '&amp;' . NV_NAME_VARIABLE . '=' . $module_name . '&amp;' . NV_OP_VARIABLE . '=' . $op . '&amp;id=' . $view['id'];
    		$view['link_delete'] = NV_BASE_ADMINURL . 'index.php?' . NV_LANG_VARIABLE . '=' . NV_LANG_DATA . '&amp;' . NV_NAME_VARIABLE . '=' . $module_name . '&amp;' . NV_OP_VARIABLE . '=' . $op . '&amp;delete_id=' . $view['id'] . '&amp;delete_checkss=' . md5( $view['id'] . NV_CACHE_PREFIX . $client_info['session_id'] );
    		$xtpl->assign( 'VIEW', $view );
    		$xtpl->parse( 'main.view.loop' );
    	}
    	$xtpl->parse( 'main.view' );
    }
    if( ! empty( $error ) )
    {
    	$xtpl->assign( 'ERROR', implode( '<br />', $error ) );
    	$xtpl->parse( 'main.error' );
    }
    if( empty( $row['id'] ) )
    {
    	$xtpl->parse( 'main.auto_get_alias' );
    }
    
    $xtpl->parse( 'main' );
    $contents = $xtpl->text( 'main' );
    
    $page_title = $lang_module['add'];
    
    include NV_ROOTDIR . '/includes/header.php';
    echo nv_admin_theme( $contents );
    include NV_ROOTDIR . '/includes/footer.php';

     

     
  • anhyeuviolet

    anhyeuviolet Kenny Nguyen

    Có mỗi function thì đánh đố người tiêu dùng quá thím ơi laugh

     
  • Toàn module code

     

    Tệp đính kèm:

  • anhyeuviolet

    anhyeuviolet Kenny Nguyen

    Tìm tất cả trong mọi file PHP:

    nv_del_moduleCache

    Sửa thành:

    $nv_Cache->delMod

     

    Ví dụ:

    nv_del_moduleCache( $module_name );

     

    Sửa thành:

    $nv_Cache->delMod( $module_name );

     

    +++ Lưu ý: Cần global biến $nv_Cache nếu dùng trong function.

     
    Lần sửa cuối bởi bạn: 05/12/2016 04:22
  • Thanks anhyeuviolet

     

Chia sẻ trang này

Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây