WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Behöver er hjälp (https://www.wn.se/forum/showthread.php?t=1038854)

emil123 2009-10-31 13:16

Behöver er hjälp
 
Hej!
Jag försökte flera gånger att fixa en värvnings funktion men misslyckades. Det är så att när man registrerar sig genom värvnings länk så skriver databasen in username(hans som registrerade sig) men skriver inte id som han blev värvat.
Index.php
if(isset($_GET['r'])){
$_SESSION['r'] = $_GET['r'];
}
?>

Och join.php.

if(isset($_GET['r'])){
$_SESSION['r'] = $_GET['r'];
mysql_query("INSERT INTO tblref (RefByID, RefUser, RefDate) VALUES ('$intID', '$username', now())") or die(mysql_error());
mysql_query("UPDATE tbluser SET UserPoints = UserPoints + 2 WHERE ID = intID");
$MessLog = 'Värvad medlem: '.$username.'.';
mysql_query("INSERT INTO tblpointlog (Mess, Points, Type, UserID, LogDate) VALUES ('$MessLog', 2, 1, '$intID', now())") or die(mysql_error());


Vad är det som är fel?
Tack.

Linuus 2009-10-31 13:48

Vart är det den inte skriver in rätt ID? I tblref eller?

En annan sak jag såg:
mysql_query("UPDATE tbluser SET UserPoints = UserPoints + 2 WHERE ID = intID");

WHERE ID = intID? Borde det inte vara WHERE ID = {$intID}
Eller liknande?

emil123 2009-10-31 14:04

[QUOTE=Linuus;20328978]Vart är det den inte skriver in rätt ID? I tblref eller?/QUOTE]
I tblref och tblpointlog.

Nerox 2009-10-31 14:21

Citat:

Ursprungligen postat av emil123 (Inlägg 20328969)
Hej!
Jag försökte flera gånger att fixa en värvnings funktion men misslyckades. Det är så att när man registrerar sig genom värvnings länk så skriver databasen in username(hans som registrerade sig) men skriver inte id som han blev värvat.
Index.php
if(isset($_GET['r'])){
$_SESSION['r'] = $_GET['r'];
}
?>

Och join.php.

if(isset($_GET['r'])){
$_SESSION['r'] = $_GET['r'];
mysql_query("INSERT INTO tblref (RefByID, RefUser, RefDate) VALUES ('$intID', '$username', now())") or die(mysql_error());
mysql_query("UPDATE tbluser SET UserPoints = UserPoints + 2 WHERE ID = intID");
$MessLog = 'Värvad medlem: '.$username.'.';
mysql_query("INSERT INTO tblpointlog (Mess, Points, Type, UserID, LogDate) VALUES ('$MessLog', 2, 1, '$intID', now())") or die(mysql_error());


Vad är det som är fel?
Tack.

Av vad jag kan se på

Kod:

if(isset($_GET['r'])){
                $_SESSION['r'] = $_GET['r'];
                mysql_query("INSERT INTO tblref (RefByID, RefUser, RefDate) VALUES ('$intID', '$username', now())") or die(mysql_error());
                mysql_query("UPDATE tbluser SET UserPoints = UserPoints + 2 WHERE ID = intID");
                $MessLog = 'Värvad medlem: '.$username.'.';
mysql_query("INSERT INTO tblpointlog (Mess, Points, Type, UserID, LogDate) VALUES ('$MessLog', 2, 1, '$intID', now())") or die(mysql_error());

har du inte ens deklarerat $intID vilket medför att det blir NULL i databasen

Conny Westh 2009-10-31 18:18

Citat:

Ursprungligen postat av emil123 (Inlägg 20328969)
Hej!
Jag försökte flera gånger att fixa en värvnings funktion men misslyckades. Det är så att när man registrerar sig genom värvnings länk så skriver databasen in username(hans som registrerade sig) men skriver inte id som han blev värvat.
Index.php
if(isset($_GET['r'])){
$_SESSION['r'] = $_GET['r'];
}
?>

Och join.php.

if(isset($_GET['r'])){
$_SESSION['r'] = $_GET['r'];
mysql_query("INSERT INTO tblref (RefByID, RefUser, RefDate) VALUES ('$intID', '$username', now())") or die(mysql_error());
mysql_query("UPDATE tbluser SET UserPoints = UserPoints + 2 WHERE ID = intID");
$MessLog = 'Värvad medlem: '.$username.'.';
mysql_query("INSERT INTO tblpointlog (Mess, Points, Type, UserID, LogDate) VALUES ('$MessLog', 2, 1, '$intID', now())") or die(mysql_error());


Vad är det som är fel?
Tack.

1) Deklarationen av variablerna verkar fattas som påpekats
2) Du bör väl lägga upp en post i tblUser INNAN du lägger upp värden i de andra tabellerna, annars finns ju ingen User att jobba med?
3) Koden är inte tillräckligt komplett för att kunna göra en fullt korrekt felsökning så här utan det blir bara gissningar.
4) Det kan även ha med vilka datatryper du har i databasen resp i PHP-koden, de måste matcha.

Jonas 2009-10-31 20:16

Har du någon sida man kan se detta på?
Jag skulle hemskt gärna vilja köra några SQL-injections åt dig :D

Snälla???

Annars är mysql_real_escape_string() en underbar funktion, eller varför inte, när du ändå är i nybörjarfasen lära sig prepared statements, med MySQLi (MySQL Improved) eller PDO.
MySQLi är inget annat än en vidareutveckling av MySQL tillägget till PHP.


Alla tider är GMT +2. Klockan är nu 10:56.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson