ugrás a tartalomhoz

php onclick

kriszrap · 2010. Dec. 15. (Sze), 21.19
Sziasztok

Van ez a függvény:

echo '
#'.$a['id'].' Név: <a class="b" href="profil.php?id='.htmlspecialchars(urlencode($a['idje'])).'">'.$a['name'].'</a>';

Olyat szeretnék hogy ha rá kattintanak akkor phpvel felküldök akármit. Ezt hogy lehet meg csinálni?? Sokan ajaxot ajánlják. Más megoldás??
Elöre is köszönöm
 
1

onclick

Poetro · 2010. Dec. 15. (Sze), 21.27
Az onclick esemény egy JavaScript DOM esemény, aminek semmi köze a PHP-hoz.
Olyat szeretnék hogy ha rá kattintanak akkor phpvel felküldök akármit.

Mit jelent az, hogy felküldesz akármit? Mert ha a profil.php a te irányításod alatt van, akkor azt a linkre kattintáskor a böngésző alapértelmezetten meghívja, és innentől kezdve PHP-ban azt csinálsz amit akarsz.
2

Nem értem... Aki webes

neogee · 2010. Dec. 15. (Sze), 22.31
Nem értem...
Aki webes programozásra adja a fejét, vagy akár csak beleszagol ebbe, az miért nem tudja, mi hol történik? Mi történik szerver és mi kliens oldalon... Szerintem abszolút egyértelmű... Ha már valaki ezzel foglalkozik, akkor annyi fáradtságot vegyen, hogy elolvas legalább egy könyvet a témában... Vagy utána néz, hogy mit is jelent az hogy server és kliens oldali programozás, de az a minimum, hogy megnézi a php működési mechanizmusát, ha már ezzel foglalkozik... Szerintem kicsit unalmasak már az ilyen típusú kérdések... De az is lehet, hogy csak én vagyok éppen rossz hangulatban, nem tudom.

Elnézést ha megbántottalak kriszrap, nem ez volt a cél...
3

Akkor el mondom. Egy chatat

