Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更改PHP中的值&;MYSQL_Php_Mysql - Fatal编程技术网

更改PHP中的值&;MYSQL

更改PHP中的值&;MYSQL,php,mysql,Php,Mysql,我有一个用户列表和带有输入框的页面更改信息是旧值 然后单击send,它需要更改值。 它什么也不做 (对不起我的英语) 这是editInfo.php: <?php session_start(); $connect = mysql_connect("host", "username", "password"); mysql_select_db("databasse"); if(!$connect) { die("החיבור כשל"); } ?> <?php if(iss

我有一个用户列表和带有输入框的页面更改信息是旧值 然后单击send,它需要更改值。 它什么也不做 (对不起我的英语)

这是editInfo.php:

 <?php
session_start();

$connect = mysql_connect("host", "username", "password");
mysql_select_db("databasse");

if(!$connect) { die("החיבור כשל"); }
?>
<?php
if(isset($_SESSION['username'])) {

    $sql = mysql_query("SELECT * FROM `user` WHERE `Username` = '".$_SESSION['username']."'; ");

    while($info = mysql_fetch_array($sql)) {
        $ID = $info["ID"];
        printf("
        <form action='editInfo.php' method='post'>
        שם משתמש: <input type='username' name='username' value='%s'/> <br>
        סיסמה חדשה: <input type='password' name='password' value=''/> <br>
        שם: <input type='text' name='name' value='%s'/> <br>
        אימייל: <input type='email' name='email' value='%s'/> <br>
        <input type='submit' name='change' value='עדכן' />
        </form>", $info["Username"], $info["Name"], $info["Email"]);

    $newUsername = $_POST['username'];
    $newPassword = $_POST['password'];
    $newName = $_POST['name'];
    $newEmail = $_POST['email'];
    $chagne = $_POST['change'];

    if(isset($change)) {
        $changeCode = "UPDATE `users`.`user` SET `Name` = '$newName', `Username` = '$newUsername', `Password` = '$newPassword', `Email` = '$newEmail' WHERE `user`.`Username` = '".$info["username"]."';";

        $changeQuery = mysql_query($changeCode);
        $runIt = mysql_num_rows($changeQuery);

        if(!$runIt) {
            echo 'לא הצלחנו לשנות את הפרטים';
        }
        else {
            echo 'פרטים עודכנו בהצלחה';
        }
    }
    }

    }
?>


你打错了。首先设置一个变量:

$chagne = $_POST['change'];
if(isset($change)) {
 $chagne = $_POST['change'];
然后检查另一个变量:

$chagne = $_POST['change'];
if(isset($change)) {
 $chagne = $_POST['change'];
在此代码中,永远不会设置
$change
。因此,
if
语句将始终为false


另外,请注意,您的代码非常容易受到SQL注入的攻击。看看这是什么意思。但底线是,您当前正在以代码的形式执行用户输入,这允许任何用户在您的数据库上执行任何代码。正确方向上的一个重要步骤是使用而不是字符串连接来构建查询

此外,您正在以纯文本形式存储用户密码。这对你的用户来说是非常不负责任的。您基本上是在获取人们的密码并将其存储在一个高度不安全的数据库中。请学习如何正确散列密码,以便无法检索密码。

您可以选择以下变量:

$chagne = $_POST['change'];
if(isset($change)) {
 $chagne = $_POST['change'];
将$chagne替换为$change

如果:

 if(isset($change)) {

试着对变量名更加小心。

我意识到这里存在语言障碍,但很难理解您的要求。你能澄清一下吗?另外,请注意,此代码中充满了SQL注入漏洞。首先,我知道代码不受sql注入的影响,最后我会保护它。我想要打印的页面,用户连接到他写的注册信息,他可以编辑这些信息,并在数据库中更新。不,这段代码不受SQL注入的影响。这段代码以多种不同的方式非常容易受到SQL注入的攻击。此外,您还以纯文本形式存储用户密码。这是非常不负责任的。请了解什么是SQL注入,以便保护您的代码不受其影响。并且请停止获取他人的密码。@选择:如果这回答了您的问题,请接受它。要执行此操作,请找到其左侧的“勾号”标记并单击它,使其变为绿色。这是我们将问题标记为已解决的方式。