Advertisement
Guest User

dsdsd

a guest
Jun 26th, 2017
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.87 KB | None | 0 0
  1. <?php
  2. session_start();
  3. // cu functia isset, verifici daca o variabila exista sau daca e nula sau nu, adica in caz de variabila $exemplu nu exista si tu o folosesti undeva, v-a da eroare, asa pui isset si verifici daca exista, daca exista o folosesti, daca nu, aia e.
  4. // ai doua obtiuni, poti lucra asa:
  5.  
  6. /*
  7. <?php
  8. ?> cod html <?php
  9. //cod php
  10. ?> cod html <?php
  11. // cod php
  12. ?>
  13.  
  14. // ex:
  15. <b>Dai ban lui:</b>
  16. <?php
  17. echo $user_for_ban;
  18. ?> // INCHIZI PHP_SELF
  19. <b> permanent</b><br><b>Playerul are </b>
  20. <?php
  21. echo $zile_pe_sv;
  22. ?> <h2> zile pe server, cred ca merita iertat </h1>
  23. */
  24.  
  25. /*
  26. sau poti lucra direct cu echo ori printf
  27.  
  28. // doar cod php, si in echo sau print/printf pui si html, adica le combini, gen:
  29.  
  30. // ex:
  31.  
  32. <?php
  33. echo '<b>Dai ban lui: </b>'.$user_for_ban.'<b> permanent </b><br><b>Playerul are </b> '.$zile_pe_sv.'<h2> zile pe server, cred ca merita iertat </h1>';
  34. //varianta printf:
  35. printf('<b>Dai ban lui: </b>%s<b> permanent </b><br><b>Playerul are </b> %i<h2> zile pe server, cred ca merita iertat </h1>',$user_for_ban,$zile_pe_sv);
  36. // e la alegerea ta, tu lucrezi cum vrea pula ta
  37.  
  38. ?>
  39.  
  40. */
  41. try {
  42. $bdd = new PDO('mysql:dbname=nume_db;host=127.0.0.1', 'root', '');
  43. } catch (PDOException $e) {
  44. echo 'Eroare: Problema conexiune baza de date!';
  45. exit;
  46. }
  47.  
  48. function debug_array($debug) {
  49. if(isset($debug)) {
  50. if(is_array($debug)) {
  51. echo '<pre>'.print_r($debug).'</pre>';
  52. } else '<br>'.$debug.' nu este array !'.'<br>';
  53. } else '<br>Variabila folosita la debug_array nu exista<br>';
  54. }
  55. // foloseste in query LIMIT 1 la sfarsit, e pentru optimizare, dar nu la orice query, doar undeva unde ai nevoie doar de un row, gen cand pui WHERE Nume = x, doar ceva ce iti va returna un singur rand, daca nu esti sigur lasa asa.
  56. // cu metoda de jos, numai trebuie sa dai clean sqli ;)
  57. $nume = 'salam'; $pass = 'salam2';
  58. $query = $bdd->prepare("SELECT * FROM conturi WHERE User = :user AND Parola = :passu LIMIT 1");
  59. $query->bindParam(':user', $nume); // poti folosi direct $_POST['nume']
  60. $query->bindParam(':passu', $pass); // si $_POST['pass']; puse de la form login
  61. // daaca folosesti parole criptate, faci $pass = strtoupper(hash('whirlpool',$_POST['parolawe']));
  62. // campul in db la parola il faci de 128 caractere.
  63. $query->execute();
  64.  
  65. $rows = $query->rowCount(); // asa numeri randurile
  66. if($rows != 0) { // s-a gasit in db cineva cu acea parola si acel nume, deci il poti loga
  67. $Get = $query->fetch(); // optii randul din baza de date, mai jos o sa vezi cum obtii mai multe randuri
  68. $_SESSION['user'] = $Get['username']; // username, este campul din db.
  69. $_SESSION['admin'] = $Get['admin']; // admin, campul din db
  70. // nume si level admin, le incarci din db, nu din inputuri, e mai safe asa
  71. // deci practic folosesti in array, numele la campuri din db ;)
  72. } //else echo 'parola gresita bai boule, reincearca';
  73.  
  74.  
  75. // Arata toate liniile:
  76. $query = $bdd->prepare("SELECT * FROM faction_log WHERE ascuns = 0");
  77. // arata doar primile 15 linii, in ordinde ascendenta, de la mic la mare, de la ID 1 la ID 15, pui DESC va fi de la mare la mic, de la ID 15 la ID 1:
  78. $query = $bdd->prepare("SELECT * FROM faction_log WHERE WHERE ascuns = 0 ORDER BY ID LIMIT 15");
  79.  
  80. $rows = $query->rowCount(); // asa numeri randurile
  81. while($Get = $query->fetch()) {
  82. // bucla se executa pe fiecare rand, sunt 10 anunturi, se executa de 10 ori, sunt 212 se executa de 212, sunt 1k se executa de 1k ori, adica pe cate randuri ai in db.
  83. echo 'Faction log: '.$Get['faction_text'].' | Log_date: '.$Get['log_date'].'<br>';
  84. }
  85.  
  86. // functie pentru anti xss, foloseste-o pe orice input, e foarte importanta
  87.  
  88. function CurataString($s) {
  89. return htmlspecialchars($s, ENT_QUOTES, 'UTF-8');
  90. }
  91.  
  92. // ex cu protectie:
  93. echo CurataString("Cu protectie: <script>alert('nu mg xss asa baiet')</script>");
  94. echo CurataString("Cu protectie: '><H1>Hmm, nu mg</h1>");
  95.  
  96. // ex fara protectie:
  97.  
  98. echo CurataString("Fara protectie: <script>alert('nu dai clean, mg xss')</script>");
  99. echo CurataString("Fara protectie: '><H1>Nu dai clean mg dat xss usor/h1>");
  100.  
  101. // cum sa strimiti un player pe o alta pagina ?
  102.  
  103. // sunt 2 metoda, una cu meta, una cu header, cea cu header e mai sigura ce e drept, dar cea cu meta e mai avantajoasa.
  104.  
  105. // cu header:
  106. header('Location: http://www.example.com/');
  107. // sau daca vr sa il trimiti pe o pagina de la tn de pe panel:
  108. // sa zicem ca vrea sa dea ban cuiva chiar daca nu e admin, pui conditie IsUserAdminLogged -> functia o gasesti mai jos, si daca nu e admin ii arati eroare ca nu are acces, si il trimiti pe index.
  109.  
  110. $host = $_SERVER['HTTP_HOST'];
  111. $uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
  112. $extra = 'index.php';
  113. header("Location: http://$host$uri/$extra");
  114. exit;
  115.  
  116. // poti da si 404: header("HTTP/1.0 404 Not Found"); // util daca se apasa pe un profil cu un user inexistent
  117. // poti seta o pagina "custom" pentru eroarea 404, sau 500 sau care vrei uite asa in .htacces:
  118.  
  119. // #ErrorDocument 404 http://%{HTTP_HOST}/panel/errors/404.html // (NU E COD PHP ) si cand se va da eroarea 404 se va arata asta, nu cea default de la apache
  120.  
  121. // metoda 2 de redirectionare prin meta:
  122.  
  123. echo "<meta http-equiv='refresh' content='2;index.php'/>";
  124.  
  125. // ii dai un mesaj, iar apoi in 2 secunde va fi redirecitonat catre index
  126.  
  127. // poti face si o functie simpla dar utila, gen:
  128. function($sec,$pag) {
  129. echo "<meta http-equiv='refresh' content='".$sec.";".$pag."'/>";
  130. exit();
  131. }
  132.  
  133. // functia sa verifici daca playerul e admin, il poti folosi ca sa arati admin tools, si pentru actiunele de a da ban, warn, etc
  134.  
  135. // mare atentie, depinde cum pui tu $_SESSION['nume_array_sesiune'] la partea de logare, asa le folosesti si aici
  136. function IsUserAdminLogged() {
  137. if(isset($_SESSION['user']) && strlen($_SESSION['user']) > 0 && isset($_SESSION['admin']) && $_SESSION['admin'] > 0) return $_SESSION['admin']; else return 0;
  138. }
  139. // ex folosire fct admin:
  140.  
  141. // profile nick Scriptery:
  142. if(IsUserAdminLogged() != 0) {
  143. ?> <form action="adminare" method="POST"> <!-- La POST, campurile nu sunt aratate, le poti folosi dar nu sunt aratate, la GET vor fi aratate in browser bar ex: panel.com/adminare.php?ban_lui=Scriptery&zile=999&motiv=salut_we -->
  144. <?php
  145. echo '<button class="btn btn-primary">Dai ban lui '.$Get['username'].'</button>';
  146. }
  147. echo '<div id="nick">'.$Get['username'].'</div>';
  148.  
  149. // tu trebuie doar sa inveti sa combini html cu php :)
  150.  
  151. // inca ceva, functia debug_array e destul de importanta, ia uite:
  152.  
  153. $arrayul[] = null;
  154.  
  155. $arrayul['sal'] = 'primul, element 0';
  156. $arrayul['hey_kf'] = 'al doilea, element 1';
  157. $arrayul['UnuCuUnu'] = '= 3 ;)';
  158. $arrayul['exemplu'] = 'array exemplu continte exemplu';
  159.  
  160. // si ca sa printezi toate astea, va trebui:
  161.  
  162. debug_array($arrayul); // si va arata tot ce contine array ul, si toate val pt el.. ideal pt debuger
  163. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement