Jump to content

Courage

Moderators
  • Posts

    5,961
  • Joined

  • Last visited

  • Days Won

    290

Everything posted by Courage

  1. De la setările fiecărui grup, imediat sub numele grupului.
  2. Acela e pentru erori care se afiseaza in header, cu calea catre anumite fisiere
  3. 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.
  4. Când cineva copia un film, deodată se auzea asta: http://www36.zippyshare.com/v/69122243/file.html
  5. Vei citi şi de acum încolo vei respecta regulamentul unificat al ariei IP.Board
  6. Am vrut sa testez anumite functionalitati. In prezent lucrez la un script de forum simplut, gen cel de pe filelist
  7. 1. Creezi un nou pachet de limba si il traduci (Look & Feel > Manage Languages) 2.
  8. Mai sunt cereri in aria asta
  9. El vrea sa editeze in general, nu la un anumit membru. Next warn.
  10. http://www.ipbfocus.com/forums/topic/3857-category-icons/
  11. Ai pus-o greşit
  12. 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
  13. Cel mai mic numar prim, mai mare decat, sa zicem (y * id_membru), criptat in md5 de cateva ori + sha1, etc
  14. 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
  15. 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.
  16. El vrea să bage codul într-o căsuţă.
  17. Hmm, http://webflake.sx/topic/1725-edit-the-copyright-text/
  18. Taci ca iei ban. dNd, trimite-mi un cont cu acces admincp sa vad ce-i pe acolo.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.