Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> system mailowy, odbieranie wysylanie listów
grzesio
post
Post #1





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 24.12.2003
Skąd: Wisła

Ostrzeżenie: (0%)
-----


musze rozwinąć serwis
Mam konta użytkowników, mozliwosc logowania,....itp
teraz chciałbym aby mogli miedzy sobą wysyłać listy,

1. czy dla kazdego uzytkownika zrobic osobna tabelę
czy tylko zrobic jedna tabelę na listy ?

2. które jest lepsze rozwiązanie ?

trzeba zrobic zalozenie ze uzytkownikow moze byc : infinity

czy taka tabelka jak poniżej:
gdzie są podstawowe pola:
nadawca
odbiorca
status przeczytane nie przeczytane...
WYSTARCZY ?


CREATE TABLE `maile` (
`mail_id` int(10) unsigned NOT NULL auto_increment,
`tytul` varchar(100) NOT NULL default '',
`tresc` text NOT NULL,
`nadawca` varchar(100) NOT NULL default '',
`odbiorca` varchar(100) NOT NULL default '',
`stan` varchar(100) NOT NULL default '',
`data_nadania` datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (`mail_id`)
);


4.jakie są znane proste systemy mailowe
oczywiście dobre i sprawdzone,...i jak to jest tam rozwiązane ?

Pozdrawiam
-G.

Ten post edytował grzesio 14.02.2007, 12:55:59
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
dr_bonzo
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


php Pro -> MySQL
Go to the top of the page
+Quote Post
grzesio
post
Post #3





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 24.12.2003
Skąd: Wisła

Ostrzeżenie: (0%)
-----


Co jest lepiej ?

1. usuwac listy z bazy ?
2. czy moze lepiej wpisac stan: skasowany, a list nadal pozostawałby w bazie tylko
bylby niewidoczny dla uzytkownika
3. czy moze przenosic usuniete do drugiej tabeli ..

