更改PHP和&amp ;; MYSQL

时间:2015-03-22 12:15:57

标签: php mysql

我有一个用户列表和带有输入框的页面更改信息是旧值 然后点击发送它需要更改值。 它什么都不做 (对不起我的英文)

这是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 'פרטים עודכנו בהצלחה';
        }
    }
    }

    }
?>

2 个答案:

答案 0 :(得分:1)

你有一个错字。首先设置一个变量:

$chagne = $_POST['change'];

然后检查另一个变量:

if(isset($change)) {

在此代码中,永远不会设置$change。所以if语句总是错误的。


另外,请注意您的代码 非常容易受到SQL注入 。看看here,了解这意味着什么。但最重要的是,您目前正在执行用户输入作为代码,它允许任何用户在您的数据库上执行任何代码。正确方向的重要一步是使用prepared statements而不是字符串连接来构建查询。

此外,您以纯文本格式存储用户密码。这对您的用户 严重不负责任 。您基本上是在收集人们的密码并将其存储在高度不安全的数据库中。请了解如何正确散列密码,以便无法检索它们。

答案 1 :(得分:1)

你变量:

 $chagne = $_POST['change'];

将$ change替换为$ change

和你的if:

 if(isset($change)) {

尝试并更加小心您的变量名称。