Системно съобщение

haus

Registered
Искам да попитам как да направя като някои потребител се регистрира как да направя като си влезне във профила да му се появи системно съобщение

sry ако темата не е във правилния раздел
 
предполагам в системата, която ползваш ти има и системка за лични съобщения, ако има такава просто трябва да си направиш още 1 заявка, след заявката, с която регистрираш потребителя...

примерно

Код:
$user = $_POST['user']; //ще го взимаш, чрез пост променливата и трябва да си го нагласиш от кой точно инпут да взима името на потребителя.
$sysuser = "System";
$sysmsg = "аихсдуаисудиасудиаусхдуи"; //системното съобщение
$sysmsg = mysql_query("INSERT INTO `pm` (`msgid`, `fromuser`, `touser`, `msg`) VALUES ('', '$sysuser', '$user', '$sysmsg')") or die(mysql_error());

т'фа ти е примерен код ако има нещо неясно - питай :) но ще е хубаво да дажеш кода ти за регистрация + структората на базата данни, за да видим точно за кои полета да ти го нагласим ако не можеш сам :)
 
ето кода за регистрация може ли да ми го нагласиш

<?php
if(isset($_POST['submit']) && $_SESSION['name'] == NULL) {
if($_POST['name'] == NULL || $_POST['pass1'] == NULL || $_POST['pass2'] == NULL || $_POST['mail'] == NULL) {
echo 'Този емайл е зает'; } else if($_POST['pass1'] != $_POST['pass2']) {
echo 'Паролите не си съвпадат'; } else {
$name = htmlspecialchars($_POST['name']);
$pass = md5($_POST['pass1']);
$mail = htmlspecialchars($_POST['mail']);
$sex = htmlspecialchars($_POST['sex']);
$insert = "INSERT INTO `users` (`name` , `pass` , `mail` , `sex`) VALUES ('$name', '$pass', '$mail', '$sex')";
if(mysql_query($insert)) { echo 'Успешно се регистрирахте.<br>Сега може да влезнете в акаунта си от <a href="index.php?a=login">ТУК</a>'; } else {
echo 'Регистрацията не е успешна'; }}} ?>
 
я ми покажи структората на таблицата, в която се записват личните съобщения в базата данни, за да мога да ти го наглася да работи :)
 
заповядаи

CREATE TABLE IF NOT EXISTS `pmessages` (
`title` varchar(255) NOT NULL default 'Untitled Message',
`message` text NOT NULL,
`touser` varchar(255) NOT NULL default '',
`from` varchar(255) NOT NULL default '',
`unread` varchar(255) NOT NULL default 'unread',
`date` date NOT NULL default '0000-00-00',
`id` int(15) NOT NULL auto_increment,
`reply` varchar(15) NOT NULL default 'no',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=6490 ;
 
Код:
<?php
if(isset($_POST['submit']) && $_SESSION['name'] == NULL) {
if($_POST['name'] == NULL || $_POST['pass1'] == NULL || $_POST['pass2'] == NULL || $_POST['mail'] == NULL) {
echo 'Този емайл е зает'; } else if($_POST['pass1'] != $_POST['pass2']) {
echo 'Паролите не си съвпадат'; } else {
$name = htmlspecialchars($_POST['name']);
$pass = md5($_POST['pass1']);
$mail = htmlspecialchars($_POST['mail']);
$sex = htmlspecialchars($_POST['sex']);
$insert = "INSERT INTO `users` (`name` , `pass` , `mail` , `sex`) VALUES ('$name', '$pass', '$mail', '$sex')";
if(mysql_query($insert)) { 
$systitle = "System Message"; //Заглавието на съобщението
$sysmsg = "Content of system message"; //Съдържанието на личното съобщение
$sysfrom = "System"; //От кой е изпратено съобщението
$sysunread = "unread"; //Дали е прочетено или не е прочето съобщението
$sysdate = date("Y-m-d"); //Датата не съм сигурен точно в какъв формат е...
$sysreply = "no"; //Това показва, че не е отговорено на съобщението
$sys = mysql_query("INSERT INTO `pmessages` (`title`, `message`, `touser`, `from`, `unread`, `date`, `id`, `reply`) VALUES ('$systitle', '$sysmsg', '$name', '$sysfrom', '$sysunread', '$sysdate', '', $sysreply')") or die(mysql_error()); 
echo 'Успешно се регистрирахте.<br>Сега може да влезнете в акаунта си от <a href="index.php?a=login">ТУК</a>'; } else {
echo 'Регистрацията не е успешна'; }}} ?>

я виж така дали работи :)
 