- Grzes



  1. <?php
  2. //********************************************************************************
    **********
  3. //** ProStY SYSTEM MAILOWY  **
  4. //********************************************************************************
    **********
  5.  
  6. /*
  7.  CREATE TABLE `maile2` ( 
  8. `mail_id` int(10) unsigned NOT NULL auto_increment, 
  9. `mail_id_odpowiedz` int(10),
  10. `tytul` varchar(100) NOT NULL default '', 
  11. `tresc` text NOT NULL, 
  12. `nadawca` int(10) NOT NULL, 
  13. `odbiorca` int(10) NOT NULL, 
  14. `stan` varchar(14) NOT NULL default 'NOWY', 
  15. `data_odebrania` datetime NOT NULL default '0000-00-00 00:00:00', 
  16. `data_nadania` datetime NOT NULL default '0000-00-00 00:00:00', 
  17. PRIMARY KEY (`mail_id`) 
  18. );
  19.  
  20. */
  21.  
  22. $user_id =2;
  23.  
  24. $db_server = "127.0.0.1";
  25. $db_uname = "root";
  26. $db_pass = "yyy";
  27. $db_name = "mail";
  28.  
  29.  
  30.  
  31.  mysql_connect("$db_server","$db_uname","$db_pass");
  32.  mysql_select_db($db_name); 
  33.  
  34. $title = "phpNewsManager $newman_ver";
  35.  
  36.  
  37. // if (is_user($user)) {
  38.  
  39. // dla wszytkich danych przekazanych metoda POST formularz jest POST
  40. foreach($_POST as $key =>$value){
  41. $$key=$value;
  42. }
  43.  
  44.  
  45. // link edit jest typu: GET: <a href=pnews.php?action=edit&id_maila=
  46. foreach($_GET as $key =>$value){
  47. $$key=$value;
  48. }
  49.  
  50.  
  51.  
  52.  if ($action == "edit") edit_mail(0,$id_maila);
  53.  else if ($action == "delete") DeleteNews(0,$id_maila);
  54.  else if ($action == "multidel") MultiDelete($db_pnews,"id","pnews_del");
  55.  else if ($action == "zapisz") write_mail();
  56.  
  57.  else formularz();
  58.  
  59.  
  60.  
  61. function ShowMain() {
  62.  
  63. // pobierz ilosc rekordow:
  64. $res = mysql_query("SELECT * FROM maile2") or die("<b>LINE 31:</b>".mysql_error());
  65. $num = mysql_num_rows($res);
  66.  
  67. echo "<CENTER>";
  68. $myopt = ShowPages($num,$GLOBALS['page'],$GLOBALS['hits'],$GLOBALS['show']);
  69. echo "</CENTER>";  
  70.  
  71.  
  72.  
  73. $sql="SELECT * from maile2 order by data_nadania desc limit $myopt[0],$myopt[1]";
  74.  
  75.  
  76. //echo $sql;
  77. echo "<BR><CENTER><TABLE border=1>";
  78.  
  79. $wyn= mysql_query($sql);
  80.  
  81. echo "<TR><TD>Numer listu</TD><TD>NADAWACA </TD><TD>ODBIORCA </TD><TD>TYTUL</TD><TD>TRESC</TD></TR>";
  82.  
  83.  while ($ar = mysql_fetch_array($wyn))
  84.  {
  85.  
  86. echo "<TR><TD>". $ar['mail_id']." </TD><TD>". $ar['nadawca']." </TD><TD>". $ar['odbiorca']." </TD><TD>". $ar['tytul'] ."</TD><TD>". $ar['tresc'] ."</TD></TR>";
  87.  
  88.  
  89.  }
  90.  
  91.  
  92. echo "</TABLE></CENTER>";
  93.  
  94. }
  95.  
  96.  
  97.  
  98. function edit_mail($user,$id_mail) {
  99.  
  100.  
  101.  $sql = "SELECT * from maile2 WHERE mail_id=$id_mail";
  102. // echo $sql;
  103.  
  104. echo "<CENTER><TABLE border=1 width=400>";
  105.  
  106.  $res = mysql_query($sql);
  107.  while ($ar = mysql_fetch_array($res))
  108.  {
  109.  
  110. echo "<TR><TD>Nadawca: </TD><TD>". $ar['nadawca']." </TD><TD> Odbiorca: ". $ar['odbiorca']." </TD></TR>";
  111. echo "<TR><TD>Nr. listu: </TD><TD>". $ar['mail_id']." </TD></TR>";
  112. echo "<TR><TD>Tytul: </TD><TD>". $ar['tytul'] ."</TD></TR>";
  113. echo "<TR><TD>Tresc: </TD><TD>". $ar['tresc'] ."</TD></TR>";
  114.  
  115.  }
  116. // zaznacz ze przeczytany:
  117.  
  118. $sql = "UPDATE `maile2` SET `stan` = 'przeczytany' WHERE `maile2`.`mail_id` =$id_mail LIMIT 1" ;
  119.  
  120. //echo $sql;
  121.  
  122. mysql_query($sql) or die("Error 99:".mysql_error());
  123.  
  124.  
  125.  
  126.  
  127. echo "</TABLE></CENTER>";
  128.  
  129. }
  130.  
  131.  
  132.  
  133. function formularz() {
  134.  
  135. global $user_id;
  136.  
  137.  
  138. print '<CENTER><form action="pnews.php" method="POST"> <INPUT type="hidden" value="zapisz" name="action"><p>Temat: <input type="text" name="temat" size="40" maxsize="100" ></p> <p>Treść: <textarea name="tresc" columns="80" rows="5" ></textarea></p> <p>Adresat: <input type="text" name="odbiorca" maxsize="50" value='.$user_id.'> Nadawca <input type="text" name="nadawca" value='.$user_id.' maxsize="50" ><BR> <input type="submit" name="wyslij" value="Wyślij wiadomość"> </form></CENTER>';
  139.  
  140. }
  141.  
  142.  
  143.  
  144. function wyswietl($nadawca_id) {
  145.  
  146.  // Ile listow wyslanych i odebranych ma dany user....
  147.  $res = mysql_query("SELECT * FROM maile2 WHERE nadawca=$nadawca_id ") or die("<b>LINE 31:</b>".mysql_error());
  148.  $num = mysql_num_rows($res);
  149.  echo "<CENTER><HR width=400></CENTER>";
  150.  echo "<CENTER> NADAWCA: $nadawca_id ma $num listow</CENTER>";
  151.  
  152.  echo "<CENTER>";
  153.  $myopt = ShowPages1($num,$GLOBALS['page'],$GLOBALS['hits'],$GLOBALS['show']);
  154.  echo "</CENTER>";
  155. ////////////////////////////////////////
  156.  
  157.  $sql = "SELECT * from maile2 WHERE nadawca=$nadawca_id order by data_nadania desc l
    imit $myopt[0],$myopt[1]"
    ;
  158.  //echo $sql;
  159.  
  160.  $res = mysql_query($sql);
  161.  
  162.  
  163. echo "<CENTER><TABLE border=1>";
  164. echo "<TR><TD>Numer listu </TD><TD>NADAWCA</TD><TD>TYTUŁ</TD><TD>TREŚĆ</TD><TD>OTWÓRZ</TD><TD>USUŃ</TD><TD>PRZECZYTANY</TD></TR>";
  165.  while ($ar = mysql_fetch_array($res))
  166.  {
  167.  
  168. echo ' <tr><td width="100">';
  169.  
  170.  
  171. echo "<TR><TD>". $ar['mail_id']." </TD><TD>". $ar['nadawca']." </TD><TD>". $ar['tytul'] ."</TD><TD>". $ar['tresc'] ."</TD>";
  172.  
  173. echo "<TD><a href=pnews.php?action=edit&id_maila=".$ar['mail_id']."> open </A></TD>";
  174. echo "<TD><a href=pnews.php?action=delete&id_maila=".$ar['mail_id']."> delete </A></TD>";
  175. echo "<TD>".$ar['stan']."</TD>";
  176.  
  177. echo '</tr>';
  178.  
  179.  
  180.  }
  181.  
  182.  
  183. echo "</TABLE></CENTER>";
  184.  
  185.  
  186.  
  187. /////////////////////////////////////////////
  188.  
  189. }
  190.  
  191.  
  192.  
  193. function DeleteNews($user,$id_mail) {
  194.  
  195.  $sql = "DELETE FROM maile2 WHERE mail_id='".$id_mail."'";
  196.  
  197.  //echo $sql;
  198.  mysql_query($sql);
  199.  
  200. }
  201.  
  202.  
  203.  
  204. function write_mail() {
  205.  
  206.  
  207. //$GLOBALS['db_pnews'] = "mail";
  208.  
  209.  
  210. $temat = $_GET['temat'];
  211. $tresc = $_GET['tresc'];
  212. $nadawca = $_GET['nadawca'];
  213. $odbiorca = $_GET['odbiorca'];
  214.  
  215. global $temat,$tresc,$nadawca,$odbiorca;
  216.  
  217.  
  218.  
  219. // $sql = "INSERT INTO maile2 ( mail_id_odpowiedz, tytul, tresc, nadawca, odbiorca, stan, data_odebrania, 
    data_nadania) VALUES (0,'$temat', '$tresc', '$nadawca', '$odbiorca', 'nadana',Now(), Now())"; 
  220.  
  221. $sql = "INSERT INTO `maile2` ( `mail_id` , `mail_id_odpowiedz` , `tytul` , `tresc` , `nadawca` , `odbiorc
    a` , `stan` , `data_odebrania` , `data_nadania` ) VALUES (NULL , '3', '$temat', '$tresc', '$nadawca', '$odbiorca', 'nowy', '0000-00-00 00:00:00', Now());"
    ;
  222.  
  223.  
  224.  
  225.  
  226. echo $sql;
  227.  
  228.  
  229. mysql_query($sql) or die("Error 103:".mysql_error());
  230.  
  231.  
  232.  }
  233.  
  234.  
  235. // dla wszystkich listow
  236. function ShowPages($xnum)
  237. {
  238.  global $sort,$order,$id,$page,$hits,$show;
  239.  
  240.  if ($page == 0)  {$page=1;}
  241.  if (empty($page)) {$page=1;}
  242.  if (empty($hits)) {$hits=10;}
  243.  if (empty($show)) {$show = 7;}
  244.  
  245.  $start = $hits*($page-1);
  246.  $stw2 = ($xnum/$hits);
  247.  $stw2 = (int) $stw2;
  248.  if ($xnum%$hits > 0) {$stw2++;}
  249.  
  250.  $np = $page+1;
  251.  $pp = $page-1;
  252.  if ($page == 1) { $pp=1; }
  253.  
  254.  $l1 = $page - $show;
  255.  $d1 = $page + $show;
  256.  
  257.  $n1 = $page - $show;
  258.  if($n1<1) {$n1=1;}
  259.  $n2 = $page + $show;
  260.  if($n2>$stw2) {$n2=$stw2;}
  261.  
  262.  $d1 = 2 * $show + $l1;
  263.  if($d1>$stw2) {$d1=$stw2;$l1=$stw2-$show*2;}
  264.  if($l1<1) {$l1 = 1;}
  265.  
  266.  if ($np>$stw2) { $np=$stw2; }
  267.  
  268.  echo "<a href="".$GLOBALS['PHP_SELF']."?page=$pp&sort=$sort&id=$id">&laquo;</a> ";
  269.  echo "<a href="".$GLOBALS['PHP_SELF']."?page=$n1&sort=$sort&id=$id"><</a> ";
  270.  for($i=$l1;$i<=$d1;$i++)
  271.  {
  272. if($page==$i) {echo "<b>$i</b>";} 
  273. else{echo " <a href="".$GLOBALS['PHP_SELF']."?page=$i&sort=$sort&id=$id">$i</a> ";}
  274.  }
  275.  echo " <a href="".$GLOBALS['PHP_SELF']."?page=$np&sort=$sort&id=$id">></a> ";
  276.  echo " <a href="".$GLOBALS['PHP_SELF']."?page=$n2&sort=$sort&id=$id">&raquo;</a>";
  277.  return array($start,$hits);
  278. }
  279.  
  280.  
  281.  
  282. // pokaz dla danego usera 
  283. function ShowPages1($xnum)
  284. {
  285.  global $sort1,$order1,$id1,$page1,$hits1,$show1;
  286.  
  287.  if ($page1 == 0)  {$page1=1;}
  288.  if (empty($page1)) {$page1=1;}
  289.  if (empty($hits1)) {$hits1=10;}
  290.  if (empty($show1)) {$show1 = 7;}
  291.  
  292.  $start = $hits1*($page1-1);
  293.  $stw2 = ($xnum/$hits1);
  294.  $stw2 = (int) $stw2;
  295.  if ($xnum%$hits1 > 0) {$stw2++;}
  296.  
  297.  $np = $page1+1;
  298.  $pp = $page1-1;
  299.  if ($page1 == 1) { $pp=1; }
  300.  
  301.  $l1 = $page1 - $show1;
  302.  $d1 = $page1 + $show1;
  303.  
  304.  $n1 = $page1 - $show1;
  305.  if($n1<1) {$n1=1;}
  306.  $n2 = $page1 + $show1;
  307.  if($n2>$stw2) {$n2=$stw2;}
  308.  
  309.  $d1 = 2 * $show1 + $l1;
  310.  if($d1>$stw2) {$d1=$stw2;$l1=$stw2-$show1*2;}
  311.  if($l1<1) {$l1 = 1;}
  312.  
  313.  if ($np>$stw2) { $np=$stw2; }
  314.  
  315.  echo "<a href="".$GLOBALS['PHP_SELF']."?page1=$pp&sort1=$sort1&id1=$id1">&laquo;</a> ";
  316.  echo "<a href="".$GLOBALS['PHP_SELF']."?page1=$n1&sort1=$sort1&id1=$id1"><</a> ";
  317.  for($i=$l1;$i<=$d1;$i++)
  318.  {
  319. if($page1==$i) {echo "<b>$i</b>";} 
  320. else{echo " <a href="".$GLOBALS['PHP_SELF']."?page1=$i&sort1=$sort1&id1=$id1">$i</a> ";}
  321.  }
  322.  echo " <a href="".$GLOBALS['PHP_SELF']."?page1=$np&sort1=$sort1&id1=$id1">></a> ";
  323.  echo " <a href="".$GLOBALS['PHP_SELF']."?page1=$n2&sort1=$sort1&id1=$id1">&raquo;</a>";
  324.  return array($start,$hits1);
  325. }
  326.  
  327.  
  328.  
  329.  
  330.  
  331. ShowMain();
  332.  
  333.  
  334.  
  335. wyswietl($user_id);
  336.  
  337.  
  338.  
  339. ?>


Ten post edytował grzesio 25.02.2007, 21:52:08
Go to the top of the page
+Quote Post

Posty w temacie
- grzesio   system mailowy   14.02.2007, 12:53:00
- - siemakuba   Cytat1. czy dla kazdego uzytkownika zrobic osobna ...   15.02.2007, 23:21:51
- - dr_bonzo   php Pro -> MySQL   16.02.2007, 00:15:29
|- - grzesio   Co jest lepiej ? 1. usuwac listy z bazy ? 2. czy...   25.02.2007, 21:22:50
- - J4r0d   Popraw ten kod bo forum się rozjechało.   25.02.2007, 21:38:05


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 16.10.2025 - 10:26