echo "<form method='POST' action=''><br>";
$query = mysql_query("set names 'utf8'");
$query = mysql_query("
SELECT * FROM pages WHERE user_id = '$_SESSION[user_id]'
") or die(mysql_error());
while($pagek = mysql_fetch_array($query)) {
$name = $pagek['page_name'];
$pageid = $pagek['page_id'];
echo '<input type="checkbox" name="page_ids[]" value="'.$pageid.'">'
.$name
."<br>";
}
echo "<br>
<input type='submit'
value='Adatok frissítése'
name ='adat'
class='button small radius center black'
>";
echo "</form>";
foreach($_POST['page_ids'] as $page){
if ($page){
mysql_query("
UPDATE pages
SET page_value = '0'
WHERE user_id = '$_SESSION[user_id]'
");
mysql_query("
UPDATE pages
SET page_value = '1'
WHERE user_id = '$_SESSION[user_id]'
AND page_id = '$page'
");
}
}
我喜欢,然后如果选中了哪个复选框,则此mysql更新1,并且大于0。
这段代码不好,这里只有一个网站更新,其余的都是零,你可以随时选择一个网站
答案 0 :(得分:3)
<强>首先!强>
Please, don't use
mysql_*
functions in new code。它们不再被维护and are officially deprecated。请参阅red box?转而了解prepared statements,并使用PDO或MySQLi - this article将帮助您确定哪个。如果您选择PDO here is a good tutorial。
说真的,您的代码包含一个名为 SQL Injection 的严重漏洞。如果您不修复它,您的网站可能会 很容易受到损害。
未选中复选框根本无法提交。所以基本上,你的服务器什么都看不到。
要考虑到这一点,您应该做的是默认情况下将其设置为0 ,无条件地然后,如果选中该复选框,则将其设置为1。
是的,它确实要求您在请求中进行2次查询,但这是确保获得所需结果的唯一方法。
答案 1 :(得分:2)
您可以使用isset()
查看是否已选中该复选框。
if(isset($_POST['checkbox']))
{
$update = 1;
}
else
{
$update = 0;
}
然后在查询中添加$ update。希望这会有所帮助。
答案 2 :(得分:0)
尝试$ _SESSION vars,如:
UPDATE pages SET page_value = '0' WHERE user_id = {$_SESSION['user_id']}
UPDATE pages SET page_value = '1' WHERE user_id = {$_SESSION['user_id']} AND page_id = '$page'
使用mysql_real_escape_string
获得更高的安全性:
$pages = mysql_real_escape_string(serialize($_POST['page_ids']));
foreach($pages as $page) {
// action
}
答案 3 :(得分:0)
在正确的解决方案中解决任务:
echo "<form method='POST' action=''><br>";
$query = mysql_query("set names 'utf8'");
$query = mysql_query("SELECT * FROM pages WHERE user_id = '$_SESSION[user_id]' ") or die(mysql_error());
if(mysql_num_rows($query) == 0) {
echo "<tr><td colspan=\"3\">Nincs megjeleníthető Facebook oldalad! Kérlek jelentkezz be az FB Login menüpont alatt!</td></tr>";
} else {
echo "<u>Kérem válassza ki melyik oldalaira szeretne képet feltölteni!</u><br><br><br>";
while($pagek = mysql_fetch_array($query)) {
$name = $pagek['page_name'];
$pageid = $pagek['page_id'];
echo '<input type="checkbox" name="page_ids[]" value="'.$pageid.'">'.$name."<br>";
}
echo "<br><input type='submit' value='Adatok frissítése' name ='adat' class='button small radius center black'>";
echo"</form>";
if($_POST['adat']){
mysql_query("UPDATE pages SET page_value = '0' WHERE user_id = '$_SESSION[user_id]' ");
foreach($_POST['page_ids'] as $page){
$pa = $page;
if ($pa){
mysql_query("UPDATE pages SET page_value = '1' WHERE user_id = '$_SESSION[user_id]' AND page_id = '$page' ");
}
}
}
}
}