Member 13761429 Ответов: 1

Проблема обновления.... не могу обновить.помогите решить эту проблему


<?php

include('config.php');

$que = $con->query("SELECT * FROM student WHERE email = '".$_GET['eid']."'");
$res = $que->fetch_array();

extract($_POST);
if(isset($update)) {
	$hob = implode(",", $arr);
	
	$con->query("UPDATE student SET name='$n', mobile='$m', gender='$gen', hobbies='$hob', country='$cou' WHERE email='".$_GET['eid']."'");
	header('location:registration.php');
}

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Registration Form</title>
<style>
table {
	margin-top: 10;
	border: 1px solid grey;
}
td {
	padding: 5px;
}
</style>
</head>

<body>
<form method="post" enctype="multipart/form-data">
    	<table border="0">
        	<tr>
            	<th>Enter your name</th>
                <td><input type="text" name="n" value="<?php echo $res['name']; ?>" /></td>
            </tr>
            <tr>
            	<th>Enter your email</th>
                <td><input type="email" name="e" readonly="readonly" value="<?php echo $res['email']; ?>" /></td>
            </tr>
            <tr>
            	<th>Enter your mobile</th>
                <td><input type="number" name="m" value="<?php echo $res['mob']; ?>" /></td>
            </tr>
            <tr>
            	<th>Select your gender</th>
                <td>
                Male<input type="radio" name="gen" value="m" <?php if($res['gender']=="m") { echo "checked"; } ?> />
                Female<input type="radio" name="gen" value="f" <?php if($res['gender']=="m") { echo "checked"; } ?> />
                </td>
            </tr>
            <tr>
            	<th>Choose your hobbies</th>
                <td>
                <?php
				$chkbox = $res['hobbies'];
				$arr = explode(",", $chkbox);
				?>
                Reading<input <?php if(in_array("reading", $arr)) { echo "checked"; } ?> type="checkbox" name="arr[]" value="reading" />
                Singing<input <?php if(in_array("singing", $arr)) { echo "checked"; } ?> type="checkbox" name="arr[]" value="singing" />
                Playing<input <?php if(in_array("playing", $arr)) { echo "checked"; } ?> type="checkbox" name="arr[]" value="playing" />
                </td>
            </tr>
            <tr>
            	<th>Select your country</th>
                <td>
                	<select name="cou">
                    	<option value="">Select Country</option>
                        <option <?php if($res['country']=="India"){ echo "selected"; } ?>>India</option>
                        <option <?php if($res['country']=="Pakistan"){ echo "selected"; } ?>>Pakistan</option>
                        <option <?php if($res['country']=="China"){ echo "selected"; } ?>>China</option>
                        <option <?php if($res['country']=="United States"){ echo "selected"; } ?>>United States</option>
                    </select>
                </td>
            </tr>
            <tr>
            	<td colspan="2" align="center">
                <input type="submit" name="update" value="Update" />
                </td>
            </tr>
        </table>
	</form>
</body>
</html>


Что я уже пробовал:

когда я запускаю его...он не показывает никакой ошибки, но его не обновляют также и в таблице его также не выбирают и не просматривают..plz помощь для этой проблемы

Member 13761429

вот я обновляю свой вопрос...теперь дайте мезолюцию плз...

1 Ответов

Рейтинг:
2

Patrice T

$con->query("UPDATE student SET name='$n', mobile='$m', gender='$gen', hobbies='$hob', country='$cou' WHERE email='".$_GET['eid']."'");

Не решение вашего вопроса, а еще одна проблема, которая у вас есть.
Никогда не создавайте SQL-запрос путем объединения строк. Рано или поздно вы сделаете это с помощью пользовательских вводов, и это откроет дверь к уязвимости под названием "SQL-инъекция", она опасна для вашей базы данных и подвержена ошибкам.
Одна кавычка в имени - и ваша программа выйдет из строя. Если пользователь вводит имя, например "Брайан О'Коннер", может привести к сбою вашего приложения, это уязвимость SQL-инъекции, и сбой-это наименьшая из проблем, вредоносный пользовательский ввод, и он продвигается к командам SQL со всеми учетными данными.
SQL-инъекция - Википедия[^]
SQL-инъекция[^]
Атаки SQL-инъекций на примере[^]
PHP: SQL-инъекция - руководство пользователя[^]
Шпаргалка по предотвращению инъекций SQL - OWASP[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? - Обмен Стеками Информационной Безопасности[^]