дава ми нещо грешка

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '')' at line 1
 
извинявам, се бях изпуснал един апостроф ('), сега го пробвах и работи както трябва :)

Код:
<?php
if(isset($_POST['submit']) && $_SESSION['name'] == NULL) {
if($_POST['name'] == NULL || $_POST['pass1'] == NULL || $_POST['pass2'] == NULL || $_POST['mail'] == NULL) {
echo 'Този емайл е зает'; } else if($_POST['pass1'] != $_POST['pass2']) {
echo 'Паролите не си съвпадат'; } else {
$name = htmlspecialchars($_POST['name']);
$pass = md5($_POST['pass1']);
$mail = htmlspecialchars($_POST['mail']);
$sex = htmlspecialchars($_POST['sex']);
$insert = "INSERT INTO `users` (`name` , `pass` , `mail` , `sex`) VALUES ('$name', '$pass', '$mail', '$sex')";
if(mysql_query($insert)) { z
$systitle = "System Message"; //Заглавието на съобщението
$sysmsg = "Content of system message"; //Съдържанието на личното съобщение
$sysfrom = "System"; //От кой е изпратено съобщението
$sysunread = "unread"; //Дали е прочетено или не е прочето съобщението
$sysdate = date("Y-m-d"); //Датата не съм сигурен точно в какъв формат е...
$sysreply = "no"; //Това показва, че не е отговорено на съобщението
$sys = mysql_query("INSERT INTO `pmessages` (`title`, `message`, `touser`, `from`, `unread`, `date`, `id`, `reply`) VALUES ('$systitle', '$sysmsg', '$name', '$sysfrom', '$sysunread', '$sysdate', '', '$sysreply')") or die(mysql_error()); 
echo 'Успешно се регистрирахте.<br>Сега може да влезнете в акаунта си от <a href="index.php?a=login">ТУК</a>'; } else {
echo 'Регистрацията не е успешна'; }}} ?>
 
вече мога да се регистрирам но като се регма и като вляза със име и парола и цъкна на съобщенията и нямам никакво съобщение
 
да добавих си го а ти сега не на прави ли нова таблица или не
 
не виж сега... ти таблицата трябва да си я имаш от преди това, аз просто си я направих пробно при мен, за да видя къде се "чупи" скрипта, като регистрираш даден потребител, добавя ли ново лично съобщение в самата таблица или не ?
 
във таблицата добавя но като си напиша име и пас и цъкна на съобщения не ми изписва нищо
 
я дай да видим кода, с който преглеждаш съобщенията... а също така и скрийншот на самите съобщения в phpmyadmin, за да видим и там как са... ще е хубаво ако има и предишни съобщения на скрийншота, за да видим дали не записваме информацията по грешен начин :)
 
ето кода следмалко ще дами снимките

<?php
if($_SESSION['name']) {
$name = $_SESSION['name'];
echo "<a href=?a=msg&d=send>Изпрати съобщение</a><table>";
if($_GET['d']) {
echo "<form action=?a=msg&d=send method=post><table>"
."<tr><td>До:</td><td><input type=text name=to></td></tr>"
."<tr><td>Заглавие:</td><td><input type=text name=head></td></tr>"
."<tr><td>Текст:</td><td><textarea cols=40 rows=10 name=text></textarea></td></tr>"
."<tr><td></td><td><input type=submit name=submit value=Изпрати></td></tr>"
."</table></form>";
if($_POST['submit']) {
$to = htmlspecialchars($_POST['to']);
$head = htmlspecialchars($_POST['head']);
$text = htmlspecialchars($_POST['text']);
$query = "INSERT INTO msg VALUES ('', '$to', '$head', '$text', '$name', '')";
if(mysql_query($query)) { echo "Съобщението е изпратено"; } else { echo "Съобщението не е изпратено"; }}} else {
$sql = "SELECT * FROM msg WHERE `to` = '$name'";
$do = mysql_query($sql);
while($row = mysql_fetch_array($do)) {
$id = $row['id'];
echo "<table><tr><td>Заглавие:</td><td>".$row['name']."</td></tr>"
."<tr><td>От:</td><td>".$row['by']."</td></tr>"
."<tr><td colspan=2>".nl2br($row['text'])."</td></tr>"
."<tr><td colspan=2><a href=?a=msg&del=".$id.">Изтрий</a></td></tr>";
$query = "UPDATE msg SET read = '1' WHERE id = '$id'";
mysql_query($query); } echo "</table>"; }
if($_GET['del']) {
$del = htmlspecialchars($_GET['del']);
$sql = "DELETE FROM msg WHERE id = '$del' AND `to` = '$name'";
if(mysql_query($sql)){
echo 'Съобщението е изтрито';}}} else { echo "Не си логнат"; } ?>
 
