Avatar billede alexanderf Nybegynder
23. november 2009 - 17:10 Der er 32 kommentarer og
1 løsning

Hjælp til cash back site

Hej,
Jeg har et cash back site som jeg gerne vil videreudvikle lidt på.
Jeg vil gerne have så man kan invitere sine venner, med et unikt link f.eks. www.link.dk/?ref=UserID eller www.link.dk/ref.php?id=UserID

Håber på at nogle kan hjælpe mig med det :-)
Avatar billede repox Seniormester
23. november 2009 - 17:20 #1
Din beskrivelse er ikke særligt uddybende.
Hvad er det du vil have lavet? Det hele? Eller har du noget vi skal arbejde ud fra (som vi tilsyneladende skal gætte hvad er)?
Eller er det nogle delkomponenter du mangler?
Avatar billede alexanderf Nybegynder
23. november 2009 - 17:26 #2
Jeg har systemerne. Det eneste jeg skal have lavet er, at hver bruger har et unikt link som han/hun så kan sende til sine venner. Når vennen så opretter sig igennem det link, får man nogle point for oprettelsen.
Avatar billede repox Seniormester
23. november 2009 - 17:30 #3
Vi har stadig ikke noget at gå ud fra; det er jo umuligt at komme med løsningforslag som du kan implementere ud af... ingenting?
Avatar billede alexanderf Nybegynder
23. november 2009 - 17:34 #4
Hvad mangler du? Har alle filer? skal bare have lavet en ref.php og et stykke kode i newuser.php der tilføjer antal point til invite-personens bruger?
Avatar billede repox Seniormester
23. november 2009 - 17:40 #5
...
Er det meningen du bare skal have nogle tips til at løse opgaven og selv implementere det eller det meningen du skal have en færdig løsning som du også skal have implementeret?
Avatar billede alexanderf Nybegynder
23. november 2009 - 17:46 #6
Har nogle idéer, kan godt selv implementere dem, men ville blive glad hvis nogle ville hjælpe med udvikling af det.
Avatar billede repox Seniormester
23. november 2009 - 17:53 #7
Du kunne jo eventuelt komme dine idéer, vise noget kildekode og nogle af de data du forventer der skal arbejdes med og så kunne man måske komme med nogle idéer til videre udvikling.
Avatar billede alexanderf Nybegynder
23. november 2009 - 17:57 #8
Altså i tabellen "users" hvor alle mine brugere ligger, skal der tilføjes et felt der hedder "ref" hvor anbefalerens userID skal ligge.

ref.php har jeg forestillet mig noget lign. dette:
<?php
session_start();
if($_GET[ref_id])
{
$_SESSION[ven] = $_GET[red_id];
header("Location: /index.php");
}
?>
Avatar billede repox Seniormester
23. november 2009 - 18:05 #9
Så er det vel bare noget med i oprettelsesfasen


