Jag undrar om det är någon som vet någon bra sätt som man skulle kunna göra ett meddelande-system i php. Det går ju bra med asp men hur går det egentligen med php? Har sökt på hotscript men hittar inget.
Eller är det så att php är slagen på fingrarna av asp på detta område?
Med meddelande system menar jag att användare på min sida ska kunna skicka meddelanden till varandra ( som skunk)
Du får nog förklara lite bättre.. Är det ett medellande system mellan personer på hemsidan eller bara en typ av Gästboks inlägg.. Jag rekommenderar att du kollar de scripten som finns på wfScript :)
------------------
//Du ska inte slänga vatten över ån.
PHP vs ASP (10 - 0)
Så här ser iaf databas strukturen ut på mitt system jag har byggt för min.
CREATE TABLE messagetbl (
me_id int(11) NOT NULL auto_increment,
me_read enum('n','y') DEFAULT 'y' NOT NULL,
me_fmid int(11) DEFAULT '0' NOT NULL,
me_tmid int(11) DEFAULT '0' NOT NULL,
me_title varchar(100) NOT NULL,
me_text text NOT NULL,
me_date int(11),
PRIMARY KEY (me_id),
KEY n_nid (me_id),
UNIQUE n_nid_2 (me_id)
);
------------------
"Information wants to be free -- because it is now so easy to copy and distribute casually -- and information wants to be expensive -- because in an Information Age, nothing is so valuable as the right information at the right time."
- John Perry Barlow
Jag undrar om det är någon som vet någon bra sätt som man skulle kunna göra ett meddelande-system i php. Det går ju bra med asp men hur går det egentligen med php? Har sökt på hotscript men hittar inget.
Eller är det så att php är slagen på fingrarna av asp på detta område?
Med meddelande system menar jag att användare på min sida ska kunna skicka meddelanden till varandra ( som skunk)
Visst här har du koden. Men betrakta den som BETA kvalitet. Jag ska nämligen bussa några killar och tjejer och hårdtesta systemet nästa vecka (jag byggde systemet på en halvtimme mitt i natten så man kan nog optimera koden en hel del).
Jag använder mig inte av titel fältet som du kommer märka utan använder istället de 15 första tecknen som titel i meddelandet. Sen så finns det en hel del unik information för min site som du borde kunna rensa bort.
<?
#Sparar inskickat meddelande
if($save=="yes") {
if($message) {
$res=mysql_query("SELECT me_id FROM messagetbl WHERE me_fmid='$UserInfo[m_mid]' AND me_tmid='$tid' AND me_text='$message'");
if(mysql_num_rows($res)!=1) {
mysql_query("INSERT INTO messagetbl SET me_fmid='$UserInfo[m_mid]',me_tmid='$tid',me_text='$message',me_date=$now");
echo mysql_error();
}
}
}
#Raderar meddelande
if($delete=="yes" && $id) {
mysql_query("DELETE FROM messagetbl WHERE me_tmid='$UserInfo[m_mid]' AND me_id=$id");
echo mysql_error();
}
#Visar meddelande
if($id && !$delete) {
$res=mysql_query("SELECT me_id,me_read,me_fmid,me_tmid,me_title,me_text,me_date,m_mid,m_nickname FROM messagetbl,membertbl WHERE me_fmid=m_mid AND me_tmid='$UserInfo[m_mid]' AND me_id=$id ORDER BY me_read DESC ");
if(mysql_num_rows($res)==1) {
$r=mysql_fetch_array($res);
mysql_query("UPDATE messagetbl SET me_read='n' WHERE me_id=$id");
echo "<TABLE BORDER=1>\n";
echo "<tr><td><b>Från:</b> <a href=\"index.php?member&mid=$r[m_mid]\">$r[m_nickname]</a></td><td>".date("Y-m-d H:G",$r[me_date])."</td></tr>\n";
echo "<tr><td colspan=2>$r[me_text]</td></tr>\n";
echo "</TABLE>\n";
echo "<br><a href=\"index?message&delete=yes&id=$id\">Radera meddelandet</a>";
echo "<br><br>Svara på meddelandet<br>";
echo "<FORM action=\"index?message\" method=\"post\">\n";
echo "<INPUT TYPE=\"hidden\" name=\"save\" value=\"yes\">\n";
echo "<INPUT TYPE=\"hidden\" name=\"tid\" value=\"$r[me_fmid]\">\n";
echo "<textarea name=\"message\" cols=30 rows=10></textarea>\n";
echo "<br><INPUT type=\"submit\" value=\"Skicka\">\n";
echo "</FORM>\n";
echo "<a href=\"javascript: history.go(-1)\">Tillbaka</a>";
}else
echo "Kunde inte hitta meddelendet\n";
}else {
#Listar meddelanden
$res=mysql_query("SELECT me_id,me_read,me_fmid,me_tmid,me_title,me_text,me_date,m_mid,m_nickname FROM messagetbl,membertbl WHERE me_fmid=m_mid AND me_tmid='$UserInfo[m_mid]' ORDER BY me_date DESC ");
if(mysql_num_rows($res)>=1) {
echo "<TABLE BORDER=0>\n";
echo "<tr class=txtblack><td> </td><td>Meddelande</td><td>Skickat från</td><td>Skickat den</td></tr>\n";
while($r=mysql_fetch_array($res)) {
if(strlen($r[me_text])>=20)
$r[me_text] = substr($r[me_text],0,17)."...";
echo "<tr><td>".($r[me_read]=="y" ? "<font color=red>NYTT</font>" : " ")."</td><td><a href=\"index.php?message&id=$r[me_id]\">$r[me_text]</a></td><td> <a href=\"index.php?member&mid=$r[m_mid]\">$r[m_nickname]</a></td><td>".date("Y-m-d H:G",$r[me_date])."</td></tr>\n";
}
echo "</TABLE>\n";
}else
echo "Du har inga meddelanden\n";
}
?>
Observera kopplingarna till tabellen membertbl som är den tabell där medlemmarna har sin info. Du ser även en array som heter $UserInfo[]; Den innehåller all den information som en inloggad medlem har i membertbl. Du får modifiera efter dina egna behov.
------------------
"Information wants to be free -- because it is now so easy to copy and distribute casually -- and information wants to be expensive -- because in an Information Age, nothing is so valuable as the right information at the right time."
- John Perry Barlow
me_id = Meddelandets ID
me_read = Om meddelandet är läst eller inte
me_fmid = Från Meddelnade ID
me_tmid = Till Meddelande ID
me_title = Tittel på meddelandet
me_text = Texten i meddelandet
me_date = Datumet, kanske ;)
"Information wants to be free -- because it is now so easy to copy and distribute casually -- and information wants to be expensive -- because in an Information Age, nothing is so valuable as the right information at the right time."
- John Perry Barlow
Det är vilka medlemsid som meddelandena skickas till.
Om jag har medlems id 1 och jag ska skicka till Kalle som har medlems id 2 så blir det
me_fmid=1
me_tmid=2
När kalle loggar in och klickar på meddelande länken så görs en selectsats på alla meddelanden i membertbl som har me_tmid=2
Resten av uppgifterna hämtas ur tabellen membertbl (med en join) där man ser att m_nickname för m_mid=1 är Nanne etc. etc.
------------------
"Information wants to be free -- because it is now so easy to copy and distribute casually -- and information wants to be expensive -- because in an Information Age, nothing is so valuable as the right information at the right time."
- John Perry Barlow