Link: Pvalue
The main idea
This is one of the best ways to prevent Phacking.
The concept is to do some simple math to adjust the pvalue for all tests. After the adjustment, some False Positives in pvalue result with small pvalue would be > 0.05.
To refresh what is False Positives:
The term, False Discovery Rate (FDR) is used interchangeably with the “BenjaminiHochberg method”.
The BenjaminiHochberg method: sum of pvalue histograms
It adjusts pvalues and make them larger to limit the numbers of false positivies by looking at the smallest pvalue bin in Distribution of pvalue.
Eyeball method: We draw a line at the top of the evenly distributed pvalues, and extend the line to separate the false positives from true positives.
The math behind BenjaminiHochberg method
 Order pvalues from smallest to largest
 Rank pvalues
 The largest FDR adjusted pvalue
 The next largest adjusted pvalue, which is the smallest of the two options:

The previous adjusted pvalue

Adjust pvalue based on rank:
$current pvalue×current pvalue ranktotal num of p values $

 Repeat step 4