<?php

  if(isset($_SESSION["ven"]))
  {
    /*
    * kode der kontrollerer om koden har en ejermand
    * og derefter tilføjer x point til denne ejermand
  }

?>



Pointene kan vel registreres på brugeren, ligesom feltet ref?
Avatar billede alexanderf Nybegynder
23. november 2009 - 18:15 #10
Ja, point bliver bare tilføjet til "point". Men hvordan skal den kode lyde, det er det der er mit problem.

    /*
    * kode der kontrollerer om koden har en ejermand
    * og derefter tilføjer x point til denne ejermand

Den der kode.
Avatar billede repox Seniormester
23. november 2009 - 18:22 #11


<?php

  if(isset($_SESSION["ven"]))
  {
    //Det antages at der er forbindelse til databasen allerede her:
    $vKode = $_SESSION["ven"];
    $vKode = mysql_real_escape_string($vKode);
   
    $sql = "SELECT userId FROM userTable WHERE ref = '".$vKode."' LIMIT 1";
    $result = mysql_query($sql);
    if(mysql_num_rows($query) > 0)
    {
      $userId = mysql_result($result, 0, "userId");
     
      $sql = "UPDATE userTable SET point = point + 200 WHERE userId = ".$userId." LIMIT 1";
      mysql_query($sql);
     
    }
   
  }

?>

Avatar billede alexanderf Nybegynder
24. november 2009 - 11:02 #12
Jeg får denne fejl:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /mounted-storage/home84c/sub006/sc45816-KHJT/link/sti/newuser.php on line 58

Linje 58 ser sådan ud:

    if(mysql_num_rows($query) > 0)

Når folk opretter sig igennem ref, får de ikke ref nummer i "ref", og inviteren får ikke point.
Avatar billede repox Seniormester
24. november 2009 - 11:07 #13
Har du brugt den eksakte stump kode jeg har givet dig, da?
Avatar billede alexanderf Nybegynder
24. november 2009 - 11:12 #14
<?


function OpretBruger() {
   
   
if($_SESSION[id]){
print "Du kan ikke oprette en ny bruger mens du er logget på med en anden.";
}else{
   

if($_POST[opret]) {
   
$email = NoSQLInj($_POST[email]);
$kodeord = NoSQLInj($_POST[kodeord]);
$kodeord2 = NoSQLInj($_POST[kodeord2]);

$validmail = valid_email($email);

if($validmail == FALSE){
print "<font color=\"red\">Den indtastede mail er ugyldig. <a href=\"java script:history.back()\">Prøv igen</a></font>";

}else{

if($kodeord != $kodeord2) {
print "<font color=\"red\">De to kodeord matcher ikke hinanden. <a href=\"java script:history.back()\">Prøv igen</a></font>";
}else{

$tjekemail = mysql_query("SELECT * FROM users WHERE email = '$email'");
if(mysql_num_rows($tjekemail) != "0") {
print "<font color=\"red\">Den indtastede email er allerede i brug. <a href=\"java script:history.back()\">Brug en anden?</a></font>";
}else{

if($_POST[betingelser] != "ja") {
print "<font color=\"red\">Du skal acceptere betingelserne. <a href=\"java script:history.back()\">Prøv igen</a></font>";
}else{
   
if($_POST[nyhedsbrev] == "ja") {
mysql_query("INSERT INTO nyhedsbrev (email) VALUES ('$email')");
$point = "5";
$nyhedsbrev = "ja";
}else{
$nyhedsbrev = "nej";
$point = "0";
}

$date = date('d/m/Y H:i:s');
$ip=$_SERVER['REMOTE_ADDR'];

if(isset($_SESSION["ven"]))
  {
   
    $vKode = $_SESSION["ven"];
    $vKode = mysql_real_escape_string($vKode);
   
    $sql = "SELECT id FROM users WHERE ref = '".$vKode."' LIMIT 1";
    $result = mysql_query($sql);
    if(mysql_num_rows($query) > 0)
    {
      $userId = mysql_result($result, 0, "userId");
     
      $sql = "UPDATE users SET point = point + 200 WHERE id = ".$userId." LIMIT 1";
      mysql_query($sql);
     
    }
   
  }

mysql_query("INSERT INTO users (email, kodeord, point, oprettet, ip, nyhedsbrev, ref) VALUES ('$email', '$kodeord', '$point', '$date', '$ip', '$nyhedsbrev', '$ref')");


print "<font color=\"green\">Tillykke!</font><br>Din bruger er nu oprettet og du kan med det samme logge ind og tjene point. God fornøjelse";

}
}
}
}
}else{

?>

Der er hele koden inden HTML og lukningen af }}}
Avatar billede repox Seniormester
24. november 2009 - 11:17 #15
...
Prøv du at rette linie 58 til
if(mysql_num_rows($result) > 0)
Avatar billede alexanderf Nybegynder
24. november 2009 - 11:24 #16
Vi er enige om at linket så ser således ud:
ref.php?ven_id=1

Hvis man har bruger med ID 1 :-)
Avatar billede repox Seniormester
24. november 2009 - 11:26 #17
Nej - vi er enige om at hvis $_SESSION["ven"] = 1, vil mysql forespørgslen lede efter bruger id'et hvor feltet ref = 1.
Avatar billede alexanderf Nybegynder
24. november 2009 - 11:30 #18
Ja, men nu tænker jeg på linket som brugeren skal give til sine venner.
Avatar billede repox Seniormester
24. november 2009 - 11:38 #19
Du får samme svar.
Hvis du sender et link ud til 'en ven' der ser ud som du foreslår ref.php?ven_id=1 får brugeren, hvis ref = 1, pointene uanset bruger id'et.
Avatar billede alexanderf Nybegynder
24. november 2009 - 12:06 #20
Jamen når min ref.php fil ser således ud:
<?php
session_start();
if($_GET[ven_id])
{
$_SESSION[ven] = $_GET[ven_id];
header("Location: /user.php?r=new_user");
}
?>

Hvordan vil du så have at linket skal være?
Avatar billede repox Seniormester
24. november 2009 - 12:51 #21
Du forstår ikke hvad jeg siger...
er inholdet $_GET["ven_id"] id'et på den bruger som som skal have pointene?
Avatar billede alexanderf Nybegynder
24. november 2009 - 14:13 #22
Nej, det er inviters id. Undskyld, forstod det ikke :-)
Avatar billede repox Seniormester
24. november 2009 - 14:16 #23
Så skal din sql sætning også se anderledes ud:

$sql = "SELECT id FROM users WHERE id = '".$vKode."' LIMIT 1";
Avatar billede alexanderf Nybegynder
24. november 2009 - 14:27 #24
Nu tilføjer den de 200 point til ham der inviteres konto. Den tilføjer dog intet i "ref" feltet?
Avatar billede repox Seniormester
24. november 2009 - 14:34 #25
Nej? Hvad vil du bruge 'ref' feltet til?
Avatar billede alexanderf Nybegynder
24. november 2009 - 14:37 #26
Så brugerne kan trække data ud f.eks:

der er 12 brugere der har tilmeldt sig igennem dit link. Så userid skal vel ind i "ref"? :-)
Avatar billede repox Seniormester
24. november 2009 - 14:42 #27
Nej, så kan du bare nøjes med at opdatere denne:
$sql = "UPDATE users SET point = point + 200, ref = ref + 1 WHERE id = ".$userId." LIMIT 1";

hvis ref er af typen int
Avatar billede alexanderf Nybegynder
24. november 2009 - 14:49 #28
Da jeg også har en tabel der hedder "history", hvor alt bliver gemt inde, altså alle konto bevægelser så som, hvilken kampagne man har gennemført. Den indeholder id, brugerid, point, dato, campain id (cid), tekst, og godkendt. Kan jeg få det ind i den tabel også?

Altså så der står noget i stil med: du har 200 point - Du har tilføjet "email@email.dk"
Avatar billede repox Seniormester
24. november 2009 - 16:18 #29
tilføj


$sql = "INSERT INTO history (brugerid, point, tekst) VALUES (".$userId.", 200, 'Du har tilføjet email@email.dk')";
mysql_query($sql);



efter



  $sql = "UPDATE users SET point = point + 200 WHERE id = ".$userId." LIMIT 1";
      mysql_query($sql);

Avatar billede alexanderf Nybegynder
24. november 2009 - 16:47 #30
Problemet er jo bare, at brugeren ikke har noget brugerid, når han ikke er logget ind endnu.
Avatar billede alexanderf Nybegynder
24. november 2009 - 16:51 #31
Der er lige en ting. Hvis nu min bruger med userid 1 referere til en ny bruger, som så får userid 10 f.eks. Så når man opretter bruger 10, så får userid 1 "ref" værdien 1, og det er jo userid 10 der skal have den værdi.
Avatar billede repox Seniormester
24. november 2009 - 17:12 #32
Opgaven her er alt for dårligt og løseligt beskrevet - jeg har lavet et løsningsforslag ud fra en struktur, som du faktisk fortsætter med at bygge på.

Jeg er ikke interesseret i at bruge min fritid på at lave et færdigt system til dig, som du princippet ikke gør andet ved end at klippe-klistre og så rette feltnavne til.

Hvis der er andre der interesseret i at overtage herfra og gøre det færdigt, er de hjertens velkomne. Jeg er ikke interesseret i nogle point i forbindelse med spørgsmålet.
Avatar billede alexanderf Nybegynder
24. november 2009 - 17:16 #33
Det er bare helt i orden. Jeg takker også mange gange for hjælpen! :-) Lukket.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester