Share Code Quickly

What is Harigami?

Harigami is a simple source code sharing service. You can share source code by an URL which is issued after submission.
You can also run your source code online such as Python, Ruby, JavaScript and so on.
For free.Use for code review.
Preferences
anonymous @NG_nekomaru
Python
import notification
import clipboard
import keyboard
import datetime
import calendar
import tweepy
import base64
import json
import time
import glob
import os
import sys
import re
import random
import console
import sound

"""
              ---初期設定---
 
  
 
 ▷を押し、表示された数字を DMで伝えて下さい
 
 それと引き換えにこちらがIDを渡しますので、受け取ったAutoIDを30行目 00000 を消して貼り付けてください

"""

#          ⤵︎の00000 を消した後 貰ったIDを = の後にそのまま貼り付けてください
Auto_ID = 00000

"""

   ---使用設定部分---
  
   パスツイ  21:30
   ルーム番号 567
   
      の場合
     ↓↓↓↓↓↓↓↓
     
 pass_tweet_time = "30"      ← 21:00 の場合は"00"  ※分だけを記入します。
 room_id         = "567" 

----- このように下を書き換えます。------
 
"""

pass_tweet_time = "00"
room_id         = "0000" 

"""
     ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
     ⚠️以下書き換えると動作しなくなります
   ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
"""

flag     = 0
flag_S   = 0
password = ""

CK="6S7RGNGmiCEbhrcyWTSMpeHox"
CS="roshZEYXQj70LHNbzwJL6JpgPF3qeUwYHAYHafIYwLuSbdiSXk"
AT="1290157814304759808-VS1ZEbu3ZxzP3hIuvMypDGfoJybCky"
AS="RcHmXYuknLXnv2P5BCBHAzhUcXK00EVABzqdujD2lwY5t"

basenumber = "0123456789"

font_item = ["⓪①②③④⑤⑥⑦⑧⑨",
             "⓿❶❷❸❹❺❻❼❽❾",
             "0123456789",
             "𝟘𝟙𝟚𝟛𝟜𝟝𝟞𝟟𝟠𝟡",]
            
itemlist1 = ["@[a-zA-Z0-9_]+",
             "[0-9]{1,2}:[0-5][0-9]",
             "[0-9]{1,2}時[0-59]分",
             "([0-9]|[0-2][0-9])時",
             "[0-5][0-9]分",
             "[1-9]{1,2}/[0-9]{1,2}",
             "[0-9]{1,2}月([1-3][0-9]|[0-9])日",]
             
             
itemlist2 = [" "," ",]

message  = {
	"no_update":"パスツイ取得中",
	"code_notification":"この数字をDMで伝えてください:",
	"copy_error":"Twitterリンクのコピー又はフルアクセスの許可をしてください",
	"pass_notfound":"パスワードが取得できませんでした",
	"waiting_passtweet":"からのパスツイ待機中...",
	"stop":"動作可能時間内にパスツイが見つかりませんでした。",
	"success":b'SUToqo3oqLzmiJDlip8=',
	"fail":b'SUToqo3oqLzlpLHmlZc=',
	"repush":"パスツイ予定時間の数秒前にもう一度ボタンを押して下さい",
}


"""
  関数
"""

def AutoID(i):
	Auto_ID_key      = b''
	Auto_ID_key_mode = 0
	Auto_ID_generate = ['0001','0010','0100','1000','0000',]
	Xcode = ["\x207\x204\x208\x209\x400\x102",
         "207\x200\x208\x209\x400\x109" ,
         "207\x204\x208\x209\x400\x102" ,
         "207\x204\x208\x209\x400\x102" ,]
	main_key = 3*3
	return str(main_key)+Auto_ID_generate[i]

def AutoID_Settings():
	for i in Xcode:
		num = i+ia
	return num
	
def login(CK,CS,AT,AS):
	auth = tweepy.OAuthHandler(CK,CS)
	auth.set_access_token(AT,AS)
	API = tweepy.API(auth)
	return API
	
def exit():
	sys.exit()
	
def get_username():
	user_name = clipboard.get()
	if("https" in user_name):
		user_name = user_name.split("/")
		user_name = user_name[3].split("?")
		user_name = user_name[0]
		return user_name
	else:
		print(message["copy_error"])
		sys.exit()

def ACencrtrpt(a):
	c = str(a)
	c = base64.b64encode(c.encode())
	return c
	
def Test(c,d):
	if c == d:
		return True
	else:
		key = glob.glob("*.pwd")
		key = key[0].split(".")[0]
		print(message["code_notification"]+key)
		sys.exit()
		
def check():
	file = glob.glob("*.pwd")
	i = 0
	if not file:
		key = int(random.uniform(1,99))*int(random.uniform(99,999))*int(random.uniform(1,9))
		key = str(key)
		with open(key+".pwd" , mode="w") as f:
			f.write("")
		notification.schedule(message["code_notification"]+key)
		print(message["code_notification"]+key)
		sys.exit()
	else:
		code = file[0].split(".")[0]
		return code,i
							
def tweet_filter(Tweettext):
	for i in range(10):
		if(font_item[0][i] in Tweettext):
			Tweettext = Tweettext.replace(font_item[0][i],basenumber[i])
		for j in range(10):
			if(font_item[1][j] in Tweettext):
				Tweettext = Tweettext.replace(font_item[1][j],basenumber[j])
			for k in range(10):
				if(font_item[2][k] in Tweettext):
					Tweettext = Tweettext.replace(font_item[2][k],basenumber[k])
				for l in range(10):
					if(font_item[3][l] in Tweettext):
						Tweettext = Tweettext.replace(font_item[3][l],basenumber[l])
	return Tweettext

def tweet_trim(tweet):
	tweet = tweet_filter(tweet)
	for i in itemlist1:
		tweet = re.sub(i,"",tweet)
		for j in itemlist2:
			tweet = tweet.replace(j,"")
	tweet = re.findall(r"\d+",tweet)
	return tweet
	
def get_time_now():
	now_time = datetime.datetime.now()
	now_time = str(now_time).split(" ")[1]
	now_time = now_time.split(":")
	now_time_minute = now_time[1]
	now_time_seconds = now_time[2].split(".")[0]
	return now_time_minute,now_time_seconds
	
	
