我正在尝试将表单输入到使用数值(主要是小数)的数据库中
此表单更新并插入正常,但我希望NULL字段插入NULL数据库.
如果我将字段留空,它仍会放入0.000数据库.我将数据库设置为NULL = YES
是否有一小段代码我可以用来为所有14个文本框执行此操作?
这是我的代码:
<?php
if (isset($_POST['submit'])) {
$date2 = date("y-m-d"); // DATE OF TANK ADDITION
$time2 = date("H:i:s", time() - 3600); // TIME OF TANK ADDITION
$test1 = $_POST['test1'];
$test2 = $_POST['test2'];
$test3 = $_POST['test3'];
$test4 = $_POST['test4'];
$test5 = $_POST['test5'];
$test6 = $_POST['test6'];
$test7 = $_POST['test7'];
$test8 = $_POST['test8'];
$test9 = $_POST['test9'];
$test10 = $_POST['test10'];
$test11 = $_POST['test11'];
$test12 = $_POST['test12'];
$test13 = $_POST['test13'];
$test14 = $_POST['test14'];
$time …Run Code Online (Sandbox Code Playgroud) 我有函数,首先:JS:
$(document).ready(function() {
//dodavanje novog racuna
$(function() {
$('#addFieldForm').submit(function(e) {
e.preventDefault();
if ( $(this).parsley('validate') ) {
$.ajax({
url: "insertRacun.php",
type: "POST",
async: true,
data: { sifra:sifra,brojracuna:$("#brojracuna").val(),sufiks:$("#sufiks").val(),kupac:$("#kupac").val(),adresa:$("#adresa").val(),grad:$("#grad").val(),pib:$("#pib").val(),total:$("#total").text(),valuta:$("#valuta").val(),nacin:$("#nacin").val(),datum:$("#datum").val(),rok:$("#rok").val(),isporuka:$("#isporuka").val(),napomena:$("#napomena").val(),interna:$("#interna").val(),ponovi:$("#ponovi").val()},
dataType: "html",
etc...
Run Code Online (Sandbox Code Playgroud)
php:
try {
$STH = $db->prepare("INSERT INTO racuni (br, sufiks, kupac, adresa, grad, pib, total,valuta,nacin,datum,rok,isporuka,napomene,interne, user_id,sifra) VALUES (:0,:1,:2,:3,:4,:5,:6,:7,:8,:9,:10,:11,:12,:13,:14,:15)");
$STH->bindParam(':0', $_POST['brojracuna']);
$sufiks=$_POST['sufiks'];
$STH->bindParam(':1', $sufiks);
$STH->bindParam(':2', $_POST['kupac']);
$STH->bindParam(':3', $_POST['adresa']);
etc....
Run Code Online (Sandbox Code Playgroud)
当我尝试添加时:
Luciansdasadsda"><script>alert(1)</script>
Run Code Online (Sandbox Code Playgroud)
然后我在数据库中获得相同的值。
那么如何在我的代码中防止 XSS 和 SQL 注入呢?还如何防止拒绝服务(导致创建过多的行)?
这是我的JS文件
function save()
{
var hist = document.getElementById("hist").value;
var mission = document.getElementById("mission").value;
var params = "history=" + hist+ "&mission=" + mission;
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function()
{
if (this.readyState == 4 && this.status == 200 )
{
UserAccountInfo = this.responseText;
alert(UserAccountInfo);
}
}
xmlhttp.open("POST","savecompany.php",true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send(params);
}
Run Code Online (Sandbox Code Playgroud)
历史消息将是
由工程师 Anas El-Menoufi 创立,他在 WC Heraus GmbH 担任非洲和中东市场营销顾问和业务开发经理 8 年。自 1983 年以来,MYMSA 被埃及市场认可为埃及和中东和北非地区首批专门为多个领域的初级和二级测试和校准实验室提供解决方案、仪器、咨询和售后服务的公司之一。
使命将是
旨在通过提供最好的咨询、提高市场知名度以及与世界各地最好的制造商合作来赢得客户的信任和满意度。
我们相信,我们内部能力的建设将会反映在市场上。
将这些变量发送到 PHP 文件后
历史变成了
由工程师 Anas El-Menoufi 创立,他在 WC Heraus GmbH 担任非洲和中东市场营销顾问和业务开发经理 …
确保get/post参数不会提供任何安全漏洞的最有效方法是什么.
我是javascript代码注入预防和addslashes的家庭,以防止SQL注入.
所以..现在我在每个get/post参数上都使用它们.
我可以使用任何其他功能来更好地防止这些漏洞或是否有任何其他安全问题,我应该担心与我的PHP代码有关?
我正在寻找一个简单的PHP解决方案来阻止表单中的空输入值提交空输入字段.表格的代码如下.如果可能的话,我想使用简单的PHP(非Javascript)解决方案.
Form.php 码:
<form name="form" method="post" action="add.php">
<input type="text" name="url" id="url">
<button type="submit" id="submit">submit</button>
</form>
Run Code Online (Sandbox Code Playgroud)
add.php 码:
$url=$_POST['url'];
$sql= "insert into my_table set url='$url'";
mysql_query($sql) or die("query failed: $sql".mysql_error());
$msg= 'URL Added Thank You';
session_register('msg');
header("Location: form.php ");
exit;
Run Code Online (Sandbox Code Playgroud)
如果有任何PHP解决方案,以防止在表单提交之前或提交之后提交空输入,那么它可以将我发回给form.php.
谢谢.
我的问题是在搜索查询中使用符号。我希望用户能够使用符号而不会出现问题,但是 mysql 中的 LIKE 函数似乎不是解决方案,所以我需要一些帮助。
示例:如果有人搜索“Blue's car”并且“Blues car”在数据库中,则此查询将返回 0 个结果。或者反之亦然,如果有人搜索“Blues car”并且“Blue's car”在数据库中,则此查询也将返回 0 个结果。
这是我当前正在使用的示例:
("SELECT Title FROM MyData WHERE Title LIKE '%".$search."%'")
Run Code Online (Sandbox Code Playgroud)
还有其他方法可以提供更好的搜索结果吗?
谢谢。
我看到了几个例子,人们用这种方式在登录表单中查询数据库.我不完全确定这是安全登录表单的最佳方式.
这是PHP中的查询:
$query = "SELECT * FROM users WHERE usern = '".$_POST['username']."' AND passw = '".md5($_POST['password'])."'";
Run Code Online (Sandbox Code Playgroud)
是否在密码帖子上有md5()以避免sql注入?我认为md5函数会将所有字符和sql字符串转换为32个char字符串.
我可以通过哪些其他方式保护登录表单?
保护我的项目免受攻击(例如:SQL注入)我使用下面的查询参数页面(*.php?query = value):
$id=strip_tags($id);
$id=mysql_real_escape_string($id);
if(is_numeric($id) && strlen($id)<=3) //id are numbers maximum of 3 digits
Run Code Online (Sandbox Code Playgroud)
strip_tags()可以根据需要过滤数据.bcrypt()mcrypt_ecb()isset($_SESSION["id"])登录时访问.error_reporting(0);隐藏错误.$_POST 代替 $_REQUESTmysql_real_escape_string(); 对于每一个输入实际上我的项目将由大学使用,并且我对安全性的关注很紧张,因为回溯使其易于渗透,因此我努力使其安全.(我知道这是一个很大的问题,但任何形式的帮助都会非常有用)但作为一名学生,我想知道我还缺少什么才能使其安全?
我一直在寻找这个,但我找不到最重要的部分 - 使用什么领域.
我想保存textarea而不允许任何类型的JavaScript,HTML或PHP.
在将其保存到数据库中之前,我应该通过发布的textarea运行哪些函数?我应该在数据库中使用哪种字段类型?这将是一个描述,最多1000个字符.
我已经完成了获取和显示数据.但问题是,它在html表的同一行显示获取行的数据.例如:我想要像这样显示
ID | Name | Desination
......................
1 | ABC | Developer
2 | PQR | Tester
3 | XYZ | Developer
Run Code Online (Sandbox Code Playgroud)
但其显示为 -
ID | Name | Desination
......................
1 | ABC | Developer 2 | PQR | Tester 3 | XYZ | Developer
Run Code Online (Sandbox Code Playgroud)
我做过类似的事 -
$sql = " SELECT candidate.cand_number,candidate.cand_fname,candidate.cand_desc FROM candidate ".$join.' where '.$condition;
$result = mysql_query($sql) or die(mysql_error());
Run Code Online (Sandbox Code Playgroud)
用表格的显示格式纠正我.
<div class="box-body table-responsive no-padding">
<table class="table table-hover">
<tr>
<th>ID</th>
<th>Name</th>
<th>Designation</th>
</tr>
<tr>
<?php
If(mysql_num_rows($result)>0)
{
while($row=mysql_fetch_array($result)) …Run Code Online (Sandbox Code Playgroud) 我想知道哪个更强filter_var或mysqli_real_escape_string.
更具体。
选项1:
//Course Title
$ctitle = trim($_POST['courseTitle']);
$clean_ctitle = filter_var($ctitle, FILTER_SANITIZE_STRING);
Run Code Online (Sandbox Code Playgroud)
选项2:
//Course Title
$ctitle = trim($_POST['courseTitle']);
$clean_ctitle = mysqli_real_escape_string($con, $ctitle);
Run Code Online (Sandbox Code Playgroud)
我也知道准备好的语句,但我想预先过滤进来的数据。如果有其他选择,请告诉我。