Skocz do zawartości
Zaloguj się, aby obserwować  
Na 5tyk

Skrypt polecania

Polecane posty

Witam. Chciałbym dodać do tego skryptu: www.forumweb.pl/viewtopic.php?t=65408&mobile=mini . Jakiś skrypt polecenia, dzięki któremu za polecenie (po rejestracji) dostajemy 3 pkt.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość finlandia

$ref = $_GET['ref'];

if(isset($_GET['ref'])){

mysql_query("update users set pkt = pkt+3 where login = '$ref'");

}

To tak pisane z palca dla zademonstrowania zasady działania. Pobaw się sam lub zleć to komuś jeśli chcesz, mieć coś lepszego niż 30 sekund roboty :)

Edytowano przez finlandia (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość Kamikadze

Bierzesz kartkę, ołówek i rysujesz schemat jak ma skrypt działać w jedną i drugą stronę

 

Później otwierasz jakiś plik php i dodajesz linijki odpowiednio według schematu. Jak nie wiesz jak to google i szukasz w php/mysql jak to zrobić.

 

I cieszysz się własnym skryptem ;)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

<?php
/**
* Skrypt i formularz rejestracji
* @author Sobak
* @package User System
*/
require 'header.php'; // Dołącz początkowy kod HTML
require 'config.php'; // Dołącz plik konfiguracyjny i połączenie z bazą
require_once 'user.class.php';
/**
* Sprawdź czy formularz został wysłany
*/
if ($_POST['send'] == 1) {
   // Zabezpiecz dane z formularza przed kodem HTML i ewentualnymi atakami SQL Injection
   $login = mysql_real_escape_string(htmlspecialchars($_POST['login']));
   $pass = mysql_real_escape_string(htmlspecialchars($_POST['pass']));
   $pass_v = mysql_real_escape_string(htmlspecialchars($_POST['pass_v']));
   $email = mysql_real_escape_string(htmlspecialchars($_POST['email']));
   $email_v = mysql_real_escape_string(htmlspecialchars($_POST['email_v']));

   /**
 * Sprawdź czy podany przez użytkownika email lub login już istnieje
 */
   $existsLogin = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM users WHERE login='$login' LIMIT 1"));
   $existsEmail = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM users WHERE email='$email' LIMIT 1"));
   $errors = ''; // Zmienna przechowująca listę błędów które wystąpiły

   // Sprawdź, czy nie wystąpiły błędy
   if (!$login || !$email || !$pass || !$pass_v || !$email_v ) $errors .= '- Musisz wypełnić wszystkie pola<br />';
   if ($existsLogin[0] >= 1) $errors .= '- Ten login jest zajęty<br />';
   if ($existsEmail[0] >= 1) $errors .= '- Ten e-mail jest już używany<br />';
   if ($email != $email_v) $errors .= '- E-maile się nie zgadzają<br />';
   if ($pass != $pass_v)  $errors .= '- Hasła się nie zgadzają<br />';
   /**
 * Jeśli wystąpiły jakieś błędy, to je pokaż
 */
   if ($errors != '') {
    echo '<p class="error">Rejestracja nie powiodła się, popraw następujące błędy:<br />'.$errors.'</p>';
   }
   /**
 * Jeśli nie ma żadnych błędów - kontynuuj rejestrację
 */
   else {
    // Posól i zasahuj hasło
    $pass = user::passSalter($pass);
    // Zapisz dane do bazy

 mysql_query("INSERT INTO users (login, email, pass) VALUES('$login','$email','$pass');") or die ('<p class="error">Wystąpił błąd w zapytaniu i nie udało się zarejestrować użytkownika.</p>');
    echo '<p class="success">'.$login.', zostałeś zarejestrowany.
    <br /><a href="login.php">Logowanie</a></p>';
   }
$ref = mysql_real_escape_string(htmlspecialchars($_POST['referal']));
if(isset($ref)) {
mysql_query("UPDATE `users` SET `punkty`=`punkty`+3 WHERE login = '$ref'");
}
}
?>
<form method="post" action="">
<input type="hidden" name="ref" value="<?php echo $_GET['referal']; ?>"/>
<label for="login">Login:</label>
<input maxlength="32" type="text" name="login" id="login" />
<label for="pass">Hasło:</label>
<input maxlength="32" type="password" name="pass" id="pass" />
<label for="pass_again">Hasło (ponownie):</label>
<input maxlength="32" type="password" name="pass_v" id="pass_again" />
<label for="email">Email:</label>
<input type="text" name="email" maxlength="50" id="email" />
<label for="email_again">Email (ponownie):</label>
<input type="text" maxlength="255" name="email_v" id="email_again" /><br />
<input type="hidden" name="send" value="1" />
<input type="submit" value="Zarejestruj" />
</form>
<?php
require 'footer.php'; // Dołącz końcowy kod HTML
?>

 

 