API  = login(CK,CS,AT,AS) 

Check , Check2 = check()
Check          = ACencrtrpt(Check)
Test(Auto_ID,Check)

order = API.user_timeline("auto_test_",count=1)

for i in order:
	order = i.text
	
if("del" in order):
	order = order.split(",")[1]
	order = order+".pwd"
	if(os.path.isfile(order)):
		os.remove(order)
		sys.exit()
elif("mes" in order):
	order_ = order.split(",")[1]
	order_mes = order.split(",")[2]
	order_ = order_+".pwd"
	if(os.path.isfile(order_)):
		print(order_mes)
		sys.exit()

num = glob.glob("*.pwd")
num = num[0].split(".")[0]
print(num)	
user_name = get_username()


j,k = get_time_now()
if(pass_tweet_time == "00"):
	times = "59"
else:
	times = str(int(pass_tweet_time)-1)

if(j == pass_tweet_time):
	s = 0
elif(j == times and int(k) < 40):
	print(message["repush"])
	sys.exit()
elif not j == times and not j == pass_tweet_time:
	print(message["repush"])
	sys.exit()

print("@"+user_name+message["waiting_passtweet"])

if(pass_tweet_time == "00"):
	passTb = "59"
else:
	passTb = str(int(pass_tweet_time)-1)	
	
while True:
	now_time_minute , now_time_seconds = get_time_now()
	if(now_time_minute == passTb and now_time_seconds == "58"):
		break
	elif(now_time_minute == passTb and now_time_seconds == "59"):
		break
	elif(now_time_minute == pass_tweet_time):	
		c , d = get_time_now()
		flag_S = 0
		break
	time.sleep(0.01)
		
while True:
	
	a , b = get_time_now()
	
	if(flag_S == 0):
		if(b == "12"):
			print(message["stop"])
			sys.exit()
	else:
		if(int(d) >= 50):
			if(b == "59"):
				print(message["stop"])
				sys.exit()
		else:
			if(int(b) == int(d)+12):
				print(message["stop"])
				sys.exit()
				
	tweet = API.user_timeline(user_name,count = 1)
	for i in tweet:
		tweet = i.text
		tweet_time = i.created_at
	
	tweet_time = re.findall(r"\d+",str(tweet_time))
	tweet_time_minute = tweet_time[4]
	tweet_time_second = tweet_time[5]
		
	if(pass_tweet_time == "00"):
		pass_tweet_time_ = "59"
	else:
		pass_tweet_time_ = str(int(pass_tweet_time)-1)
		if(len(pass_tweet_time_) == 1):
			pass_tweet_time_ = "0" + pass_tweet_time_
	for i in range(57,60):
		if(pass_tweet_time_ == tweet_time_minute and str(i) == tweet_time_second):
			flag = 1	
	if(pass_tweet_time == tweet_time_minute):
		flag = 1
		
	if(flag == 1):
		break
	else:
		console.clear()
		print(message["no_update"]+" ["+str(datetime.datetime.now()).split(" ")[1]+"]")
	time.sleep(0.02)

tweet = tweet_trim(tweet)

if(room_id in tweet):
	room_id_index = tweet.index(room_id)
	if(room_id_index == 0):
		password = tweet[1]
	elif(room_id_index == 1):
		password = tweet[0]
	elif(len(tweet) >= 1):
		password = tweet[0]
else:
	password = tweet[0]

sound.play_effect(name="arcade:Coin_3",volume=0.025)
keyboard.insert_text(password)
keyboard.insert_text("\n")
notification.schedule(password)
print(password)
sys.exit()
anonymous Twitter #VBA100本ノック 迷宮編 Ver1.00
VBA
Option Explicit

Sub Meikyuu()

    ' #VBA100本ノック 迷宮編

    Dim x       As Long, y As Long, ny As Long, nx As Long ' セル位置座標用
    Dim Bx      As Long, By As Long, Bnx As Long, Bny As Long   ' 5×5ブロック単位範囲用
    Dim ForY    As Long, ForX As Long, ForXS As Long, ForXE As Long, xStep As Long
    Dim i       As Long, iss As Long, ie As Long, iStep As Long
    Dim j       As Long, js As Long, je As Long, jStep As Long
    Dim Kyori   As Double, stKyori As Double               ' 直線距離計算用
    Dim Flg     As Boolean                                 ' 最短距離フラグ
    Dim Arr     As Variant                                 ' セル値ストック用配列
    
    Range("A1:O15").ClearContents: Range("A1").Select      ' シートクリア
    x = 1: y = 1                ' スタート位置セット
    
    ' 5×5のブロック単位でサーチ
    For ForY = 1 To 11 Step 5
        ' 横位置は左右スタート位置が交互にする設定
        If ForY = 6 Then ForXS = 11: ForXE = 1: xStep = -5 Else ForXS = 1: ForXE = 11: xStep = 5
        ' ブロック単位サーチ
        For ForX = ForXS To ForXE Step xStep
            ' ブロック内左右サーチはプロック左右進行方向に合わせる
            If ForY = 6 Then iss = 4: ie = 0: iStep = -1 Else iss = 0: ie = 4: iStep = 1
            For Bx = iss To ie Step iStep
                ' ブロック内上下は前回通過点に近い方からスタートし、交互に上下
                If x Mod 5 = 0 Or x Mod 5 = 4 Then js = 4: je = 0: jStep = -1 Else js = 0: je = 4: jStep = 1
                For By = js To je Step jStep
                    If Cells(ForY + By, ForX + Bx).Interior.Color = vbYellow Then
                        Call Marking(y, x, ForY + By, ForX + Bx)    ' ルートマーキング処理へ
                        y = ForY + By: x = ForX + Bx
                    End If
                Next
            Next
        Next
    Next
    
    Call Marking(y, x, 15, 15)    ' 最終黄色地点から終点まで
    
End Sub

