Witam. Potrzebuje małej pomocy. Ja sam głupek nie mogę sobie poradzić.
Opiszę sytuacje:
Mam stronkę, szybkie logowanie. Wpisuje dane jeśli nie ma ich w bazie to dodaje i mnie loguje przenoszac na kolejna strone. Natomaist podczas trwania tej sesji wchodze na kolejna strone i tam chce przeprowadzic szybka rejestracja, która doda do bazy nowe 3 rekordy. (nazwa, opis, pozniej jeszcze tematyka).
Rekordy maja byc dodane do zalogowanej obecnie sesji.
Jeśli trwa już zalogowana sesja to dodaje poprzez formularz dodatkowe rekordy do użytkownika w bazie danych.
Czyli do jego ID i NICKU doda: nazwa, opis, tematyka, ranga.
Ranga będzie losowo przyznawana (bez powtórzeń).
Następnie w kolejnym pliku gdy sprawdzi w sesji czy zgadza się NICK i RANGA to da mu dostęp do pewnej funkcji.
Rekordy mam utworzone w tabeli, chodź nie wiem czy o prawidłowych właściwiościach.
<?php
require_once('cfg.inc.php');
require_once('libs/ShoutBox.class.php');
require_once('libs/ShoutBoxDBMysql.class.php');
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>ShoutBox</title>
</head>
<body>
<?php
require_once('libs/ShoutBox.class.php');
require_once('libs/ShoutBoxDBMysql.class.php');
$jl = false; //w ifach jesli damy to na true, to na podstawie tego przekierujemy na strone shouta.
if (!empty($_POST) && $_SESSION['nick']){ if (empty($_POST['nazwa'])) $er[] = 'Podaj nazwa';
if (empty($_POST['opis'])) $er[] = 'opis';
if (empty($_POST['color'])) $color = '000000';
else{
if (preg_match('/^[0-9a-f]{6}$/i',$_POST['color'])) $color = $_POST['color'];
else
$er[] = 'Podany kolor jest nieprawidłowy';
}
ShoutBoxDBMysql::MysqlConnect();
$sql = 'select ID, NICK from ShoutBoxUser where nazwa=\''.$nazwa.'\'';
if (!$res)
$er[] = 'Błąd bazy danych';
else{
$nick = $row['nick'];
if ($nick == ($_SESSION['nick'])){
$_SESSION['nazwa'] = $nazwa;
$_SESSION['opis'] = $opis;
$_SESSION['id'] = $row['ID'];
if ($cfg_shoutbox['user_activity'])// || isset($_POST['savecolor']))
$up[] = 'LAST_ACTIVE_TIME=now()';
if (isset($_POST['savecolor'])) $up[] = "COLOR='$color'";
$_SESSION['justlogged'] = true;
$jl = true;
//
}
else
$er[] = 'Taki login już istnieje, a ty podałeś błędne hasło';
} else { //brak takiego loginu to dodajemy do bazy i logujemy
$sql = "insert into ShoutBoxUser values (null, '$nazwa', '$color', now())";
if ($res)
$er[] = 'Błąd bazy danychhh';
else {
$_SESSION['nazwa'] = $nazwa;
$_SESSION['justlogged'] = true;
$jl = true;
}
}
}
}
}
if ($jl){//po poprawnym zalogowaniu przenosimy na strone shouta
}
echo '<div style="color:red">'; foreach ($er as $error)
}
?>
<form method="post">
<table>
<tr>
<td><label>nazwa: </label></td>
<td><input type="text" name="nazwa" /></td><td> (jesli jestes nowy - podaj nowy nick, jeśli masz już konto - podaj swój nick)</td>
</tr><tr>
<td><label>opis: </label></td>
<td><input type="text" name="opis" /></td><td>(jesli jestes nowy - podaj nowe hasło, jeśli masz już konto - podaj swoje hasło)</td>
</tr><tr>
<td><label>Kolor: </label></td>
<td><input type="text" name="color" /></td><td>(podaj kolor, pod jakim chcesz być widziany. Kolor w postaci RRGGBB, np: FF00FF)</td>
</tr><tr>
<td colspan="3"><input type="checkbox" name="savecolor" checked="checked" />Zapisać kolor w bazie</td>
</tr>
<tr>
<td colspan="3"><input type="submit" value="Start" /></td>
</tr>
</table>
</form>
<p>Nick "blocked" nie będzie mógł pisać.</p>
</body>
</html>