Nie chce mi się sprawdzać czy dobrze. Jeżeli sam tego nie zrobisz, zapłać a ci to zrobimy. :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość finlandia

<?php
/**
* Skrypt i formularz rejestracji
* @author Sobak
* @package User System
*/
require 'header.php'; // Dołącz początkowy kod HTML
require 'config.php'; // Dołącz plik konfiguracyjny i połączenie z bazą
require_once 'user.class.php';
/**
* Sprawdź czy formularz został wysłany
*/
if ($_POST['send'] == 1) {
// Zabezpiecz dane z formularza przed kodem HTML i ewentualnymi atakami SQL Injection
$login = mysql_real_escape_string(htmlspecialchars($_POST['login']));
$pass = mysql_real_escape_string(htmlspecialchars($_POST['pass']));
$pass_v = mysql_real_escape_string(htmlspecialchars($_POST['pass_v']));
$email = mysql_real_escape_string(htmlspecialchars($_POST['email']));
$email_v = mysql_real_escape_string(htmlspecialchars($_POST['email_v']));

/**
 * Sprawdź czy podany przez użytkownika email lub login już istnieje
 */
$existsLogin = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM users WHERE login='$login' LIMIT 1"));
$existsEmail = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM users WHERE email='$email' LIMIT 1"));
$errors = ''; // Zmienna przechowująca listę błędów które wystąpiły

// Sprawdź, czy nie wystąpiły błędy
if (!$login || !$email || !$pass || !$pass_v || !$email_v ) $errors .= '- Musisz wypełnić wszystkie pola<br />';
if ($existsLogin[0] >= 1) $errors .= '- Ten login jest zajęty<br />';
if ($existsEmail[0] >= 1) $errors .= '- Ten e-mail jest już używany<br />';
if ($email != $email_v) $errors .= '- E-maile się nie zgadzają<br />';
if ($pass != $pass_v)  $errors .= '- Hasła się nie zgadzają<br />';
/**
 * Jeśli wystąpiły jakieś błędy, to je pokaż
 */
if ($errors != '') {
	echo '<p class="error">Rejestracja nie powiodła się, popraw następujące błędy:<br />'.$errors.'</p>';
}
/**
 * Jeśli nie ma żadnych błędów - kontynuuj rejestrację
 */
else {
	// Posól i zasahuj hasło
	$pass = user::passSalter($pass);
	// Zapisz dane do bazy

 mysql_query("INSERT INTO users (login, email, pass) VALUES('$login','$email','$pass');") or die ('<p class="error">Wystąpił błąd w zapytaniu i nie udało się zarejestrować użytkownika.</p>');
	echo '<p class="success">'.$login.', zostałeś zarejestrowany.
	<br /><a href="login.php">Logowanie</a></p>';
}
$ref = mysql_real_escape_string(htmlspecialchars($_POST['referal']));
if(isset($ref)) {
mysql_query("UPDATE `users` SET `punkty`=`punkty`+3 WHERE login = '$ref'");
}
}
?>
<form method="post" action="">
<input type="hidden" name="ref" value="<?php echo $_GET['referal']; ?>"/>
<label for="login">Login:</label>
<input maxlength="32" type="text" name="login" id="login" />
<label for="pass">Hasło:</label>
<input maxlength="32" type="password" name="pass" id="pass" />
<label for="pass_again">Hasło (ponownie):</label>
<input maxlength="32" type="password" name="pass_v" id="pass_again" />
<label for="email">Email:</label>
<input type="text" name="email" maxlength="50" id="email" />
<label for="email_again">Email (ponownie):</label>
<input type="text" maxlength="255" name="email_v" id="email_again" /><br />
<input type="hidden" name="send" value="1" />
<input type="submit" value="Zarejestruj" />
</form>
<?php
require 'footer.php'; // Dołącz końcowy kod HTML
?>

 

 

