2015-10-15 20 views
0

我想在php中创建一个脚本,在数据库中注册一个电子邮件,并且他们在下面有两个复选框,选项1和选项2,我完成了第一部分。管理脚本以便在数据库中连接并注册电子邮件但我不知道如何注册复选框。任何想法?如何在数据库中注册复选框?

<?php 
    include_once('mysql.php'); 
    db_connect(); 

    if(isset($_POST['email'])){ 
    $email = $_POST['email']; 
    if(mysql_query("INSERT INTO subscribe(email) VALUES('$email')")) 
{ 
    ?> 
     <script>alert('Abonat cu succes');</script> 
     <?php 
} 
else 
{ 
    ?> 
     <script>alert('Va rog introduceti un email valid');</script> 
     <?php 
} 
} 
?> 


<form name="form1" method="post" action="" class="bk"> 
    <fieldset> 
    <p align="center" class="txt">Subscribe E-mail:<br> 
    <input name="email" type="text" size="20" class="txtbox"> 
    <input type="submit" name="submit" value="Go" class="button"><br> 
    <input type="checkbox" name="evenimente" value="Evenimente">Evenimente 
    <input type="checkbox" name="anunturi" value="Anunturi">Anunturi 
    </p> 
    </fieldset> 
</form> 

表格中的默认值为0,如果选中它们,我想给它们赋值1,否则赋0。

+2

你甚至尝试过吗?作为一个方面说明,未经检查的复选框甚至不会通过POST请求发送... –

+1

如果输入'[email protected]'); DROP TABLE订阅; - '在你的电子邮件字段中,它会破坏你的系统。查找SQL注入并且不使用'mysql_'函数。 –

+1

Echo out你的POST数组,看看变量/值是什么,并从那里工作 – foxbeefly

回答

1

未选中复选框不与发送POST/GET请求,只检查的:

UNCHECKED:

Array 
(
) 

CHEC KED:

Array 
(
    [checkme] => on 
) 

你必须在$_POST超全局,以验证该字段存在。

if (isset($_POST['checkme'])) { 
    // do stuff when checked 
} else { 
    // do stuff when don't 
} 
0

您将获得$_POST['evenimente']$_POST['anunturi']中的值。您可以在PHP脚本检查并在数据库中保存

检查它们在PHP中的意思是:我们不会找到$_POST是关键,如果他们不检查,所以我们可以检查isset($_POST[key]),并决定对数据库中的值

+0

如果'evenimente'未选中,将发送什么值? –

+0

0或false。你可以回显并看到。 –

+0

然后你会回应它。你测试过了吗?我真的怀疑你会在那里发现0或错误。 –

相关问题