Sub Marking(y As Long, x As Long, ny As Long, nx As Long)

    Dim stPos As Long, i As Long, sStep As Long
    Dim Flg     As Boolean  ' 通過で出来ずフラグ
    Dim stArr   As Variant  ' セル値ストック用配列
    
    stArr = Range("A1:O15").Value ' 最初のセル状態ストック
    
    ' 【地点間の通過済でないルート探索(縦位置スタートから試み、駄目なら次に横位置スタート)】
    Flg = True
    ' 縦 → 横 探索
    ' 最初に縦位置探索(既に通過済と交わればフラグOFF)
    If y <= ny Then sStep = 1 Else sStep = -1
    Cells(y, x).Value = "" ' スタート位置クリア
    For i = y To ny Step sStep
        If Cells(i, x).Value <> "" Then Flg = False
        Cells(i, x).Value = "●"
    Next
    
    ' 次に横位置探索(既に通過済と交わればフラグOFF)
    If x <= nx Then sStep = 1 Else sStep = -1
    Cells(ny, x).Value = "" ' スタート位置クリア
    For i = x To nx Step sStep
        If Cells(ny, i).Value <> "" Then Flg = False
        Cells(ny, i).Value = "●"
    Next
    
    ' 既に通過済みと交差してなければ戻る
    If Flg Then Exit Sub
    
    Range("A1:O15") = stArr ' 前の状態をクリア
    Flg = True
    ' 横 → 縦 探索
    ' 最初に横位置探索(既に通過済と交わればフラグOFF)
    If x <= nx Then sStep = 1 Else sStep = -1
    Cells(i, y).Value = "" ' スタート位置クリア
    For i = x To nx Step sStep
        If Cells(y, i).Value <> "" Then Flg = False
        Cells(y, i).Value = "●"
    Next
    ' 次に縦位置探索(既に通過済と交わればフラグOFF)
    If y <= ny Then sStep = 1 Else sStep = -1
    Cells(y, nx).Value = ""     ' スタート位置クリア
    For i = y To ny Step sStep  ' 次に横位置
        If Cells(i, nx).Value <> "" Then Flg = False
        Cells(i, nx).Value = "●"
    Next

End Sub
anonymous No title
VBA
Sub 年月別にフォルダを作成_xlsx()

'処理時間の計測-----------------------------------------------------------------------------------
Dim startTime As Double
Dim endTime As Double
Dim processTime As Double

startTime = Timer
'__________________________________________________________________________________________________


Dim targetFolder As String
Dim loadFolder As String

targetFolder = ThisWorkbook.Path & "\" & "写真を仕分けて格納"
loadFolder = ThisWorkbook.Path & "\" & "処理対象写真を格納する"


Dim fso_lord, fso_traget As Object
Set fso_lord = CreateObject("scripting.filesystemobject")
Set fso_traget = CreateObject("scripting.filesystemobject")

Set f = fso_lord.GetFolder(loadFolder)
Set f2 = fso_traget.GetFolder(targetFolder)
Set fc = f.Files


'ファイル数が0なら処理終了。
If fc.Count = 0 Then MsgBox "対象ファイルなし": Exit Sub


'主処理
For Each f1 In fc

    '.jpgを処理。
    If f1.Name Like "*.xlsm" Or f1.Name Like "*.XLSM" Then
        '年、月を取得する。
        picture_date = FileDateTime(f1)
        picture_year = Year(picture_date)
        picture_month = Month(picture_date)
        FolderName = picture_year & "年" & picture_month & "月"
        SerchFolder = targetFolder & "\" & FolderName
        
        'フォルダが存在するか調べる
        If fso_traget.FolderExists(SerchFolder) Then
            '存在する場合は格納処理
            fso_lord.MoveFile f1, SerchFolder & "\"
            
        Else
            '存在しない場合は、フォルダを作って格納処理

            'フォルダ作成
            fso_traget.createfolder SerchFolder
            
            'ファイルを格納
            fso_lord.MoveFile f1, SerchFolder & "\"
            
        End If
        
    End If
Next f1


'処理時間の計測-----------------------------------------------------------------------------------
endTime = Timer
processTime = endTime - startTime

MsgBox "end 処理時間=" & Round(processTime / 60, 0) & "分" & Round(processTime Mod 60, 0) & "秒"
'__________________________________________________________________________________________________


End Sub

anonymous 相性占い
VBA
Option Explicit

Sub Uranai()

    ' 相性を占いたい男女の名前をそれぞれ半角カタカナで設定してください。
    Dim S_Name      As String, S_Int       As String, S_Wk       As String
    Dim i           As Long
    Dim Man         As String: Man = "ニシジマヒデトシ"
    Dim Woman       As String: Woman = "アラガキユイ"
    
    ' 名前に濁音、ぱく音があれば消去し、並べて表示
    S_Name = Replace(Replace(Man & Woman, "゙", ""), "゚", ""): Debug.Print S_Name ' 名前を並べて表示
    
    ' 名前の数値化
    For i = 1 To Len(S_Name)
        If InStr("アカサタナハマヤラワァャ", Mid(S_Name, i, 1)) > 0 Then S_Int = S_Int & "1"    ' 母音アは 1
        If InStr("イキシチニヒミリィ", Mid(S_Name, i, 1)) > 0 Then S_Int = S_Int & "2"       '     イは 2
        If InStr("ウクスツヌフムユルゥュッ", Mid(S_Name, i, 1)) > 0 Then S_Int = S_Int & "3"    '     ウは 3
        If InStr("エケセテネヘメレェ", Mid(S_Name, i, 1)) > 0 Then S_Int = S_Int & "4"       '     エは 4
        If InStr("オコソトノホモヨロヲォョ", Mid(S_Name, i, 1)) > 0 Then S_Int = S_Int & "5"    '     オは 5
        If InStr("ン", Mid(S_Name, i, 1)) > 0 Then S_Int = S_Int & "0"               '     ンは 0
    Next
    
    ' 100%以下になるまで計算を繰り返す
    Do
        Debug.Print S_Int   ' 数値の表示
        If S_Int = "100" Or Len(S_Int) < 3 Then Exit Do
        
        ' 隣り合う数値を足し、1桁目だけを再度並べていく
        S_Wk = ""
        For i = 1 To Len(S_Int) - 1
            S_Wk = S_Wk & Right(CStr(Val(Mid(S_Int, i, 1)) + Val(Mid(S_Int, i + 1, 1))), 1)
        Next
        S_Int = S_Wk
    Loop
    
    Debug.Print "二人の相性は " & S_Int; " %です"

