Witam. Korzystam z projektu Nospor'a, konkretnie z najnowszej wersji ShoutBox.
Tkwie w pewnym momencie, gdyż z pliku sblogin.php chciałbym wykorzystać przesłanie formularza do obecnie aktywnej zalogowanej sesji.
Więc gdy już jestem zalogowany chciałbym do kolejnej strony zbudowanej na wzorze pliku sblogin.php pobrać tam obecnie zalogowaną sesje i przesłać dla niej dodatkowe rekordy do bazy danych poprzez formularz. ALe nie mogę sobie z tym poradzić.
Przesłąć do tabeli ShoutBoxUser.
Rekordy o nazwie: nazwa, opis, tematyka,
tutaj plik sblogin.php(oryginalny)
Tkwie w pewnym momencie, gdyż z pliku sblogin.php chciałbym wykorzystać przesłanie formularza do obecnie aktywnej zalogowanej sesji.
Więc gdy już jestem zalogowany chciałbym do kolejnej strony zbudowanej na wzorze pliku sblogin.php pobrać tam obecnie zalogowaną sesje i przesłać dla niej dodatkowe rekordy do bazy danych poprzez formularz. ALe nie mogę sobie z tym poradzić.
Przesłąć do tabeli ShoutBoxUser.
Rekordy o nazwie: nazwa, opis, tematyka,
tutaj plik sblogin.php(oryginalny)
<?php
ob_start();
session_start();
require_once('cfg.inc.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');
$er = array();
$jl = false; //w ifach jesli damy to na true, to na podstawie tego przekierujemy na strone shouta.
if (!empty($_POST)){
if (empty($_POST['nick']))
$er[] = 'Podaj nick';
if (empty($_POST['pass']))
$er[] = 'Podaj hasło';
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';
}
if (empty($er)){
$nick = htmlspecialchars($_POST['nick'], ENT_QUOTES);
ShoutBoxDBMysql::MysqlConnect();
$sql = 'select ID, PASS from ShoutBoxUser where NICK=\''.$nick.'\'';
$res = mysql_query($sql);
if (!$res)
$er[] = 'Błąd bazy danych';
else{
if (mysql_numrows($res) > 0){
$row = mysql_fetch_array($res);
$pass = $row['PASS'];
if ($pass == sha1($_POST['pass'])){
$_SESSION['nick'] = $nick;
$_SESSION['id'] = $row['ID'];
if (file_exists('online.txt'))
unlink('online.txt');
$up = array();
if ($cfg_shoutbox['user_activity'])// || isset($_POST['savecolor']))
$up[] = 'LAST_ACTIVE_TIME=now()';
if (isset($_POST['savecolor']))
$up[] = "COLOR='$color'";
if (!empty($up))
mysql_query('update ShoutBoxUser set '.implode(',',$up). ' where ID='.$row['ID']);
$_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,'$nick', '".sha1($_POST['pass'])."','$color', now())";
$res = mysql_query($sql);
if (!$res)
$er[] = 'Błąd bazy danych';
else {
$_SESSION['nick'] = $nick;
$_SESSION['id'] = mysql_insert_id();
$_SESSION['justlogged'] = true;
$jl = true;
if (file_exists('online.txt'))
unlink('online.txt');
}
}
}
}
}
if ($jl){//po poprawnym zalogowaniu przenosimy na strone shouta
header('Location: ShoutBoxDisplay.php');
exit;
}
if (!empty($er)){
echo '<div style="color:red">';
foreach ($er as $error)
echo $error.'<br />';
echo '</div>';
}
?>
<form method="post">
<table>
<tr>
<td><label>Nick: </label></td>
<td><input type="text" name="nick" /></td><td> (jesli jestes nowy - podaj nowy nick, jeśli masz już konto - podaj swój nick)</td>
</tr><tr>
<td><label>Hasło: </label></td>
<td><input type="password" name="pass" /></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>