php echo exit()和可选字段
两件小事: 我使用此PHP控制脚本将可选字段更新到数据库中:php echo exit()和可选字段,php,mysql,echo,exit,Php,Mysql,Echo,Exit,两件小事: 我使用此PHP控制脚本将可选字段更新到数据库中: if(strlen($nome) == ""){$_POST['nome'] = $nome_vecchio; } elseif(strlen($nome) < 2 || strlen($nome) > 20 ) {echo('Se vuoi modificare il campo nome, assicurati che lo stesso sia superiore ai
if(strlen($nome) == ""){$_POST['nome'] = $nome_vecchio; }
elseif(strlen($nome) < 2 || strlen($nome) > 20 )
{echo('Se vuoi modificare il campo nome, assicurati che lo
stesso sia superiore ai 2 caratteri ed inferiore ai 20!</br>'); exit();}
用“”覆盖我的数据库中的字段
为了更好地解释我在代码上的工作方式,我把我写的全部都寄给你,也许这是我从未见过的另一个错误,或者我从来没有考虑过像一个错误!我希望你能理解我的意大利面英语!:)
if(isset($\u POST['modifica\u dati']))
{
$nome=$_POST['nome'];
$query\u nome=mysql\u query(“从Uteni中选择nome,其中id=”。$\u会话['login']。“'LIMIT 1”);
$row\u nome=mysql\u fetch\u数组($query\u nome);
$nome_vecchio=$row_nome['nome'];
$nome=trim($nome);//确保开头或结尾没有多余的空格
如果(strlen($nome)==0{$_POST['nome']=$nome_vecchio;}
如果(斯特伦($nome)<2 |斯特伦($nome)>20)
{
标题('位置:“error.php')
echo('Se vuoi modificare il campo nome,assiciurati che lo
上一级ai 2克拉下一级ai 20!');退出();}
如果(是数字($nome))
{echo('Se vuoi modificare il campo nome,assiciurati che lo
没有内部数字!
”;退出();}
//不含卡拉特和诺西维的验证
elseif(!preg_match('/^[A-Za-z\'-]+$/i',$nome)){
echo“Il nome contiene caratteri non-ammessi!
”;退出();}
}
哪里不对?试试这些:
if()
语句,在echo
exit()
之前,发出重定向调用。与此类似,header('Location:'script\u name\u here.php')
strlen()
返回一个int,因此将其与0
进行比较,而不是与“
进行比较。像这样,if(strlen($nome)==0{}
在表单页面上显示消息可以通过两种方式完成。如果使用处理表单的相同脚本显示表单,则可以将消息放入变量中,稍后再显示。当然,您需要额外的代码来防止数据库被更改(可能像添加一个
$\u POST['nome']=$nome\u vecchio;
而不是退出
如果您的脚本是独立的,那么@Valkyrurr建议的重定向也是可能的。您需要提供一种指示错误的方法
正如其他地方提到的,strlen()
没有正确使用
$nome = trim($nome); // Make sure there are no extra spaces at beginning or end
if (strlen($nome) == 0) {
$_POST['nome'] = $nome_vecchio;
}
strlen()
函数返回int,而不是空字符串。我也尝试过if($nome==”){$\u POST['nome']=$nome\u vecchio;}和相同的结果…正确的方法是if((int)strlen($nome)<1)
。我尝试过if((int)strlen($nome)<1)但它用“”)覆盖数据库,而不是写入包含的名称。
$nome = trim($nome);
if (strlen($nome) == 0) {
$_POST['nome'] = $nome_vecchio;}
if(isset($_POST['modifica_dati']))
{
$nome = $_POST['nome'];
$query_nome = mysql_query("SELECT nome FROM utenti WHERE id = '" . $_SESSION['login'] . "' LIMIT 1");
$row_nome = mysql_fetch_array($query_nome);
$nome_vecchio = $row_nome['nome'];
$nome = trim($nome); // Make sure there are no extra spaces at beginning or end
if(strlen($nome) == 0){$_POST['nome'] = $nome_vecchio; }
if(strlen($nome) < 2 || strlen($nome) > 20 )
{
header('Location: "errore.php"')
echo('Se vuoi modificare il campo nome, assicurati che lo
stesso sia superiore ai 2 caratteri ed inferiore ai 20!</br>'); exit();}
if (is_numeric($nome))
{echo('Se vuoi modificare il campo nome, assicurati che lo
stesso non cntenga numeri al suo interno!<br>'); exit();}
// verifico che il nome non contenga caratteri nocivi
elseif (!preg_match('/^[A-Za-z \'-]+$/i',$nome)) {
echo 'Il nome contiene caratteri non ammessi!<br>'; exit();}
}
$nome = trim($nome); // Make sure there are no extra spaces at beginning or end
if (strlen($nome) == 0) {
$_POST['nome'] = $nome_vecchio;
}