End Sub
anonymous No title
Python
anonymous No title
PHP
<?php
$item_name='';
$price ='';
$stock = '';
$status='';
$update_stock='';
$host = 'localhost';
$username = '********';
$password = '********';
$dbname = '********';
$charset = 'utf8';
$process_kind = "";
$date = date('Y-m-d H:i:s');
$delete ='';

$dsn = 'mysql:dbname='.$dbname.';host='.$host.';charset='.$charset;

$img_dir    = './img/';    
$data       = array();
$err_msg    = array(); 
$clear_msg  = array();
$new_img_filename = ''; 

try {
  $dbh = new PDO($dsn, $username, $password, array(PDO::MYSQL_ATTR_INIT_COMMAND =>'SET NAMES utf8mb4'));
  $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  $dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
  if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    
  if(isset($_POST['process_kind'])=== TRUE){
      $process_kind=$_POST['process_kind'];
    }
  if($process_kind==='insert_item'){
    
    if(isset($_POST['item_name']) === TRUE) {
        $item_name = $_POST['item_name'];
      }
      if(isset($_POST['price']) === TRUE) {
        $price = $_POST['price'];
      }
      if(isset($_POST['stock'])=== TRUE) {
        $stock = $_POST['stock'];
      }
      if(isset($_POST['status'])=== TRUE) {
        $status = $_POST['status'];
      }
      if($item_name === '') {
        $err_msg[] = '商品名を入力してください';
      }
      if($price === '') {
        $err_msg[] = '価格を入力してください';
        
      } else if (preg_match("/^[0-9]+$/",$price)!==1) {
        $err_msg[] = "価格を0以上の半角数字で入力してください"; 
      }
      if($stock === '') {
        $err_msg[] = '個数を入力してください';
        
      } else if (preg_match("/^[0-9]+$/",$stock)!==1) {
        $err_msg[] = "個数を0以上の半角数字で入力してください";
      } 
      if(preg_match('/^[01]$/',$status)===0){
        
        $err_msg[] = 'ステータス値が不正です';
      }
      
      if (is_uploaded_file($_FILES['new_img']['tmp_name']) === TRUE) {
      
        $extension = pathinfo($_FILES['new_img']['name'], PATHINFO_EXTENSION);
      
        if ($extension === 'png' || $extension === 'jpeg'|| $extension === 'jpg') {
       
          $new_img_filename = sha1(uniqid(mt_rand(), true)). '.' . $extension;
        
          if (is_file($img_dir . $new_img_filename) !== TRUE) {
          
            if (move_uploaded_file($_FILES['new_img']['tmp_name'], $img_dir . $new_img_filename) !== TRUE) {
              $err_msg[] = 'ファイルアップロードに失敗しました';
            }
          } else {
            $err_msg[] = 'ファイルアップロードに失敗しました。再度お試しください。';
          }
        } else {
          $err_msg[] = 'ファイル形式が異なります。画像ファイルはJPEGとPNGのみ利用可能です。';
        }
      } else {
        $err_msg[] = 'ファイルを選択してください';
      }
      
      
      
      
      if (count($err_msg) === 0 && $_SERVER['REQUEST_METHOD'] === 'POST') {
         
        $dbh->beginTransaction(); 
        try {
          $sql = 'INSERT INTO ec_item_master (item_name,price,img,status,create_datetime)
          VALUES(?, ?, ?, ?, now())';
  
          $stmt = $dbh->prepare($sql);
  
          $stmt->bindValue(1, $item_name,    PDO::PARAM_STR);
          $stmt->bindValue(2, $price, PDO::PARAM_INT);
          $stmt->bindValue(3, $new_img_filename,    PDO::PARAM_STR);
          $stmt->bindValue(4, $status, PDO::PARAM_INT);
  
          $stmt->execute();
          
          $item_id = $dbh->lastInsertId();
          print '商品を追加しました</br>';
          
          $sql = 'INSERT INTO ec_item_stock (item_id,stock,create_datetime,update_datetime)
          VALUES(?,?,now(),now())';
  
          $stmt = $dbh->prepare($sql);
      
          $stmt->bindValue(1,$item_id, PDO::PARAM_INT);
          
          $stmt->bindValue(2,$stock, PDO::PARAM_INT);
          
          $stmt->execute();
   
          $user = $stmt->fetchAll();
      
          $dbh->commit();
      
          print 'データ登録完了';
        } catch (PDOException $e) {
          throw $e;
          $dbh->rollback();
        
          $err_msg[] = 'データの追加に失敗しました';
          
        }
      } 
    
      
      }else if ($process_kind==='update_stock'){
        if(isset($_POST['stock'])===TRUE){
          $stock=$_POST['stock'];
        }
        if(isset($_POST['item_id'])===TRUE){
          $item_id=$_POST['item_id'];
        }
        if($stock === '') {
          $err_msg[] = '在庫数を入力してください';
    
        } else if (preg_match("/^[0-9]+$/",$stock)!==1) {
          $err_msg[] = "在庫数は0以上の半角数字で入力してください"; 
        }
        
        if(preg_match('/^[0-9]+$/',$item_id)===0){
            $err_msg[] = 'item_idの値が不正です';
        }
      
       if(empty($err_msg)){ 
      
      try{
        
          $sql='update ec_item_stock set stock = ? , update_datetime = ? where item_id = ?';
           
          $stmt = $dbh->prepare($sql);
           
          $stmt->bindValue(1,$stock, PDO::PARAM_INT);
          $stmt->bindValue(2,$date, PDO::PARAM_STR); 
          $stmt->bindValue(3,$item_id,PDO::PARAM_INT);
          
          $stmt->execute();
          print'在庫数を変更しました';
        } catch (PDOException $e) {
          
            throw $e;
      }
    }
      }else if ($process_kind==='change_status'){
        
          if(isset($_POST['status'])===TRUE){
            $status = $_POST['status'];
          }  
          if(isset($_POST['item_id'])===TRUE){
            $item_id = $_POST['item_id'];
          }
          if(preg_match('/[01]/',$status) !== 1){
            $err_msg[] ='不正なステータスが指定されています。';
          }
          if(empty($err_msg)) { 
          $clear_msg[] = 'ステータスが変更されました';
          }
        try{
          
          if(empty($err_msg)){
            if($status === '0'){
              $status = 1;
            }else{
              $status = 0;
            }
            $sql = 'UPDATE ec_item_master SET status = ? ,update_datetime = ? WHERE item_id = ?';
            
            $stmt = $dbh->prepare($sql);
            
            $stmt->bindValue(1,$status, PDO::PARAM_INT);
            $stmt->bindValue(2,$date, PDO::PARAM_STR); 
            $stmt->bindValue(3,$item_id,PDO::PARAM_INT);
              
            
            $stmt->execute();
          }
          
        
        
        } catch (PDOException $e){
          throw $e;
        }
      
      }else if($process_kind==='delete_item'){
        
        if(isset($_POST['item_id'])===TRUE){
            $item_id = $_POST['item_id'];
          }
        if(preg_match('/^[0-9]+$/',$item_id)===0){
            $err_msg[] = 'item_idの値が不正です';
        }
        
        if(empty($err_msg)){
           $dbh->beginTransaction(); 
          try {
            $sql='DELETE FROM ec_item_stock WHERE item_id = ?';
            $stmt = $dbh->prepare($sql);
            $stmt->bindValue(1, $item_id,    PDO::PARAM_INT);
            $stmt->execute();
            
            $sql='DELETE FROM ec_item_master WHERE item_id = ?';
            $stmt = $dbh->prepare($sql);
            $stmt->bindValue(1,$item_id, PDO::PARAM_INT);
            $stmt->execute();

            $dbh->commit();
            $clear_msg[]= 'データ削除完了';
          } catch (PDOException $e) {
            throw $e;
            $dbh->rollback();
          
            $err_msg[] = 'データの削除に失敗しました';
            
          }
          
        }
        
        
      }

  }
    
    $sql = 'SELECT ec_item_master.item_id,item_name,price,img,status,stock_id,stock FROM ec_item_master INNER JOIN ec_item_stock ON ec_item_master.item_id = ec_item_stock.item_id';
      
    $stmt = $dbh->prepare($sql);
    
    $stmt->execute();
    
    $rows = $stmt->fetchAll();
    
    foreach ($rows as $row) {
      $data[] = $row;
    }
} catch(PDOException $e) {
  $err_msg['db_connect'] = 'DBエラー:' .$e->getMessage();
}

