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
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 ();
hát ez az üzenőfal sem működik…a Rooly fajta sem…ellenőrizzétek a kódokat légyszi
í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
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
Na ezt én is kipróbálom!
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
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.
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
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.
Én is kaptam a hibaüzenetet. Szerintem a kód végén ez a rész okozza a hibát:
Helyette:
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?
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!
nekem ezt írja ki :Parse error: parse error, unexpected T_VARIABLE in /shoutbox/shoutbox.php on line 81
a 81. sorom:
é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 :
azonkivül ajánlom a a mysql adatbazisban a következö sort :
erre
változtatni.
az új query pedig :
azonkivül :
igy könnyebb lenne.
Akinek egy Ajax üzenöfalra van szüksége irjon egy mailt.
ÜDV MrSecret
Dobd fel tutorialként, és akkor nem kell levelezned… :)
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.
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.
Parse error: syntax error, unexpected $end in C:xampphtdocsszakdolgozatuzenofal.php on line 115
Nekem ezt dobja ki..
115 sorom:
érdekes…
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!
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.
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ó :-(
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.
Ismerős küldött be kb. 7-8.-a körül, de nem lett kitéve, pedig abban nem jelentkeztek a hibák. Ja és még jól is néz ki :-) Így néz ki az enyém, csak ebbe háttér is van, meg felül gombok: http://box6.host1free.com/~pcrola/shoutbox/index.php
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.