Trädvy Permalänk
Medlem
Plats
Ö
Registrerad
Jul 2006

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?

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Sep 2007

<?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?

[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]

Trädvy Permalänk
Medlem
Plats
Nossebro
Registrerad
Dec 2005

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.

Trädvy Permalänk
Medlem
Plats
Ö
Registrerad
Jul 2006
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

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Sep 2007

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

[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]

Trädvy Permalänk
Medlem
Plats
Ö
Registrerad
Jul 2006

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

Trädvy Permalänk
Medlem
Plats
Ö
Registrerad
Jul 2006

Dubbelpost

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jan 2007
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.

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Sep 2007
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

?

[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]

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jan 2007
Citat:

Ursprungligen inskrivet av Niklashog

magic_quotes_gpc = On

?

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

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Sep 2007
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?.

[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]

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jan 2007
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.

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Sep 2007
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å?

[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]

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jan 2007
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.

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Feb 2003

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