Üzenőfal honlapra

Na ez egy elég komoly tutorial, php és MySQL kell az elkészítéséhez!
Első lépésként csináljunk egy MySQL táblát!

CREATE TABLE `shoutbox` ( 
`id` INT(12) NOT NULL AUTO_INCREMENT, 
`username` VARCHAR(25) NOT NULL, 
`email` VARCHAR(25) NOT NULL, 
`message` TEXT NOT NULL, 
`date` VARCHAR(15) NOT NULL, 
`ip` VARCHAR(25) NOT NULL , 
PRIMARY KEY (`id`))

Akkor most kapcsolatot kell teremtenünk a php fájl és az adatbázis között.
Hozzunk létre egy új fájlt connect.php névvel és a következőt írjuk bele:

<?php 
 
$co_host = "localhost" ; // sql adatbázis cím
$co_name = "username" ; // adatbázis felhasználónév 
$co_pw = "password" ; // adatbázis jelszó 
$co_db = "database name" ; // adatbázis neve 
 
mysql_connect ( $co_host , $co_name , $co_pw ) or die( mysql_error ()); 
mysql_select_db ( $co_db ) or die( mysql_error ()); 
?>

Akkor ezen a részen túlvagyunk, most hozzunk létre egy shoutbox.php nevű fájlt!

Megjegyzés: a connect.php tartalmát biztonsági okokból raktuk külön fájlba.

<html> 
<head> 
<title>Üzenőfal!</title> 
<style type="text/css"> 
<!-- 
.message { 
color: #000000; 
font-family: Verdana; 
font-size: 10px;} 
 
.username { 
color: #FF9900 
font-family: Verdana; 
font-size: 10px; 
font-weight: bold} 
 
.date { 
color: #707070; 
font-family: Verdana; 
font-size: 9px;} 
 
.forms { 
font-family: Verdana, Arial, Helvetica, sans-serif; 
font-size: 10 px; 
color: #6CA05A; 
text-decoration: none; 
background-color: #CCCCCC; 
border-color: #6CA05A; 
border-style: solid; 
border: 1px} 
 
.submit { 
background-color: #CCCCCC; 
border-color: #6CA05A; 
color: #2A343C; 
font-family: Verdana; 
font-size: 10px; 
border-style: solid; 
border 1 px;} 
--> 
</style> 
</head> 
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" style="padding: 2px"> 
<?php 
 
// If submitted 
if( $_POST [ 'submit' ]) { 
 
// Verify if the fields were filled. 
if(! $_POST [ 'username' ]) { 
echo 'HIBA a felhasználóneveddel!' ; 
die; 
} 
if(! $_POST [ 'email' ]) { 
echo 'HIBA az e-mail címeddel!' ; 
die; 
} 
if(! $_POST [ 'message' ]) { 
echo 'HIBA az üzeneteddel!' ; 
die; 
} 
 
// Date format 
$date = date ( "d/m/y" ); // http://www.php.net/date 
 
// Assign variables of the forms 
$username = $_POST [ 'username' ]; 
$email = $_POST [ 'email' ]; 
$message = $_POST [ 'message' ]; 
$ip = $_SERVER [ 'REMOTE_ADDR' ]; 
 
// Connect to the database 
include( 'connect.php' ); 
 
// Insert the info in the shoutbox table. 
$query = "INSERT INTO shoutbox (username, email, message, date, ip) 
VALUES ('$username','$email','$message','$date','$ip')" ; 
mysql_query ( $query ); 
// close connection 
mysql_close (); 
 
// Show message to let them return to the shoutbox 
?> 
<div align="center">Köszönjük a hozzászólást .<br> 
Return to the <a href="shoutbox.php">üzenőfal</a>! 
<?php 
// If NOT submitted 
} else { 
 
// connect to the database 
include( 'connect.php' ); 
 
$query = "SELECT * FROM shoutbox ORDER BY id DESC LIMIT 10" ; 
$result = mysql_query ( $query ); 
// Create a table 
?> 
 
<table width="100%" cellpadding="0" cellspacing="0" border="0"> 
 
<? 
// Run a While loop for the rows 
while( $c = mysql_fetch_array ( $result )) 
{ 
?> 
<tr> 
<td><a href="mailto: <? echo $c['email']; ?> "> 
<? echo $c [ username ] ?> </a> says: 
<div align="justify"> <? echo $c['message']; ?> </div> 
</td> 
</tr> 
<tr><td>on <? echo $c['date']; ?> 
<hr noshade="noshade" size="1" style="border-style: dashed" color="#000000" /></td></tr> 
<? } ?> 
 
</table> 
 
<form method="post" action="shoutbox.php"> 
<table width="100%" border="0" cellpadding="0" cellspacing="0"> 
<tr> 
<td>Felhasználónév :</td> 
<td><input type="text" name="username" class="forms"></td> 
</tr> 
<tr> 
<td>Email :</td> 
<td><input type="text" name="email" class="forms"></td> 
</tr> 
<tr> 
<td>Üzenet :</td> 
<td><input type="text" name="message" class="forms"></td> 
</tr> 
<tr> 
<td colspan="2"><input type="submit" name="submit" value="Mehet" class="subtmit"></td> 
</tr> 
</table> 
</form> 
 
<? 
} 
mysql_close (); 
?> 
</body> 
</html>

