Permalänk

PHP Fråga

Ledsen för den dåliga rubriken

Jag är inte jätteduktig på php och har nu även fått hjärnsläpp gällande en ganska enkel funktion.
Vad jag önskar är en knapp lik 'Appreciate' knappen hos Behance.net.

Klickar man på knappen ska det helt enkelt läggas till 1 i en databas.

Sidan den ska användas till är dynamisk och det läggs hela tiden in nytt material i form av skivalbum. Man ska kunna 'gilla' dessa. Antal klick på 'gilla' knappen ska helt enkelt skrivas ut bredvid albumet.

Kan någon hjälpa mig på traven och förklara hur jag ska börja?

Permalänk

<?php if (isset($_GET["ilike"])){ $db_table = 'betyg' mysql_query("Insert into $db_table set post_id='".$_GET["ilike"]."' user_ip='".$_SERVER['REMOTE_ADDR']."'"); } ?> <a href="?ilike=837"><img src="ilike.gif"/></a>

Något sånt?

Visa signatur

[ASUS P9X79] [Corsair RM850i] [Corsair 32GB DDR3 1600mhz] [i7 3930K] [Noctua NH-D14] [Gainward GTX 1080 "GLH" Golden Sample 8GB GDDR5X][Sandisk 256GB][Fractal Design Define S]

Permalänk
Medlem

Hade det varit jag så hade jag nog velat ha någon form av block så att samma person inte kan rösta en gång till. T.ex. en vote per IP-address, eller att den lagrar cookies hos klienten.

Permalänk
Citat:

Ursprungligen inskrivet av Niklashog

<?php if (isset($_GET["ilike"])){ $db_table = 'betyg' mysql_query("Insert into $db_table set post_id='".$_GET["ilike"]."' user_ip='".$_SERVER['REMOTE_ADDR']."'"); } ?> <a href="?ilike=837"><img src="ilike.gif"/></a>

Något sånt?

Skulle det där fungera? o.O

Permalänk

Det är ett tips på hur du kan göra. Kan du php överhuvudtaget?

Visa signatur

[ASUS P9X79] [Corsair RM850i] [Corsair 32GB DDR3 1600mhz] [i7 3930K] [Noctua NH-D14] [Gainward GTX 1080 "GLH" Golden Sample 8GB GDDR5X][Sandisk 256GB][Fractal Design Define S]

Permalänk

Haha, kan och kan. Aldrig tagit mig tid att lära mig det ordentligt. Kan det jag sysslat med tidigare. Inget annat

Hur får jag det att fungera? Får bara felmeddelanden

Permalänk

Dubbelpost

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Niklashog

<?php if (isset($_GET["ilike"])){ $db_table = 'betyg' mysql_query("Insert into $db_table set post_id='".$_GET["ilike"]."' user_ip='".$_SERVER['REMOTE_ADDR']."'"); } ?> <a href="?ilike=837"><img src="ilike.gif"/></a>

Något sånt?

Ser bra ut om man bortser från att det enkelt går att göra MySQL-injections på den. Kör åtminstone intval på indatan
Sen måste man ju kolla så att IP-adressen inte har röstat på den posten än, och lite annat.

Permalänk
Citat:

Ursprungligen inskrivet av You
Ser bra ut om man bortser från att det enkelt går att göra MySQL-injections på den. Kör åtminstone intval på indatan
Sen måste man ju kolla så att IP-adressen inte har röstat på den posten än, och lite annat.

magic_quotes_gpc = On

?

Visa signatur

[ASUS P9X79] [Corsair RM850i] [Corsair 32GB DDR3 1600mhz] [i7 3930K] [Noctua NH-D14] [Gainward GTX 1080 "GLH" Golden Sample 8GB GDDR5X][Sandisk 256GB][Fractal Design Define S]

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Niklashog

magic_quotes_gpc = On

?

Magic quotes är en pseudosäkerhet som bör vara (och ofta är) avstängd.

Permalänk
Citat:

Ursprungligen inskrivet av You
Magic quotes är en pseudosäkerhet som bör vara (och ofta är) avstängd.

Hur menar du då?, hur går det att komma förbi det med mysql injections?.

Visa signatur

[ASUS P9X79] [Corsair RM850i] [Corsair 32GB DDR3 1600mhz] [i7 3930K] [Noctua NH-D14] [Gainward GTX 1080 "GLH" Golden Sample 8GB GDDR5X][Sandisk 256GB][Fractal Design Define S]

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Niklashog
Hur menar du då?, hur går det att komma förbi det med mysql injections?.

Problemet är inte själva magic quotes, utan att man litar blint på att magic quotes finns och är på. Det blir en pseudosäkerhet, du känner dig säker men det är du kanske inte.
Att köra intval på ett värde som alltid ska vara en integer är dessutom väldigt vettigt på många andra sätt.

Permalänk
Citat:

Ursprungligen inskrivet av You
Problemet är inte själva magic quotes, utan att man litar blint på att magic quotes finns och är på. Det blir en pseudosäkerhet, du känner dig säker men det är du kanske inte.
Att köra intval på ett värde som alltid ska vara en integer är dessutom väldigt vettigt på många andra sätt.

Det är väl bara se till att det är på?

Visa signatur

[ASUS P9X79] [Corsair RM850i] [Corsair 32GB DDR3 1600mhz] [i7 3930K] [Noctua NH-D14] [Gainward GTX 1080 "GLH" Golden Sample 8GB GDDR5X][Sandisk 256GB][Fractal Design Define S]

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Niklashog
Det är väl bara se till att det är på?

Men det är något du måste se till själv.
Att posta kod som du gjorde utan någon indikation på att magic quotes måste vara på är lite farligt.
Jag skulle fortfarande vilja påstå att man ska köra intval i det här fallet, oavsett om man har magic quotes eller inte.

Permalänk
Medlem

Prepared statements är en bra lösning på SQL-injections.
http://www.php.net/manual/en/mysqli.prepare.php