?>

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="utf-8">
    <link rel="stylesheet" href="style.css">
    <title>ECサイト</title>
</head>
<body>
    <h1>管理ページ</h1>
    <?php if (count($clear_msg) !== 0) {
    foreach ($clear_msg as $clear) { ?>
      <p><?php print $clear; ?></p>
    <?php }
    } ?>

    <?php if (count($err_msg) !== 0) {
    foreach ($err_msg as $err) { ?>
      <p class="err"><?php print $err; ?></p>
    <?php }
    } ?>
        <h2>商品登録</h2>
        <form method="post" enctype="multipart/form-data">
        <div>商品名:<input type="text" name="item_name"/></div>
        <div>値 段:<input type="text" name="price"/></div>
        <div>部 数:<input type="text" name="stock"/></div>
        <div>商品画像:<input type="file" name="new_img"></div>
        <div>
            ステータス:
        <select name="status">
          <option value="1">公開</option>
            <option value="0">非公開</option>
        </select>
        </div>
        <div><input type="submit" name="insert_item" value="登録をする"/></div>
        <input type="hidden" name="process_kind" value="insert_item">
        </form>
        <h2>商品情報一覧・変更</h2>
        <p>商品一覧</p>
        <table>
            <tr>
                <th>商品画像</th>
                <th>商品名</th>
                <th>価格</th>
                <th>在庫数</th>
                <th>ステータス</th>
                <th>削除ボタン</th>
            </tr>
            <?php foreach ($data as $value) { ?>
            <?php $btn_label = $value['status']===0 ? '非公開 → 公開' :' 公開 → 非公開'; ?>
            <tr <?php echo $value['status']===0 ? 'class="gray"' :''; ?>>
                <form method="post">
                  <td><img src ="<?php print $img_dir . $value['img'];?>"></td>
                  <td><?php print htmlspecialchars ($value['item_name'],ENT_QUOTES);?></td>
                  <td><?php print htmlspecialchars ($value['price'],ENT_QUOTES);?>円</td>
                  <td><input type="text" name="stock" value="<?php print htmlspecialchars ($value['stock'],ENT_QUOTES);?>">個&nbsp;&nbsp;<input type="submit" name="update_stock" value="変更"
anonymous No title
VBA
Option Explicit
Public lngTrib(2)
Sub test1()
    
    Dim i As Long
    Dim j As Long
    Dim str1 As String
    Dim lngUB As Long
    Dim t As Single
    
    t = Timer
    
    Do
        '速度優先のため再帰にせず(一番古い所に新しい値を入れる)
        lngTrib(i Mod 3) = Trib(i)
        str1 = ""
        lngUB = UBound(lngTrib(i Mod 3))
        For j = 0 To lngUB
            If j = lngUB Then
                '最上位はそのまま文字列
                str1 = CStr(lngTrib(i Mod 3)(j)) & str1
            Else
                '下位は8桁
                str1 = Format(lngTrib(i Mod 3)(j), "00000000") & str1
            End If
        Next j
        
        '1000桁で抜ける
        If Len(str1) >= 1000 Then
            Debug.Print str1
            Exit Do
        End If
        i = i + 1
    Loop
    
    Debug.Print Timer - t
    
    
End Sub
Private Function Trib(n As Long) As Long()
    
    Dim lngTmp() As Long
    ReDim lngTmp(0) As Long
    If n = 0 Then
        lngTmp(0) = 0
    ElseIf n = 1 Then
        lngTmp(0) = 0
    ElseIf n = 2 Then
        lngTmp(0) = 1
    Else
        lngTmp() = ArrayPlus(lngTrib(0), lngTrib(1), lngTrib(2))
    End If
    Trib = lngTmp
    
End Function
'配列同士で足し算
Private Function ArrayPlus(ary1, ary2, ary3) As Long()
    
    Dim lngTmp() As Long
    Dim i As Long
    Dim dblTmp As Double
    Dim lngUB As Long
    
    lngUB = WorksheetFunction.Max(UBound(ary1), UBound(ary2), UBound(ary3))
    ReDim lngTmp(lngUB) As Long
    ReDim Preserve ary1(lngUB) As Long
    ReDim Preserve ary2(lngUB) As Long
    ReDim Preserve ary3(lngUB) As Long
    
    For i = 0 To lngUB
        dblTmp = ary1(i) + ary2(i) + ary3(i)

        If lngTmp(i) + dblTmp >= 100000000 Then
            lngTmp(i) = (lngTmp(i) + dblTmp) Mod 100000000
            If i = lngUB Then
                ReDim Preserve lngTmp(lngUB + 1) As Long
            End If
            lngTmp(i + 1) = (dblTmp - lngTmp(i)) / 100000000
        Else
            lngTmp(i) = lngTmp(i) + CLng(dblTmp)
        End If

    Next i
    
    ArrayPlus = lngTmp
    
End Function

anonymous No title
Python
import notification
import clipboard
import keyboard
import datetime
import calendar
import tweepy
import base64
import json
import time
import glob
import os
import sys
import re
import random
import console
import sound

"""
              
 貼り付け後タスクを切りTwitterのリンクをコピーします。
     コピー後Python起動⇨右上の▶︎6桁の数字が出るが
     無視でok 設定 
 
 

"""


"""

   ---使用設定部分---
  
   パスツイ  21:30
   ルーム番号 567
   
      の場合
     ↓↓↓↓↓↓↓↓
     
 pass_tweet_time = "30"      ← 21:00 の場合は"00"  ※分だけを記入します。
 room_id         = "567" 

----- このように下を書き換えます。------
 
"""

pass_tweet_time = "15"
room_id         = "2580" 


"""
     ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
     ⚠️以下書き換えると動作しなくなります
   ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
"""

flag     = 0
flag_S   = 0
password = ""

CK = b'bGxGNWtnRklFSnN5NURPZzhVcEFXZnRnRA=='
CKS = b'd1dsWEFVRGFVOTZOeGxhRHZleVN0bG12YXZlOTJPS3FaSXdTaUJjN29xTzN3dVVGUWY='
AT = "870229653163606016-JYnG3YHSFE49VrRnQzP1Fpaw4xQTTqH"
ATS = "dcWIozBnsPagh3QGHhDCOfvJg66eKrQhAlCU5JhB0LYsj"

basenumber = "0123456789"

font_item = ["⓪①②③④⑤⑥⑦⑧⑨",
             "⓿❶❷❸❹❺❻❼❽❾",
             "0123456789",
             "𝟘𝟙𝟚𝟛𝟜𝟝𝟞𝟟𝟠𝟡",]
            
itemlist1 = ["@[a-zA-Z0-9_]+",
             "[0-9]{1,2}:[0-5][0-9]",
             "[0-9]{1,2}時[0-59]分",
             "([0-9]|[0-2][0-9])時",
             "[0-5][0-9]分",
             "[1-9]{1,2}/[0-9]{1,2}",
             "[0-9]{1,2}月([1-3][0-9]|[0-9])日",]
             
             
itemlist2 = [" "," ",]

message  = {
	"no_update":"【認証成功】パスツイ取得中",
	"code_notification":"この数字をDMで伝えてください:",
	"copy_error":"Twitterリンクのコピー又はフルアクセスの許可をしてください",
	"pass_notfound":"パスワードが取得できませんでした",
	"waiting_passtweet":"からのパスツイ待機中...",
	"stop":"動作可能時間内にパスツイが見つかりませんでした。",
	"success":b'SUToqo3oqLzmiJDlip8=',
	"fail":b'SUToqo3oqLzlpLHmlZc=',
	"repush":"パスツイ予定時間の数秒前にもう一度ボタンを押して下さい",
}







"""
  関数
"""



	
def login(CK,CKS,AT,ATS):
	CK = base64.b64decode(CK.decode())
	CKS = base64.b64decode(CKS.decode())
	auth = tweepy.OAuthHandler(str(CK).split("'")[1],str(CKS).split("'")[1])
	auth.set_access_token(AT,ATS)
	API = tweepy.API(auth)
	return API
	
def exit():
	sys.exit()
	
def get_username():
	user_name = clipboard.get()
	if("https" in user_name):
		user_name = user_name.split("/")
		user_name = user_name[3].split("?")
		user_name = user_name[0]
		return user_name
	else:
		print(message["copy_error"])
		sys.exit()

def ACencrtrpt(a):
	c = str(a)
	c = base64.b64encode(c.encode())
	return c
	
def Test(c,d):
	if c == d:
		return True
	else:
		key = glob.glob("*.pwd")
		key = key[0].split(".")[0]
		print(message["code_notification"]+key)
		sys.exit()
		
def check():
	file = glob.glob("*.pwd")
	i = 0
	if not file:
		key = int(random.uniform(1,99))*int(random.uniform(99,999))*int(random.uniform(1,9))
		key = str(key)
		with open(key+".pwd" , mode="w") as f:
			f.write("")
		notification.schedule(message["code_notification"]+key)
		print(message["code_notification"]+key)
		sys.exit()
	else:
		code = file[0].split(".")[0]
		return code,i
							
def tweet_filter(Tweettext):
	for i in range(10):
		if(font_item[0][i] in Tweettext):
			Tweettext = Tweettext.replace(font_item[0][i],basenumber[i])
		for j in range(10):
			if(font_item[1][j] in Tweettext):
				Tweettext = Tweettext.replace(font_item[1][j],basenumber[j])
			for k in range(10):
				if(font_item[2][k] in Tweettext):
					Tweettext = Tweettext.replace(font_item[2][k],basenumber[k])
				for l in range(10):
					if(font_item[3][l] in Tweettext):
						Tweettext = Tweettext.replace(font_item[3][l],basenumber[l])
	return Tweettext

def tweet_trim(tweet):
	tweet = tweet_filter(tweet)
	for i in itemlist1:
		tweet = re.sub(i,"",tweet)
		for j in itemlist2:
			tweet = tweet.replace(j,"")
	tweet = re.findall(r"\d+",tweet)
	return tweet
	
def get_time_now():
	now_time = datetime.datetime.now()
	now_time = str(now_time).split(" ")[1]
	now_time = now_time.split(":")
	now_time_minute = now_time[1]
	now_time_seconds = now_time[2].split(".")[0]
	return now_time_minute,now_time_seconds
	
	
API  = login(CK,CKS,AT,ATS) 

Check , Check2 = check()


order = API.user_timeline("auto_test_",count=1)

for i in order:
	order = i.text
	
if("del" in order):
	order = order.split(",")[1]
	order = order+".pwd"
	if(os.path.isfile(order)):
		os.remove(order)
		sys.exit()
elif("mes" in order):
	order_ = order.split(",")[1]
	order_mes = order.split(",")[2]
	order_ = order_+".pwd"
	if(os.path.isfile(order_)):
		print(order_mes)
		sys.exit()

if not Check2 == 0:
	exit()

num = glob.glob("*.pwd")
num = num[0].split(".")[0]
print(num)	
user_name = get_username()


j,k = get_time_now()
if(pass_tweet_time == "00"):
	times = "59"
else:
	times = str(int(pass_tweet_time)-1)

if(j == pass_tweet_time):
	s = 0
elif(j == times and int(k) < 40):
	print(message["repush"])
	sys.exit()
elif not j == times and not j == pass_tweet_time:
	print(message["repush"])
	sys.exit()

print("@"+user_name+message["waiting_passtweet"])

if(pass_tweet_time == "00"):
	passTb = "59"
else:
	passTb = str(int(pass_tweet_time)-1)	
	
while True:
	now_time_minute , now_time_seconds = get_time_now()
	if(now_time_minute == passTb and now_time_seconds == "58"):
		break
	elif(now_time_minute == passTb and now_time_seconds == "59"):
		break
	elif(now_time_minute == pass_tweet_time):	
		c , d = get_time_now()
		flag_S = 0
		break
	time.sleep(0.01)
		
while True:
	
	a , b = get_time_now()
	
	if(flag_S == 0):
		if(b == "12"):
			print(message["stop"])
			sys.exit()
	else:
		if(int(d) >= 50):
			if(b == "59"):
				print(message["stop"])
				sys.exit()
		else:
			if(int(b) == int(d)+12):
				print(message["stop"])
				sys.exit()
				
	tweet = API.user_timeline(user_name,count = 1)
	for i in tweet:
		tweet = i.text
		tweet_time = i.created_at
	
	tweet_time = re.findall(r"\d+",str(tweet_time))
	tweet_time_minute = tweet_time[4]
	tweet_time_second = tweet_time[5]
		
	if(pass_tweet_time == "00"):
		pass_tweet_time_ = "59"
	else:
		pass_tweet_time_ = str(int(pass_tweet_time)-1)
		if(len(pass_tweet_time_) == 1):
			pass_tweet_time_ = "0" + pass_tweet_time_
	for i in range(57,60):
		if(pass_tweet_time_ == tweet_time_minute and str(i) == tweet_time_second):
			flag = 1	
	if(pass_tweet_time == tweet_time_minute):
		flag = 1
		
	if(flag == 1):
		break
	else:
		console.clear()
		print(message["no_update"]+" ["+str(datetime.datetime.now()).split(" ")[1]+"]")
	time.sleep(0.02)

tweet = tweet_trim(tweet)

if(room_id in tweet):
	room_id_index = tweet.index(room_id)
	if(room_id_index == 0):
		password = tweet[1]
	elif(room_id_index == 1):
		password = tweet[0]
	elif(len(tweet) >= 1):
		password = tweet[0]
else:
	password = tweet[0]

sound.play_effect(name="arcade:Coin_3",volume=0.025)
keyboard.insert_text(password)
keyboard.insert_text("\n")
notification.schedule(password)
print(password)
sys.exit()
しゃあ@やっぱりVBAが好き No title
VBA
Option Explicit

Type RecType
    Bucket As Integer   '処理するバケツ0or1
    OpeType As Integer  '処理:-1=両方空にする。0=満タンにする。1=空にする。2=相手が満タンになるまで入れる。
    Water(1) As Integer '処理した結果の水の量。0=Aバケツの水の量、1=Bバケツの水の量。
End Type

Dim Rec(100) As RecType '処理の記録。100回もあればいいかな。

Dim MinRec(100) As RecType  '回数がもっとも少ないパターンを保存する。
Dim NumOfMinRec As Integer

Dim Capa(1) As Integer  'バケツABのキャパ
Dim tgtL As Integer     '目標の量

Public Sub Main()
    Call OpeMain(3, 5, 4) 'Acapa, Bcapa, 目標量
End Sub

Private Sub OpeMain(aCapa As Integer, bCapa As Integer, tgtLittle As Integer)
'初期設定と再帰呼び出し。結果表示
    Dim i As Integer
    
    Capa(0) = aCapa
    Capa(1) = bCapa
    tgtL = tgtLittle
    NumOfMinRec = 100
    Call Operation(0, -1)   '初期化から開始

    '結果表示
    If NumOfMinRec < 100 Then
        Debug.Print "A容量=" & aCapa; "L,B容量=" & bCapa & "L"
        For i = 0 To NumOfMinRec
            If MinRec(i).OpeType <> -1 Then
                Debug.Print i & ":A=" & MinRec(i).Water(0) & "L, B=" & MinRec(i).Water(1) & "L:" & _
                            Choose(MinRec(i).Bucket + 1, "A", "B") & "を" & _
                            Choose(MinRec(i).OpeType + 1, "満タンにした。", "空にした。", "相手に入れた。")
            End If
        Next
    End If

End Sub

Private Sub Operation(ByVal n As Integer, Optional OpeType As Integer, Optional TgtAB As Integer)
'=============================================
'再帰処理
'引数:
'  n:Rec配列のn番目を利用。
' OpeType:0=満タンにする。1=空にする。2=相手が満タンになるまで入れる。
'  TgtAB:0=Aバケツを対象、1=Bバケツが対象
'=============================================
    Dim i As Integer, j As Integer, k As Integer
    Dim ChangeFlag As Boolean

    If n > UBound(Rec) Then Exit Sub        '回数多いのであきらめ
    
    Rec(n).Bucket = TgtAB
    Rec(n).OpeType = OpeType
    
    ChangeFlag = False
    Select Case OpeType
    Case -1                     '初期化。使うのは最初のみ。
        Rec(n).Water(0) = 0
        Rec(n).Water(1) = 0
        ChangeFlag = True
    Case 0  '満タンにする
        If Rec(n - 1).Water(TgtAB) < Capa(TgtAB) Then   '既に満タンならこれ以上深くいかない
            Rec(n).Water(TgtAB) = Capa(TgtAB)
            Rec(n).Water(1 - TgtAB) = Rec(n - 1).Water(1 - TgtAB)
            ChangeFlag = True
        End If
    Case 1  '空にする
        If Rec(n - 1).Water(TgtAB) > 0 Then             '既に空ならこれ以上深くいかない
            Rec(n).Water(TgtAB) = 0
            Rec(n).Water(1 - TgtAB) = Rec(n - 1).Water(1 - TgtAB)
            ChangeFlag = True
        End If
    Case 2  '相手が満タンになるまで入れる
        If Rec(n - 1).Water(TgtAB) > 0 And Rec(n - 1).Water(1 - TgtAB) < Capa(1 - TgtAB) Then   '自分に移す水があり、相手に入れる余裕があること
            Rec(n).Water(TgtAB) = WorksheetFunction.Max(0, Rec(n - 1).Water(TgtAB) - (Capa(1 - TgtAB) - Rec(n - 1).Water(1 - TgtAB)))
            Rec(n).Water(1 - TgtAB) = WorksheetFunction.Min(Rec(n - 1).Water(1 - TgtAB) + Rec(n - 1).Water(TgtAB), Capa(1 - TgtAB))
            ChangeFlag = True
        End If
    End Select

    If ChangeFlag = True Then   '変化があったか?
        If Rec(n).Water(0) = tgtL Or Rec(n).Water(1) = tgtL Then    '4L達成で終了
            If NumOfMinRec > n Then '最小ルートの記録
                NumOfMinRec = n
                For i = 0 To n
                    MinRec(i) = Rec(i)
                Next
            End If
        Else
            If CheckPrevious(n, Rec(n).Water(0), Rec(n).Water(1)) = False Then  '過去に同じ状態があったか否かを確認
                For j = 0 To 1                  'バケツABの処理
                    For k = 0 To 2              '処理012の処理を全パターン実施
                        Call Operation(n + 1, k, j)
                    Next
                Next
            End If
        End If
    End If
End Sub

Private Function CheckPrevious(n As Integer, aW As Integer, bW As Integer) As Boolean
    '過去に同じ状態があったかどうかを確認する。あったらTrue、なかったらFalse
    Dim i As Integer
    CheckPrevious = False
    For i = 0 To n - 1
        If Rec(i).Water(0) = aW And Rec(i).Water(1) = bW Then
            CheckPrevious = True
            Exit For
        End If
    Next
End Function

'A容量=3L,B容量=5L
'1:A=0L, B=5L:Bを満タンにした。
'2:A=3L, B=2L:Bを相手に入れた。
'3:A=0L, B=2L:Aを空にした。
'4:A=2L, B=0L:Bを相手に入れた。
'5:A=2L, B=5L:Bを満タンにした。
'6:A=3L, B=4L:Bを相手に入れた。
anonymous No title
PHP
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>mission_3-3</title>
</head>

<body>
    <form action="" method="post">
        <!--<input type="str" name="str" placeholder="コメント">         -->
        <!--<input type="submit" name="submit">-->
        <b>投稿フォーム</b>
        <p>お名前:
	    <input type="name" name="name"></p>
	    <p>コメント:
	    <input type="str" name="comment"></p>
	    <input type="submit" name="submit"><br><br>
	    
	    <b>削除フォーム</b>
	    <p>投稿番号:
	    <input type="text" name="deletenumber"></p>
        <input type="submit" name="delete" value="削除"><br><br>
        
    </form>
    
<?php

//  投稿フォーム  

    $name = $_POST["name"];
    $str = $_POST["comment"]; //変数$strの定義
    $date = date("Y/m/d H:i:s");
    $filename="mission_3-2.txt";
    $num = count( file( $filename ) ); // ファイルのデータの行数を数えて$numに代入
    $num++; // 投稿番号を取得
    $data = $num."<>".$name."<>".$str."<>".$date."\n";
    
    if(!empty($name && $str))  
{ 
    $fp = fopen($filename,"a");
    fwrite($fp, $data);
    fclose($fp);
}    
   
 
//   削除フォーム  

if($_POST["delete"])
    { //削除ボタンが押されたら処理
    
        $delete = $_POST["deletenumber"];
        
        $deletefile = file($filename); //ファイルを全て配列に入れる
        $fp = fopen($filename, "w");
        
        foreach($contents as $content) 
        {
            $de_lete = explode("<>", $content); //1行ずつ配列に入れる
            if($de_lete[0] != $delete)
            {
                fwrite($fp,$content);
            }
            else
            {
               fwrite($fp,"".PHP_EOL); //""で削除できる
            } 
    
        }
        fclose($fp);
    }
    
   
// 表示    
    
    $contents = file($filename); //txtファイルを読み込む
        
        foreach($contents as $content)
        {//ループ処理
            $line = explode("<>",$content);
                echo $line[0]." ".$line[1]." ".$line[2]." ".$line[3]."<br>";
        }

?>    
</body>
</html>