-
Posts
5,961 -
Joined
-
Last visited
-
Days Won
290
Content Type
Profiles
Forums
Events
Everything posted by Courage
-
De la setările fiecărui grup, imediat sub numele grupului.
-
Acela e pentru erori care se afiseaza in header, cu calea catre anumite fisiere
-
Cum Schimb Numele Din Ipb Shoutbox In Chat + Alta Intrebare
Courage replied to CaTa CaTa's topic in IP.Board 3.x
-
Cred că mai am una prin PC de la una căreia i s-a sinucis soţul (nu a acceptat ideea de a-i fi amputat un picior) şi se auzeau sunete ciudate noaptea.
-
Când cineva copia un film, deodată se auzea asta: http://www36.zippyshare.com/v/69122243/file.html
-
Cum Schimb Numele Din Ipb Shoutbox In Chat + Alta Intrebare
Courage replied to CaTa CaTa's topic in IP.Board 3.x
Vei citi şi de acum încolo vei respecta regulamentul unificat al ariei IP.Board -
Ce e aşa scary?
-
Proiect: Site Probleme C / C++ Rezolvate
Courage replied to Courage's topic in Web design & website review
Am vrut sa testez anumite functionalitati. In prezent lucrez la un script de forum simplut, gen cel de pe filelist -
Cum Traduc Informatiile De La Inregistrare In Ipb?
Courage replied to Mar1us's topic in IP.Board 3.x
Cu placere -
Cum Traduc Informatiile De La Inregistrare In Ipb?
Courage replied to Mar1us's topic in IP.Board 3.x
1. Creezi un nou pachet de limba si il traduci (Look & Feel > Manage Languages) 2. -
Mai sunt cereri in aria asta
-
El vrea sa editeze in general, nu la un anumit membru. Next warn.
-
Ecran Alb In Acp Ipb La Creare Categorie Sau Forum
Courage replied to Parintele Ion's topic in IP.Board 3.x
De unde ai gazduire ? -
http://www.ipbfocus.com/forums/topic/3857-category-icons/
-
Proiect: Site Probleme C / C++ Rezolvate
Courage replied to Courage's topic in Web design & website review
PHP / MySQL -
Ai pus-o greşit
-
Numar generat aleator... desi ma gandesc sa pun doar numar generat aleator, fara sa inmultesc cu ID / bla bla bla. Ma gandesc cum ai spus tu: tabela noua (sa zicem cheie_recuperare_parola), valoarea '' sau NULL. Cand dau clcik pe `Am uitat parola` ma duce pe alta pagina unde compeltez Numele SAU adresa email. Se trimite email cu link-ul secret, si odata accesat isi va putea seta o noua parola. Dupa ce isi seteaza noua parola, casuta cheie_recuperare_parola o resetez la ''. Vad azi ce-mi iese
-
Cel mai mic numar prim, mai mare decat, sa zicem (y * id_membru), criptat in md5 de cateva ori + sha1, etc
-
Yup, link-ul cred că va fi gen index.php?action=newpassword&secretid=cod_user unde cod_user e un număr criptat, generat după ID-ul membrului O să mai bag comentarii pe ici pe colo
-
Mai întâi introducem datele bazei de date în fişierul conf_global.php: <?php //-------------------------------------------------- // Editaţi cele 4 variabile de mai jos //-------------------------------------------------- $sql_host = 'localhost'; $sql_user = 'utilizator'; $sql_parola = 'parola'; $sql_baza_de_date = 'baza_de_date'; /** * Functia de conectare la baza de date * * @param $host * @param $user * @param $pass * @param $db * @return connection */ function conectare($host, $user, $pass, $db) { $mysqli = new mysqli($host, $user, $pass, $db); if($mysqli->connect_error) { die('Eroare la conectare (' . mysqli_connect_errno() . ') '. mysqli_connect_error()); } return $mysqli; } $conexiune = conectare($sql_host, $sql_user, $sql_parola, $sql_baza_de_date); ?> Apoi creăm tabelul `membri` cu următoarea comandă SQL: CREATE TABLE IF NOT EXISTS `membri` ( `id` int(11) NOT NULL, `nume` varchar(255) NOT NULL, `parola` varchar(1000) NOT NULL, `email` varchar(50) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; Vom avea 4 câmpuri: id - Auto Increment nume parola email Dacă mai doriţi, puteţi adăuga după În fişierul index.php, adăugăm sus de tot <?php require_once('functii.php'); ?> În locul unde vrem să adăugăm link-urile de Logare / Înregistrare / Delogare, adăugăm <?php echo member_navigation(); ?> Iar în locul unde vrem să adăugăm căsuţele de logare / înregistrare, adăugăm: <?php echo content(); ?> Vor apărea nişte erori, deoarece facem apel la nişte funcţii nedeclarate (nu îmi place să aglomerez index-ul, aşa că prefer să fac totul în fişiere separate) Acum creăm fişierul functii.php. Sus de tot adăugăm <?php session_start(); // începerea sesiunii require_once('conf_global.php'); // fişierul care include conectarea la baza de date Pentru a cripta parola în baza de date, ne vom folosi de funcţia următoare: (nu folosesc md5 simplu deoarece am văzut site-uri cu sute de mii / milioane parole salvate, cu echivalentul lor în md5) function criptare ($text) { return hash('sha512', hash('sha256', sha1(sha1(sha1(md5(md5($text))))))); } Pentru a afişa link-ul de logare / înregistrare / delogare, includem următoarea funcţie: function member_navigation() { if (!isset($_SESSION['uid'])) { echo "<a href='?action=login'>Autentificare</a> | <a href='?action=register'>Înregistrare</a>"; } else { echo "Bun venit, ".$_SESSION['username'].". <a href='?action=logout'>Delogare</a>"; } } Pentru conţinutul site-ului, adăugăm funcţia următoare: function content() { if (!isset($_GET['action'])) // link-ul pe care ne aflăm este index.php { echo 'Conţinutul site-ului'; } else { $action = $_GET['action']; if ($action == 'login') // link-ul este index.php?action=login { echo login(); } elseif ($action == 'register') // link-ul este index.php?action=register { echo register(); } else if ($action == 'logout') // link-ul este index.php?action=logout { logout(); } } } În continuare vom include cele 3 funcţii de mai sus (login, register şi logout). Funcţia login: function login() { global $conexiune; $mesaj = ''; /* Formularul de logare a fost trimis */ if (isset($_POST['user'])) { $user = $_POST['user']; $pass = $_POST['pass']; //----------------------------------------- // Verificam daca a rămas cel puţin o // casuţă necompletată //----------------------------------------- if ($user == '' OR $pass == '') { $mesaj = '<br /><b style="color: darkred">Cel puţin un câmp a rămas necompletat!</b><br /><br />'; } else { $sql = "SELECT * FROM `membri` WHERE nume='".htmlentities($user)."' AND parola='".criptare($pass)."' LIMIT 1"; $res = mysqli_query($conexiune, $sql) or die(mysql_Error()); if (mysqli_num_rows($res) == 1) { $rand = mysqli_fetch_array($res); $_SESSION['uid'] = $rand['id']; $_SESSION['username'] = $rand['nume']; //----------------------------------------- // Redirectionare pe pagina principală, // odată ce logarea s-a efectuat cu succes //----------------------------------------- echo '<meta http-equiv="refresh" content="0; url=index.php" />'; exit(); } //----------------------------------------- // Nu am gasit niciun membru in baza de // date cu datele introduse //----------------------------------------- else { $mesaj = '<br /><b style="color: darkred">Date incorecte!</b><br /><br />'; } } } //----------------------------------------- // Formularul de logare //----------------------------------------- $HTML = <<<PHP <center><span style="font-size: 40px;">Autentificare</span></center> $mesaj <form action="" method="post"> <b>Utilizator</b><br /> <input type="text" name="user" value="" /><br /><br /> <b>Parola</b><br /> <input type="password" name="pass" value="" ><br> <input type="submit" name="Login" value="Login" > </form> PHP; return $HTML; } Funcţia de înregistrare: function register() { global $conexiune; $mesaj = ""; if (isset($_POST['user'])) { $user = $_POST['user']; $pass1 = $_POST['pass1']; $pass2 = $_POST['pass2']; $email = $_POST['email']; //---------------------------------------------- // Cel puţin o căsuţă a rămas necompletată //---------------------------------------------- if ($user == '' OR $pass1 == '' OR $pass2 == '' OR $email == '') { $mesaj .= '<b style="color: darkred">Cel puţin o căsuţă a rămas necompletată!<br /><br /></b>'; } //---------------------------------------------- // Parolele introduse nu coincid //---------------------------------------------- if ($pass1 != $pass2) { $mesaj .= '<b style="color: darkred">Parolele nu se potrivesc<br /><br /></b>'; } //---------------------------------------------- // Adresa email este invalidă //---------------------------------------------- if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $mesaj .= '<b style="color: darkred">Adresa email este invalidă<br /><br /></b>'; } if ($mesaj == "") // Nu a apărut niciun mesaj de eroare { //----------------------------------------- // Verificam daca nu exista user cu acelaşi // username / aceeaşi adresă email //----------------------------------------- $cerereSQL = 'SELECT * FROM membri'; $rezultat = mysqli_query($conexiune, $cerereSQL) or die(mysql_ERROR()); while($rand = mysqli_fetch_array($rezultat)) { //----------------------------------------- // Afişăm mesaj de eroare în caz că // username-ul sau adresa email introdusă // este / sunt deja folosite de către // altcineva //----------------------------------------- if ($rand['nume'] == $user OR $rand['email'] == $email) { $mesaj .='<b style="color: darkred;">Username / email folosite</b><br /><br />'; break; } } if ($mesaj == "") { //----------------------------------------- // Totul este OK, deci putem insera datele // introduse în baza de date //----------------------------------------- $sql = "INSERT INTO `membri`(`nume`, `parola`, `email`) VALUES ('".htmlentities($user)."','".criptare($pass1)."','".$email."')"; mysqli_query($conexiune, $sql) or die(mysql_Error()); echo "Înregistrarea a avut loc cu succes. Veţi fi redirecţionat pe pagina principală"; echo '<meta http-equiv="refresh" content="1; url=index.php" />'; exit(); } } } $HTML = <<<INFO <center><span style="font-size: 40px;">Înregistrare</span></center> $mesaj <form action="" method="post"> <b>Utilizator</b><br /> <input type="text" name="user" value="" /><br /> <b>Parola</b><br /> <input type="password" name="pass1" value="" ><br> <b>Reintrodu parola</b><br /> <input type="password" name="pass2" value="" ><br> <b>Adresa email</b><br /> <input type="text" name="email" value="" /><br /> <input type="submit" name="Login" value="Creează cont" > </form> INFO; return $HTML; } Funcţia delogare: function logout() { session_destroy(); echo '<meta http-equiv="refresh" content="0; url=index.php" />'; exit(); } La finalul fişierului adăugăm ?> Acesta este primul meu tutorial PHP. Dacă apar nereguli / aveţi vreo obiecţie (sunt începător), postaţi aici P.S. Da, dacă ai pierdut parola, eşti ca mort. Mă gândesc zilele astea la o funcţie de recuperare a parolei.
-
El vrea să bage codul într-o căsuţă.
-
Hmm, http://webflake.sx/topic/1725-edit-the-copyright-text/
-
-
Taci ca iei ban. dNd, trimite-mi un cont cu acces admincp sa vad ce-i pe acolo.
