Nepoužívej query string, dej si tam pojmenovaný parametr.
Nevkládej uživatelská data do HTML tak jak jsou. Přeformátuj je do HTML. (Co když si dám jméno "hele<img src='http://nekde/penis.jpg'/>hele" ?
Nevkládej uživatelská data do SQL tak jak jsou. Přeformátuj je do SQL. (Co když si dám jméno "pepa' or 'username'='admin" ?)
Ten poslední select k ničemu nepotřebuješ.
Takhle nějak by to snad mohlo fungovat:
<?php
$html['userid'] = htmlspecialchars($nick['UserID']);
$html['username'] = htmlspecialchars($nick['username']);
$html['email'] = htmlspecialchars($nick['email']);
$html['fullname'] = htmlspecialchars($nick['fullname']);
?><form class="login-form" method="post" action="user.php?userid="<?php echo $html['userid'];?>">
Nick:<input type="text" name="username" value="<?php echo $html['username']; ?>"><br />
Email:<input type="text" name="email" placeholder="E-mail" value="<?php echo $html['email']; ?>"><br />
Meno a priezvisko<input type="text" name="fullname" placeholder="Meno a Priezvisko" value="<?php echo $html['fullname']; ?>"><br />
Dátum expirácie: <input type="datetime-local" value="2000-01-01T00:00:00" name="expdate" />
<button type="submit" name="update">Upraviť</button>
</form>
<?php
if(isset($_POST['update'])){
$username = ($_POST['username']);
$email = ($_POST['email']);
$fullname = ($_POST['fullname']);
$expdate = ($_POST['expdate']);
if($username == "" || $email == "" || $fullname == ""){
echo "Na niečo si zabudol!";
}elseif(strlen($username) > 45){
echo "Meno registrovaného používateľa je príliš dlhé!";
}elseif(strlen($email) > 45){
echo "E-mail registrovaného používateľa je veľmi dlhý!!";
}elseif(strlen($fullname) > 45){
echo "Meno a priezvisko používateľa sú veľmi dlhé, prosím skráťte ich!";
}else{
if ($isadmin){/*toto si nějak uprav*/
$sql['userid'] = (int)$_GET['userid'];
}else{
$sql['userid'] = (int)$nick['UserID'];
}
$sql['username'] = mysqli_real_escape_string($con, $username);
$sql['email'] = mysqli_real_escape_string($con, $email);
$sql['fullname'] = mysqli_real_escape_string($con, $fullname);
$sql['expdate'] = mysqli_real_escape_string($con, $expdate);
$register1 = mysqli_query($con,"SELECT `UserID` FROM `Users` WHERE `Username`='".$sql['username']."'") or die(mysqli_error());
if(mysqli_num_rows($register1) > 0){
echo "Toto meno je už používané!";
}else{
$ins = mysqli_query($con,"UPDATE `Users` SET
`Username` = '".$sql['username']."',
`Email` = '".$sql['email']."',
`Fullname` = '".$sql['fullname']."',
`expdate` = '".$sql['expdate']."'
WHERE `UserID` = ".$sql['userid']) or die(mysqli_error());
echo "Používateľ bol pozmenený!";
}
}
}
?>