Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Rejestracja
Forum PHP.pl > Forum > PHP
swiru12
Witam, nie mogę sobie poradzić z linkami referencyjnymi. Linki poleconych wyglądają tak: "www.turos.net/register.php?ref=idrefa". Formularz pobiera id polecającego:

  1. echo '<tr><td colspan="2">ID polecającego</td><td><input value="'.$_GET["ref"].'" class="textbox" type="text" name="ref"></td></tr>';


Po kliknięciu przycisku zarejestruj przenosi nas do pliku register_.php który weryfikuje wpisane dane. Wygląda on tak:
  1. <?php
  2. include "antet.php"; include "func.php";
  3. $config=config();
  4. if (!$config[3][1]) msg($lang['regClosed']);
  5. else
  6. {
  7. $_POST["email"]=clean($_POST["email"]); $_POST["name"]=clean($_POST["name"]); $_POST["pass"]=clean($_POST["pass"]); $_POST["pass_"]=clean($_POST["pass_"]); $_POST["faction"]=clean($_POST["faction"]); $_POST["muzyka"]=clean($_POST["muzyka"]); $_POST["ref"]=clean($_POST["ref"]);
  8. if (!$config[0][1]) $ip=$_SERVER["REMOTE_ADDR"]; else $ip="-";
  9. if (!$config[1][1]) $email=$_POST["email"]; else $email="-";
  10.  
  11. if (!is_user($_POST["name"], $email, $ip))
  12. if (($_POST["name"]!="")&&($_POST["pass"]!="")&&($_POST["pass"]==$_POST["pass_"]))
  13. if ($_SESSION["code"]==$_POST["code"]) reg($_POST["name"], md5($_POST["pass"]), $_POST["email"], $_POST["faction"]+1, $_POST["muzyka"], $_POST["ref"]);
  14. else msg2($lang['incorCode']);
  15. else msg2($lang['dataFields']);
  16. else msg2($lang['taken']);
  17. }
  18. ?>


Kod z id polecającego dodawałem analogicznie do reszty i wyszło mi tak jak powyżej. Jeżeli wszystko się zgadza to przenosi nas do pliku z funkcjami do funkcji rejestrującej konto. Wygląda ona tak:

  1. function reg($name, $pass, $email, $faction, $muzyka, $hehe, $ref)
  2. {
  3. global $db_id;
  4. $query="update users set refp=refp + 1 where id=".$ref;
  5. $result=mysql_query($query, $db_id);
  6. $query="insert into users(name, pass, email, level, joined, lastVisit, points, ip, grPath, faction, muzyka, facebookid, ref) values('".$name."', '".$pass."', '".$email."', 1, now(), now(), 0, '".$_SERVER["REMOTE_ADDR"]."', 'default/', '".$faction."', '".$muzyka."', '".$cookie["uid"]."', '".$ref."')";
  7. $result=mysql_query($query, $db_id);
  8. if ($result) msg2("Gratulacje! Właśnie zostałeś zarejestrowany jako ".$name.". Teraz możesz przejść do etapu logowania.<br><br>".$hehe."<br>a<br><br>".$hehe."");
  9. else msg2("Błąd.".mysql_error());
  10. }


Problem polega na tym że nie dodaje mi ani 1 punktu do pola refp u polecającego ani nie zapisuje id polecającego graczowi który się rejestruje ze specjalnego linka. Bardzo proszę o pomoc.

ciekawskiii
nie jestem pewny ale tu mi cos nie gra
  1. $query="update users set refp=refp + 1 where id=".$ref;

jak juz to tak:
  1. $ref = $_GET['ref'];
  2. $query="update users set refp=refp + 1 where id='$ref'";


no i
  1. refp=refp + 1
to chyba tez nie zadziala, musisz najpierw jakas zmienna wyciagnac zeby cos dodac

tak na szybkiego:D
swiru12
refp=refp + 1 to zadziała, a co do tej pierwszej zmiennej to czy to muszę jeszcze raz określać jeżeli dałem to w formularzu ? Przeczytaj proszę jeszcze raz i ewentualnie popraw mnie/siebie.

@UP
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.