Szerző: Lyzu

Frissítés: 2012-es új cikk e témában: Üzenőfal script

23 HOZZÁSZÓLÁS

  1. Nekem az alábbi hibát írja ki. Mi lehet gond?

    Köszönjük a hozzászólást .
    Return to the üzenőfal!
    Warning: mysql_close(): no MySQL-Link resource supplied in /disk/raid2/o/k/okoriroma/shoutbox.php on line 356

    a 356 sor: mysql_close ();

  2. hát ez az üzenőfal sem működik…a Rooly fajta sem…ellenőrizzétek a kódokat légyszi

  3. így első ránézésre annyi baja lehet, hogy 2 darab mysql_close() van benne, és csak egy mysql_connect() illetve mysql_select_db() van benne.
    így javaslom, hogy az első mysql_close(); sort szedd ki (vagy szedje ki mindenki, aki használni akarja), mert utánna még vannak sql lekérdezések, de ha nincs aktív kapcsolat, akkor ezek a lekérdezések csak hibát eredményeznek. A kódot átnézve (nem tesztelve), több hibát nem látok benne így hirtelen

  4. Na kipróbáltam és nálam megy rendesen. A mysql_close() -ok száma is megfelelő, csak elnéztem egy sort :)

    Szóval inkább pontosan írd le, hogy mi nem működik, mit ír ki, stb. és akkor pontosabban tudunk segíteni. Valamint olvasd át mégegyszer, hátha kihagytál egy lépést, vagy elírtál valamint a connect.php-ban

  5. ez mind ok de nem fejleszettétek tovább…mi igen
    hisz így mikor eltellik h törlöd vagy hogy teszed félre hogy ne vessz el benne…pl napi üzikben! legközelebb szerintem ha már mysql es akkor admin felületet neki ;-) köszeee puszee pacseee :D

  6. Hali!

    ez egész jó. valami ilyesmire gondoltam, de kicsit kiegészítettem. Köszönöm a segítséget.
    Viszont… Szeretném bizonyos idő közönként ellenőriztetni (kb 30mp) az üzeneteket. Ha megváltozott, frissítse a lekérdezés. Ne kelljen a böngészőben a frissítés gombra kattintani mert akkor újra küldi az üzit. Gondolom JS-el meg lehetne csinálni de amit tudok az az egész oldalt újra tölti és nem csak a lekérdezést.Aki válaszol az az e-mailemre is írjon. Előre is köszi.

  7. nekem ezt írja ki :Parse error: parse error, unexpected T_VARIABLE in /shoutbox/shoutbox.php on line 81

    a 81. sorom: $query = “INSERT INTO Shoutbox (Username, E-mail, Message, Date, IP) VALUES (“$username”, “$email”, “$message”, “$date”, “$ip”)”;

    és a regisztrációm is ezt a hibát írja… én néztem el valamit vagy mi??? segítsetek PLS

  8. Nekem is ezt írja ki: Warning: mysql_close(): no MySQL-Link resource supplied in /disk/raid1/t/u/tumi/shoutbox.php on line 139,és nem tudok rájönni,hogy mi lehet a baja,mert az üzeneteket eltárolja,és vissza is adja,de a mehet gomb lenyomásakor kiirja ezt az hibaüzenetet,valamint azt,hogy sikeres üzenetküldés.Segítsetek,hogy mit csináljak vele plíz.

  9. A kód végén a kapcsos zárójel rossz helyen ven, a mysql kapcsolat lezárása után kell. Vagy rosszul látom?

  10. Sziasztok!
    Az utolsó kapcsos zárójel valóban nem jó helyen van benne.
    Nekem lenne 2 kérdésem is, mint kezdő e témában:
    1. Min kell ahhoz változtatni rajta, hogy az üziket fordított sorrendbe írja ki? (Azaz a legfrisebb legyen legalul)
    2. Hogyan oldható meg, hogy a látogató, tehessen az üzijébe sortörést?
    Előre is köszi a segítséget!

  11. nekem ezt írja ki :Parse error: parse error, unexpected T_VARIABLE in /shoutbox/shoutbox.php on line 81

    a 81. sorom:

    1
    
    $query = "INSERT INTO Shoutbox (Username, E-mail, Message, Date, IP) VALUES ("$username", "$email", "$message", "$date", "$ip")";

    és a regisztrációm is ezt a hibát írja… én néztem el valamit vagy mi??? segítsetek PLS

    ah hiba a 81 sor :
    Ìgy helyes :

    1
    
    $query = "INSERT INTO Shoutbox (Username, E-mail, Message, Date, IP) VALUES ("$username", "$email", "$message","$date", "$ip")";

    azonkivül ajánlom a a mysql adatbazisban a következö sort :

    1
    
    'date' VARCHAR(15) NOT NULL,

    erre

    1
    
    'date' DATE

    változtatni.
    az új query pedig :

    1
    
    $query = "INSERT INTO Shoutbox (Username, E-mail, Message, Date, IP) VALUES ("$username", "$email", "$message", NOW() , "$ip")";

    azonkivül :

    1
    
    mysql_query($query) OR DIE("HIBA!! ".mysql_error());

    igy könnyebb lenne.

    Akinek egy Ajax üzenöfalra van szüksége irjon egy mailt.

    ÜDV MrSecret

  12. Szasztok!
    Megpróbáltam énis szerkeszteni ilyet otthon de sehogy sem akar műkődni, vagy én PHPed-et használok (az az egy a legjobb), mivel nincs otthon internetem, ezért nem tudok mi a hiba a honlappal. A MySQL hova kell elmenteni? Mert azt nem látom sehol sem.

  13. Hm, ez így nem túl szép, kéne vmi SQL injection elleni védelem. Pl. mysql_real_escape_string() az értékekre alkalmazva.

  14. Parse error: syntax error, unexpected $end in C:xampphtdocsszakdolgozatuzenofal.php on line 115

    Nekem ezt dobja ki..

    115 sorom:

    érdekes…

  15. Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/blogja.net/krew/www/test/index.html on line 102

    Nekem ezt írja ki légyszi segítsetek, mert fontos lenne!

  16. Nekem is hibaüzenet volt, ugyanakkor megjelentek az üzenetek, de az azért mégsem jó. Kivettem az első mysql_close() sort és nekem is megy már.

  17. Nagyon sok hiba van benne:
    1.: át kell írni, hogy üzenet küldés után ne legyen hiba üzenet. ( mysql_close() )
    2.: ha nem a vissza gombot használjuk, hanem frissítünk, akkor kétszer küldi el az üzenetet
    3.: nincs e-mail ellenőrzés. Elfogad akár 2-3 betűt e-mailnek
    4.: nincs a szövegnek kis doboz (text area)
    5.: nincs captcha kód, vagyis ha egy weboldalt a google megtalál, akkor a spam-ek is. Így ez nem használható :-(

  18. Köszi az észrevételeket. Ez nagyon régi tutorial ha megnézed a dátumot, biztos meg lehet írni a kódot másképp is. Ha Te vagy bárki más érez hajlandóságot, hogy megírja és elküldje nekem, nagyon szívesen kiteszem egy új cikknek és itt jelezni fogom a leírás elején, hogy van egy újabb verzió üzenőfalhoz.

  19. Ez nem működik! vagy valamit nem jól csinálok :(

    Not Found

    The requested URL /shoutbox.php was not found on this server.

HOZZÁSZÓLOK A CIKKHEZ

Kérjük, írja be véleményét!
írja be ide nevét