Diskuze: PHP + mysql
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 4 zpráv z 4.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Zdravím, jak sám píšeš, v tom kódu je veliká spousta chyb, že snad ani nevím, kde bych začal... Každopádně, aby jsi neřekl, tak jsem se to pokusil nějak opravit a tady máš revizi:
<?php
session_start();
// Connect to database
$db = mysqli_connect("localhost", "root", "", "authentication");
if (isset($_POST['register_btn'])) {
$username = mysql_real_escape_string($_POST['username']);
$email = mysql_real_escape_string($_POST['email']);
$password = mysql_real_escape_string($_POST['password']);
$password2 = mysql_real_escape_string($_POST['password2']);
$wallet = mysql_real_escape_string($_POST['wallet']);
if ($password == password2) {
// Create user
$password = md5($password); // Hash password before storing for security purposes
$sgl = "INSERT INTO users(username, email, password, wallet) VALUES('$username', '$email', '$password')";
mysqli_query($db, $sgl);
mysqli_select_db("profitableinvest_databaze");
$_SESSION['message'] = "You are now logged in";
$_SESSION['username'] = $username;
header("location: home.php"); // Redirect to home page
} else {
$_SESSION['message'] = "Tyto dvě hesla nejsou shodná";
}
}
mysqli_close($db);
?>
<!DOCTYPE html>
<html>
<head>
<title>Profitableinvest</title>
</head>
<body>
<div class="header">
<h1>Registrace, login a logout user php mysql</h1>
</div>
<form method="POST" action="register.php">
<table>
<tr>
<td>Username:</td>
<td><input type="text" name="username" class="textInput"></td>
</tr>
<tr>
<td>Email:</td>
<td><input type="email" name="email" class="textInput"></td>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" name="password" class="textInput"></td>
</tr>
<tr>
<td>Password again:</td>
<td><input type="password" name="password2" class="textInput"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="register_btn" value="Register"></td>
</tr>
</table>
</form>
</body>
</html>
Tohle by mělo být napsané funkčně, ale už od pohledu to logicky dělá pravděpodobně něco jiného, než by jsi od toho chtěl, ale snad už by to teď mělo jít alespoň spustit.
Další věc, před kterou bych Tě měl varovat, je bezpečnost. I když tam máš nějaký náznak, tohle rozhodně není bezpečný kód.
Takže závěrem rozhodně doporučuji projít si zdejší tutoriály na PHP (http://www.itnetwork.cz/php) a nejlépe začít hezky od začátku - http://www.itnetwork.cz/php/zaklady
Ostatně zde najdeš i tutoriály na práci s MySQL databází - http://www.itnetwork.cz/php/databaze
Ahoj Na budúce prosím vkladaj kód do code tagov, aby sa zvýraznila syntax a podobne, ď.
Takže, chyba ktorú ti vyhadzuje je zjavne to, že funkcia mysgl_real_escape_string neexistuje. A ak sa pozrieš lepšie, je jasné že namiesto písmenka q tam máš písmenko g.
Okrem toho, ak používaš PHP vo verzii 5.5 a vyššej (čo ti mimochodom odporúčam, nemá zmysel obmedzovať sa staršími verziami), tak funkciu mysql_real_escape_string ani používať nemôžeš. Tá bola totiž s celým mysql_ odstránená ako zastaralá.
Ak používaš mysqli_ (všimni si toho písmenka i navyše), používaj funkciu mysqli_real_escape_string.
V kóde máš ale niekoľko podstatných nedostatkov, preto ti odporúčam preštudovať si lepšie materiály a neriadiť sa nejakými starými youtube videami. Pokračovať môžeš tu: http://www.itnetwork.cz/php
Ak by ťa zaujímalo čo robíš zle, tak napr.:
Zobrazeno 4 zpráv z 4.