ще го настроиш ли към тази таблица или някак си към двете защото чак сега забелязах че са две ето я

CREATE TABLE IF NOT EXISTS `msg` (
`id` int(11) NOT NULL auto_increment,
`to` varchar(11) collate cp1251_bulgarian_ci NOT NULL,
`name` varchar(11) character set latin1 NOT NULL,
`text` longtext character set latin1 NOT NULL,
`by` varchar(11) collate cp1251_bulgarian_ci NOT NULL,
`read` tinyint(1) NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COLLATE=cp1251_bulgarian_ci AUTO_INCREMENT=18 ;
 
Код:
<?php
if(isset($_POST['submit']) && $_SESSION['name'] == NULL) {
if($_POST['name'] == NULL || $_POST['pass1'] == NULL || $_POST['pass2'] == NULL || $_POST['mail'] == NULL) {
echo 'Този емайл е зает'; } else if($_POST['pass1'] != $_POST['pass2']) {
echo 'Паролите не си съвпадат'; } else {
$name = htmlspecialchars($_POST['name']);
$pass = md5($_POST['pass1']);
$mail = htmlspecialchars($_POST['mail']);
$sex = htmlspecialchars($_POST['sex']);
$insert = "INSERT INTO `users` (`name` , `pass` , `mail` , `sex`) VALUES ('$name', '$pass', '$mail', '$sex')";

$sys_title = "Заглавие"; //заглавие
$sys_text = "Добре дошли.."; //текста на съобщението
$admin_msg = "admin"; //от кой е съобщението

$insert = "INSERT INTO `msg` (`name` , `text` , `to` , `by`) VALUES ('$sys_title', '$sys_text', '$name', '$admin_msg')"; //изпращане на съобщението 
if(mysql_query($insert)) { echo 'Успешно се регистрирахте.<br>Сега може да влезнете в акаунта си от <a href="index.php?a=login">ТУК</a>'; } else {
echo 'Регистрацията не е успешна'; }}} ?>


Ако с горния код не стане пробвай така:
Код:
<?php
if(isset($_POST['submit']) && $_SESSION['name'] == NULL) {
if($_POST['name'] == NULL || $_POST['pass1'] == NULL || $_POST['pass2'] == NULL || $_POST['mail'] == NULL) {
echo 'Този емайл е зает'; } else if($_POST['pass1'] != $_POST['pass2']) {
echo 'Паролите не си съвпадат'; } else {
$name = htmlspecialchars($_POST['name']);
$pass = md5($_POST['pass1']);
$mail = htmlspecialchars($_POST['mail']);
$sex = htmlspecialchars($_POST['sex']);
$insert = "INSERT INTO `users` (`name` , `pass` , `mail` , `sex`) VALUES ('$name', '$pass', '$mail', '$sex')";

$sys_title = "Заглавие"; //заглавие
$sys_text = "Добре дошли.."; //текста на съобщението
$admin_msg = "admin"; //от кой е съобщението

$insert = "INSERT INTO `msg` (`name` , `text` , `to` , `by`) VALUES ('$sys_title', '$sys_text', '$name', '$admin_msg')"; //изпращане на съобщението 
$insert = "INSERT INTO `pmessages` (`title` , `message` , `touser` , `from`) VALUES ('$sys_title', '$sys_text', '$name', '$admin_msg')"; //изпращане на съобщението 


if(mysql_query($insert)) { echo 'Успешно се регистрирахте.<br>Сега може да влезнете в акаунта си от <a href="index.php?a=login">ТУК</a>'; } else {
echo 'Регистрацията не е успешна'; }}} ?>
 

Горе