kriszrap · 2010. Dec. 15. (Sze), 23.17
Akkor el mondom. Egy chatat csináltam phpbe.
És azt szeretném el érni ha rákattintanak a linkre akkor az adatbázisnak felküldi hogy pl.katti meg nézte az adatlapod. Ezt akarom el érni.
Csak nem tom be azonositani hogy rákkatintottak-e. És nem tom elinditani ezt
a függvényt:
<?php
$idje = "".$_SESSION['id'];
$id = "".$_SESSION['id'];
$email= "".$_SESSION['email'];
$result = mysql_query("SELECT * FROM users WHERE email='$email'");
$row = mysql_fetch_array($result);
$neve= "".$row ['nick'];
$idem = $_GET['id'];
if(isset($_GET['id']))<--- gettel probálkoztam de nem ment
{
if($idem!==$idje)
{
mysql_query("INSERT INTO stats (id,idje,nev,idem,esemeny,datum,megnezte)
VALUES ('','$idje','$neve','$idem','Megnézte Az Adatlapod',now(),'0')");
}
}
?>

neogee nem bántottál meg legalább okulok :D
4

Látogatás

Poetro · 2010. Dec. 15. (Sze), 23.24
A profil.php akkor fog meghívódni, amikor ellátogatnak arra a linkre, kvázi rákattintottak. És mi szerepel a $_GET['id'] helyén? Mit jelent az, hogy nem ment? Nem lehet, hogy rossz adatokat adtál át a HTML-nek? Jah, és minél hamarabb javítsd ki a lehetséges SQL injection hibákat, ha jót akarsz.
5

Hát ahogy poetro is mondta, a

neogee · 2010. Dec. 16. (Cs), 08.32
Hát ahogy poetro is mondta, a szerveroldal akkor érzékel bármit is a felhasználó tevékenységéből, ha kérés érkezik feléje. Mikor egy linkre kattint valaki, akkor alap esetben egy új kérést küld a böngésző a szerver felé, amiben a link hivatkozásaként megadott erőforrást kéri le. Ahogy poetro is mondta: amikor valaki rákattint arra a linkre amiben hivatkozásként a profile.php-t állítottad be, a profile.php le fog futni, vagyis "elkapja" a kattintást, és elvégzi azokat a műveleteket amik benne vannak. Az hogy ki kattintott azt pedig több módon derítheted ki. Az egyik legegyszerűbb módszer, ha a linkhez hozzáfűzöd a kattintó felhasználó azonosítóját, de ez meglehetősen veszélyes, mert így ha én fellépek, és elkezdem az url-t babrálni, akkor simán kijöhet az is belőle, hogy a Kiss Pista felhasználódnak csinálok sok sok kattintást mindig más nevén... A másik elég egyszerű megoldás pedig a $_SESSION. Gondolom egyébként is van beléptetés a rendszerben, szóval valahol el kell tárolnod az is, hogy az adott user be van e lépve és gondolom erre a $_SESSION-t használod. Egyszerűen beteszed ide a belépett user idjét is ( ha még nincsen benne ), és mikor a profile.php lefut, akkor nagy valószínűséggel "kattintás" történt, és mivel a $_SESSION-ben benne van a belépett felhasználó azonosítója, ezért egyértelműen tudod azt is, hogy ki kattintott.
Körülbelül ennyi a javaslatom.

Viszont egy aprócska megjegyzés: Amit te az előbb függvénynek neveztél, az valójában csak egy php állomány egy halom kóddal.
Még egy aprócska megjegyzés: Ahhoz hogy php-ban chatet írj ahhoz sok sikert kívánok! :))) Alapvetően a HTTP állapottalan mivolta okán a php alkalmatlan rá... Persze "ki lehet cselezni", de akkor valóban szükséged lesz legalább egy kis ajax-ra ráadásul nagyon könnyen el tud menni a dolog erőforrás pazarlás irányba, amivel baromi nagy terhelést adsz a szervernek.

Szerkesztve:
Még egy nagyon aprócska javaslat: szerintem szokj le az $idem,$idje és hasonló változónevekről, mert valószínűleg az lehet a baj, hogy összekeverted, és rosszat id-t teszel be a linkbe.

Legyenek inkább: $visitor_id, $visited_user_id stb... és akkor pontosan tudod melyik id a létógatóé, és melyik a látogatotté. Ráadásul én nem tenném bele a userek idjét direktbe a linkbe. Inkább a profile_id-t tenném bele, egyébként sem a felhasználót látogatod meg, hanem csak a profilját. A user nálam tulajdonképpen csak az azonosításhoz szükséges minimális adatokat takarja. Tulajdonképpen az account adatait. Minden más info amit nem feltétlenül szükséges tudni a felhasználóról, az a profil tartozéka.
De ez csak az én véleményem :))
6

kösznöm szépen az infokat :D

kriszrap · 2010. Dec. 16. (Cs), 15.46
kösznöm szépen az infokat :D és pontositok php-html chat et csinálok :D

és az miért is baj hogy a user idjét adom meg??:D
7

Bajnak nem baj, csak egyrészt

neogee · 2010. Dec. 21. (K), 23.30
Bajnak nem baj, csak egyrészt szerintem logikátlan, mivel mint mondottam nem a usert látogatod meg, hanem a profilját. Másrészt pedig szerintem egy felhasználói azonosítóval a gonosz emberek többet tudnak kezdeni mint egy profil azonosítóval. Bár lehet hogy ez csak az én véleményem, de valójában ez nem is feltétlenül fontos.

Ami viszont mindenképpen változatlan, az az, hogy a php mellé tehetsz szinte bármit, alkalmatlan alap esetben realtime alkalmazás készítésére like: chat. Persze ez nem teljesen igaz, de alapesetben igen... Picit olvass utána annak, hogy mi az a chat, és hogyan is működik, illetve hogy hogyan is működik maga a php. :)