Facand curat prin hdd-ul calculatorului, am gasit un script care mi-a atras atentia.

Este parte din modulul de inregistrare web folosit in anul 2008 la inregistrarea de pe site a serverului de samp eGaming.

Poate fi gasit atasat la acest topic. M-am decis sa fac public acest cod pentru ca oricum este o varianta foarte veche, ne mai pastrand nimic din vechiul cod in actuala configuratie.

Precum puteti observa, am comentat sectiunea cu accesul la baza de date deci ar trebui sa functioneze fara mysql, singurul lucru de care aveti nevoie este un server de FTP la care sa se conecteze remote pentru a trimite fisieru cu acel cont nou inregistrat.


Atentie ! Acest fisier este pentru utilizatorii avansati, care detin cunostiinte cel putin medii de PHP si de configurare a unui server FTP.

Codul cu pricina:

<?php

// part of eG Web-Register-script (c) 2008 by xanto

function GenerareUser($Nick,$Nume,$Prenume,$Parola,$Sex,$Varsta,$Email,$Secret,$Origine,$Tutorial){
global $mijloc;
$ftp_server = "hostsamp";
$ftp_port = 21;
$ftp_user_name = "xanto123";
$ftp_user_pass = "123parolaftp123";
$ftp_remote_dir = "sampsrv/scriptfiles/"; //calea completa catre directorul scriptfiles
$local_tmp_dir = "dbuseri/"; //trebuie setat +w
$filename = $Nick . ".ini"; //fisierul destinatie

$file = fopen($local_tmp_dir . $filename, "w");
if (!$file) {
$mijloc=SablonMijloc("Eroare: Nu am putut scrie in fisier <br /> Contactati un administrator");
return;
}
$conn_id = ftp_connect($ftp_server, $ftp_port);
$login_result = @ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
@ftp_pasv ($conn_id, true);
$chdir_result = @ftp_chdir($conn_id, $ftp_remote_dir);
if(!$login_result || !$chdir_result) {
$mijloc=SablonMijloc("Eroare: Nu m-am putut conecta la server <br /> Incercati mai tarziu");
fclose($file);
return;
}
if ( @ftp_get($conn_id, $local_tmp_dir . "tempfis.fis", $filename, FTP_ASCII) ) {
unlink($local_tmp_dir . "tempfis.fis");
$mijloc=SablonMijloc("Eroare: Acest utilizator a fost deja inregistrat.<br /> Va rugam alegati alt nume");
//echo $mijloc;
fclose($file);
return;
}
$Pgen1 = preg_split('//', $Parola, -1, PREG_SPLIT_NO_EMPTY);
// generare hash GF
$hashpass = "";
for($i=0; $i < sizeof($Pgen1); $i++) {
$tmpS = ord($Pgen1[$i]);
$tmpS += (3^$i) * ($i % 15);
//echo $tmpS . "<br>";
if ($tmpS > 0xff) {
$tmpS -= 256;
}
$hashpass .= chr($tmpS);
}

$message =
"Key=".$hashpass."\n".
"Registered=1\n".
"Sex=$Sex\n".
"Age=$Varsta\n".
"Origin=$Origine\n".
"Tutorial=$Tutorial\n";
if( !fwrite($file, $message) ) {
$mijloc=SablonMijloc("Eroare: Nu am putut scrie in fisier <br /> Contactati un administrator");
fclose($file);
ftp_close($conn_id);
return;
}
fclose($file);
if (!ftp_put($conn_id, $filename, $local_tmp_dir . $filename, FTP_ASCII)) {
$mijloc=SablonMijloc("Eroare: nu am putut uploada fisierul <br /> Contactati un administrator");
ftp_close($conn_id);
return;
}
else {
/* --------------- comentata sectiunea de baza de date deoarece majoritatea dintre voi nu veti avea nevoie de ea
//include("mysql-config.inc.php");
//include("mysql.inc.php");

$DBm=new xDB();
$AdresaIP= $_SERVER["REMOTE_ADDR"];
$DataCurenta = data();
// securizam datele ce vor fi introduse in db
$InserareDB = sprintf("INSERT INTO `log_inregistrati` (`nick` ,`nume` ,`prenume` ,`parola` ,`ip` ,`email` ,`varsta` ,`secret` ,`data`) VALUES ('%s', '%s', '%s', 'md5(%s)', '%s', '%s', %d, '%s', '%s')",
$DBm->validare($Nick),
$DBm->validare($Nume),
$DBm->validare($Prenume),
$DBm->validare($Parola),
$AdresaIP,
$DBm->validare($Email),
$DBm->validare($Varsta),
$DBm->validare($Secret),
$DataCurenta);
$op2=$DBm->query($InserareDB);
//debug
//echo $InserareDB;


if($DBm->afectate()){
$mijloc = SablonMijloc("Utilizatorul a fost inregistrat cu succes!");
}else {
$mijloc = SablonMijloc("Eroare la introducerea in DB <br /> Contactati un administrator");
}
*/
}
ftp_close($conn_id);
//exit(1);

}
?>


Desigur ca acest script poate fi modificat sa nu mai depinda de partea de upload a fisierului prin FTP, asta in cazul in care serverul samp si site-ul se afla pe acelasi calculator.

Puteti sa-l folositi in proiectele voastre, treaba voastra ce faceti cu el atata timp cat pastrati creditele si nu va dati drept autorul lui. (Nu e nevoie sa gasesc acest script pe "tz" site-uri cu "n" autori, n-am nevoie de mirror-uri).

Sursa http://forum.egaming.ro/topic/74988-fs-webmodul-de-inregistrare-web-samp/