请帮助我。
<?php
$_SESSION["error"] = "Some text.";
if(!isset($_SESSION["error"])) {
echo $_SESSION["error"];
unset($_SESSION["error"]);
}
?>
此代码无效。 这不是我的所有代码,在注册时设置会话。然后我重新加载页面,我想写那个会话。它没有去,我尝试删除未设置的会话,它工作。
如何修复 ... 我认为它首先删除该会话,然后尝试回应-.-
这里是完整的代码:
<?php
session_start();
function email() {
if(isset($_SESSION["email"])) {
echo $_SESSION["email"];
}
}
function meno() {
if(isset($_SESSION["meno"])) {
echo $_SESSION["meno"];
}
}
function heslo() {
if(isset($_SESSION["heslo"])) {
echo $_SESSION["heslo"];
}
}
function heslo2() {
if(isset($_SESSION["heslo2"])) {
echo $_SESSION["heslo2"];
}
}
function vek() {
if(isset($_SESSION["vek"])) {
echo $_SESSION["vek"];
}
}
?>
<meta charset="utf-8">
<form method="post" enctype="multipart/form-data">
** Prihlásovacie meno: <input name="meno" value="<?php meno(); ?>" /><br>
** Email: <input name="email" value="<?php email(); ?>" /><br>
** Heslo: <input name="heslo" type="password" value="<?php heslo(); ?>" /><br>
** Opäť heslo: <input name="heslo2" type="password" value="<?php heslo2(); ?>" /><br>
Pohlavie: <select name="pohlavie">
<?php
if(isset($_SESSION["pohlavie"])) {
if($_SESSION["pohlavie"] == "Chlapec") {
echo "<option value='Chlapec' selected>Chlapec</option><option value='Dievča'>Dievča</option>";
}
else if($_SESSION["pohlavie"] == "Dievča") {
echo "<option value='Chlapec'>Chlapec</option><option value='Dievča' selected>Dievča</option>";
}
}
else {
echo "<option value='Chlapec'>Chlapec</option><option value='Dievča'>Dievča</option>";
}
?>
</select><br>
Vek: <input name="vek" value="<?php vek(); ?>" /><br>
Fotka: <input type="file" name="fileToUpload" /><br>
<button name="registrovat">Registrovať sa</button>
</form>
<?php
if(isset($_POST["registrovat"])) {
$meno = $_POST["meno"];
$email = $_POST["email"];
$heslo = $_POST["heslo"];
$heslo2 = $_POST["heslo2"];
$pohlavie = $_POST["pohlavie"];
$vek = $_POST["vek"];
if(empty($meno) || empty($email) || empty($heslo) || empty($heslo2)) {
$_SESSION["chyba"] = "Nevyplnil si všetky polia.";
if(isset($meno)) {
$_SESSION["meno"] = $meno;
}
if(isset($heslo)) {
$_SESSION["heslo"] = $heslo;
}
if(isset($heslo2)) {
$_SESSION["heslo2"] = $heslo2;
}
if(isset($email)) {
$_SESSION["email"] = $email;
}
if(isset($vek)) {
$_SESSION["vek"] = $vek;
}
if(isset($pohlavie)) {
$_SESSION["pohlavie"] = $pohlavie;
}
header("Location: #");
}
else if(!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$_SESSION["chyba"] = "Zadaný email neexistuje.";
if(isset($meno)) {
$_SESSION["meno"] = $meno;
}
if(isset($heslo)) {
$_SESSION["heslo"] = $heslo;
}
if(isset($heslo2)) {
$_SESSION["heslo2"] = $heslo2;
}
if(isset($email)) {
$_SESSION["email"] = $email;
}
if(isset($vek)) {
$_SESSION["vek"] = $vek;
}
if(isset($pohlavie)) {
$_SESSION["pohlavie"] = $pohlavie;
}
header("Location: #");
}
else if($heslo !== $heslo2) {
$_SESSION["chyba"] = "Heslá sa nezhodujú.";
if(isset($meno)) {
$_SESSION["meno"] = $meno;
}
if(isset($heslo)) {
$_SESSION["heslo"] = $heslo;
}
if(isset($heslo2)) {
$_SESSION["heslo2"] = $heslo2;
}
if(isset($email)) {
$_SESSION["email"] = $email;
}
if(isset($vek)) {
$_SESSION["vek"] = $vek;
}
if(isset($pohlavie)) {
$_SESSION["pohlavie"] = $pohlavie;
}
header("Location: #");
}
else {
require("db.php");
$result1 = $mysql->query("SELECT * FROM `uzivatelia` WHERE `email`='{$email}'");
$result2 = $mysql->query("SELECT * FROM `uzivatelia` WHERE `meno`='{$meno}'");
if($result1->num_rows) {
$_SESSION["chyba"] = "Užívateľ s týmto menom už existuje.";
if(isset($meno)) {
$_SESSION["meno"] = $meno;
}
if(isset($heslo)) {
$_SESSION["heslo"] = $heslo;
}
if(isset($heslo2)) {
$_SESSION["heslo2"] = $heslo2;
}
if(isset($email)) {
$_SESSION["email"] = $email;
}
if(isset($vek)) {
$_SESSION["vek"] = $vek;
}
if(isset($pohlavie)) {
$_SESSION["pohlavie"] = $pohlavie;
}
header("Location: #");
}
else if($result2->num_rows) {
$_SESSION["chyba"] = "Užívateľ s týmto emailom už existuje.";
if(isset($meno)) {
$_SESSION["meno"] = $meno;
}
if(isset($heslo)) {
$_SESSION["heslo"] = $heslo;
}
if(isset($heslo2)) {
$_SESSION["heslo2"] = $heslo2;
}
if(isset($email)) {
$_SESSION["email"] = $email;
}
if(isset($vek)) {
$_SESSION["vek"] = $vek;
}
if(isset($pohlavie)) {
$_SESSION["pohlavie"] = $pohlavie;
}
header("Location: #");
}
else {
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false) {
$target_dir = "profilovky/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
$mysql->query("INSERT INTO `uzivatelia` (`meno`, `email`, `heslo`, `pohlavie`, `vek`, `fotka`) VALUES ('{$meno}', '{$email}', '{$heslo}', '{$pohlavie}', '{$vek}', '{$fotka}')") or die ("Zas majitel debilne nakodoval zapsi uzivatela do datbazy.");
}
} else {
$_SESSION["chyba"] = "Súbor nie je obrázok.";
if(isset($meno)) {
$_SESSION["meno"] = $meno;
}
if(isset($heslo)) {
$_SESSION["heslo"] = $heslo;
}
if(isset($heslo2)) {
$_SESSION["heslo2"] = $heslo2;
}
if(isset($email)) {
$_SESSION["email"] = $email;
}
if(isset($vek)) {
$_SESSION["vek"] = $vek;
}
if(isset($pohlavie)) {
$_SESSION["pohlavie"] = $pohlavie;
}
header("Location: #");
}
}
}
}
if(isset($_SESSION["error"])) {
echo $_SESSION["error"];
unset($_SESSION["error"]);
}
?>
文件db.php:
<?php
$mysql = new mysqli("localhost", "root", "", "cms");
?>
答案 0 :(得分:1)
正如@ Rizier123指出的那样,请确保session_start()
位于代码的顶部。
此外,当错误不设置&#39;时,您的if / then语句会回复错误。因为(!)。试试吧:
if(isset($_SESSION["error"])) {
echo $_SESSION["error"];
unset($_SESSION["error"]);
}