Nie chce mi się sprawdzać czy dobrze. Jeżeli sam tego nie zrobisz, zapłać a ci to zrobimy. :)

 

Wkleiłeś pierwszy lepszy kod i nawet nie chce Ci się sprawdzić czy działa? Zaraz będzie kolejne kilka tematów, że coś jest źle lub nie działa jak powinno.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość Kamikadze

Chociaż mogłeś mu usunąć niektóre linijki, bo zaraz błędami mu będzie siało...

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Naprawdę nie mam ochoty tego instalować w całości. Dopisałem śmieszny kod który powinien działać + niech sobie dorzuci pole do bazy (można było by to zrobić na ciasteczka ale nie ma nic za darmo).

Wkleiłeś pierwszy lepszy kod i nawet nie chce Ci się sprawdzić czy działa? Zaraz będzie kolejne kilka tematów, że coś jest źle lub nie działa jak powinno.

Finlandia niech sobie zakłada tyle tematów ile chce, a jak nie masz co robić to mu popraw. Ja mam zajęcie, chciałem mu pomóc, miałem dobre chęci ale jak sobie nie poradzi no cóż. On chyba nawet nie zna podstaw, a ja niestety gotowca pod nos nie mam zamiaru mu podsuwać (wtedy było by kilkadziesiąt tematów jak by dostawał gotowe skrypty). Tyle co od nas dostał to już powinien sobie poradzić.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Przepraszam za odkop, ale może się komuś przyda.

No to tak.

link będzie wyglądał np. register.php?reff=nick

 

Tabela users:

"CREATE TABLE `users` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`login` varchar(50) NOT NULL,

`password` varchar(32) NOT NULL,

`email` varchar(50) NOT NULL,

`punkty` int(11) NOT NULL,

`reff` varchar(50) NOT NULL,

`data` datetime NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=21 ;

 

 

REJESTRACJA

 

//Pobieramy nick z linku

$reff = mysql_real_escape_string(htmlspecialchars($_GET['reff']));

$formularz = '

<form aciton="?go=register.php" method="POST">

Login <input type="text" name="login">

Hasło <input type="text" name="password">

Email <input type="text" name="email">

<input type="submit" name="submit" value="Rejestetruj">

</form>

';

if(isset($_POST['submit'])) {

//dodajemy usera wraz z jego reffem:

$zapytanie = mysql_query("INSERT INTO users SET login='$login', $password='$password', email='$email', reff='$reff'")

//Teraz dodajemy polecającemu 3 punkty

$zapytanie = mysql_query("UPDATE users SET punkty = + 3 WHERE login='$reff'");

} else {

echo $formularz;

}

 

 

Taki prosty skrypcik na szybko, więc nie ma takich rzeczy jak: sprawdza czy są dane puste, nie ma powtórzeń haseł itp.

Edytowano przez GoBulletin (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość Kamikadze

Fajnie, ale brakuje zabezpieczenia bo jak wbije ci 100000 razy dziennie jedna osoba z jednego linku (powiedzmy ktoś będzie miły i zrobi bota) to baza danych najzwyczajniej ci się zesra...

 

Warto dać byle if-a aby dodawał do mysql tylko jeden raz dla jednego IP

 

 

Podałbyś lepsze rozwiązanie, bo ludzie zaraz będą płakać na forum ;)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się

Zaloguj się, aby obserwować  

×