Jump to content
php.lv forumi

thesnarkie

Reģistrētie lietotāji
  • Posts

    179
  • Joined

  • Last visited

Everything posted by thesnarkie

  1. Nezinu, man likās, ka vajag addslashes, lai būtu drošāk. : D (Izvadot izmantoju stripslases) Ok, ieliku real_escape_string pareizā vietā un nomainīju to rows skaitīšanu. Vispār, ja man ir vairāki tādi get: if($_GET['action'] == "comment") { //blala } if($_GET['action'] == "read") { //blalasdgsdfg } if($_GET['action'] == "delete") { //dlddd } Labāk tad izmantot switch-us?
  2. Liels paldies! ;) *piefiksē, kā tas darāms*
  3. if($_GET['action'] == "comment") { $sid = $_SESSION['star']; $news_id = mysql_real_escape_string($_POST['news_id']); $comment_val = htmlspecialchars($_POST['comment'], ENT_NOQUOTES); $comment = mysql_real_escape_string($comment_val); list($get_account_id) = mysql_fetch_row(mysql_query("SELECT `id` FROM `account` WHERE `sid`='$sid'", $db)); list($get_post_time) = mysql_fetch_row(mysql_query("SELECT `datetime` FROM `comments` WHERE `account_id`='$get_account_id' ORDER BY `id` DESC LIMIT 0,1", $db)); $sql_3 = mysql_query("SELECT count(*) as counter FROM `comments` WHERE `account_id`='$get_account_id'", $db); $row = mysql_fetch_assoc($sql_3); $reserved_time = $get_post_time + 30; $time_posted = time(); if($comment != "" || $news_id != "") { if($row['counter'] != 0) { //pārbauda vai šis lietotājs jau iepriekš komentējis. if(time() > $reserved_time) { //ja jā, tad pārbauda vai ir pagājušas 30 sekundes pēc pēdējā posta. $sql_insert_1 = mysql_query("INSERT INTO `comments` (news_id, account_id, datetime, comment) VALUES ('$news_id', '$get_account_id', '$time_posted', '$comment')", $db); echo "OK"; exit(); } else { echo "You can't post comments so often. Please wait 30 seconds before posting again."; exit(); } } else { //ja nē, tad nepārbauda 30 sekundes, bet ievieto db. $sql_insert_1 = mysql_query("INSERT INTO `comments` (news_id, account_id, datetime, comment) VALUES ('$news_id', '$get_account_id', '$time_posted', '$comment')", $db); echo "OK"; exit(); } } else { echo "You didn't write your comment."; exit(); } } Vai komentāru pievienošana ir pietiekoši droša? Nekādas vairs injekcijas un mēsli nevar notikties? Ir vietas kur kaut ko var saīsināt? Mēģināju uztaisīt šo te perfekti. : D
  4. pateiksi kā? es vēl js/ajax/jquery ne īpaši orientējos, bet jāmācās ir. :)
  5. Ok, sanāca, bet kā var no serializētajiem datiem paņemt kādu no tiem datiem, lai varētu izmantot tajā loadContents ? Nu, piemēram, serializētie dati ir glglg=445&sl=4455&fff=2345345. Tad kā es varu paņemt sl datus, lai izmantotu skriptā: loadContents("#news_comments_r", "/p_gamma/news/index.php?action=read_comments&news_id=1"); tā 1-ninieka vietā.
  6. $(document).ready(function() { $("#add_comment").submit(function(){ $("#submit_comment").hide(); $(".ajax_loading").show(); var str = $(this).serialize(); $.post("/p_gamma/news/index.php?action=comment", str, function(msg){ $("#ncomment_response").ajaxComplete(function(event, request, settings){ $("#submit_comment").show(); $(".ajax_loading").hide(); if(msg == "OK") { loadContents("#news_comments_r", "/p_gamma/news/index.php?action=read_comments&news_id=1"); } else { var login_response = msg; $("#ncomment_response").html(login_response); } }); }); return false; }); }); loadContents("#news_comments_r", "/p_gamma/news/index.php?action=read_comments&news_id=1"); Viņš atkārto viņu patstāvīgi. Kā, lai skriptam liek palaist to (loadContents) funkciju tikai vienreiz?
  7. Nu jā, man arī strādā. Bet firefox Page info -> Security - > View cookies nerāda viņu. Protams, man jau vienalga, jo galvenais, ka darbojas. Paldies! :)
  8. Zinu, es sākumā gribēju pārliecināties, ka vispār sesiju izveido, tāpēc nesteidzos neko izvadīt.. Bet, eu. Darbojas. :O Bet kāpēc tad Firefoxī nerādās, ka ir izveidota sesija?
  9. vispār, priekš optimizācijas man patīk šis raksts: http://www.webdesignerwall.com/tutorials/coding-clean-and-semantic-templates/ Brr, nesanāk nekas man ar to kastes savādāku, ērtāku, vieglāku uzrakstīšanu. :D
  10. Šitais laikam bankrotējis, mēnešiem ilgi vairs jau lapa nestrādā. :)
  11. Ok, updeitoju pirmo rakstu ar šī brīža failiem. Mēģināju, nekādu sesiju neizveido.. Mēģināju arī izveidot sesiju, pat, ja dati nav pareizi, bet arī tad nekādu sesiju star viņš neizveido. Pamēģiniet paši ielogoties: šeit. Login: test Pass: test
  12. #outer_top #outer_top_left #navigation .middle { float:left; width:1px; height:27px; background:url(blue_layout.png) repeat-x -14px -28px; margin:0; padding:0; list-style-type: none; } Kamēr nav repeat-x, tad viss notiek pareizi. Viņs paņem to attēlu daļu, kuru vajag un nekādu problēmu, bet, ja vajag to kā repeat-x, tad viņš nerepīto. Tālāk, es katru kastīti mājaslapā veidoju no šī koda: <div class="dialog"> <div class="content"> <div class="t"></div> <div class="m_title"><!-- title --></div> <div class="m_content"><!-- content here --></div> <div class="b"> <div></div> </div> </div> Rezultātu var apskatīt pievienotajā attēlā. Bet, manuprāt, to var izdarīt īsāk un ērtāk, tikai nezinu kā. Un visbriesmīgākā lieta - es izmantoju ļoti lielu fonu, lai izveidotu to kastīti. Css kastītei: .dialog { position:relative; min-width:8em; color:#000000; z-index:1; padding-left: 4px; } .dialog .content, .dialog .t, .dialog .b, .dialog .b div { background:transparent url(box_blue_template.png) no-repeat top right; } .dialog .content { position:relative; zoom:1; _overflow-y:hidden; padding: 0px 0px 0px 0px; } .dialog .t { position:absolute; left:0px; top:0px; width:4px; margin-left:-4px; height:100%; _height:384px; background-position:top left; } .dialog .b { position:relative; width:100%; } .dialog .b, .dialog .b div { height:4px; font-size:1px; } .dialog .b { background-position:bottom right; } .dialog .b div { position:relative; width:4px; margin-left:-4px; background-position:bottom left; } .dialog .hd, .dialog .bd, .dialog .ft { position:relative; } .dialog .wrapper { position:static; max-height:384px; } .m_title { margin:0px; padding: 8px 0px 0px 4px; font-family: Arial; font-size: 12px; color: #FFF; font-weight: bold; font-variant: normal; overflow: hidden; } .m_content { margin:0px; padding:14px 4px 2px 4px; font-family: Arial; font-size: 11px; color: #000; font-variant: normal; overflow: hidden; } Varat palīdzēt to kastīti uztaisīt omptimizētāku?
  13. Un kā to tagad izdarīt, ja es izmantoju tos load content?
  14. index.php <form id="login_form" method="post"> <ul> <li> <label for="username">Username: </label> <input type="text" name="username" class="field required" id="username" minleght="3" maxlength="10" /> </li> <li> <label for="password">Password: </label> <input type="password" name="password" class="field required" id="password" onKeyPress="return capsLock(event)" /> </li> <li> <center> <input id="submit_login" type="submit" value="Authenticate" /> <div id="ajax_loading" align="center"> <img align="absmiddle" src="spinner.gif"> Processing... </div> <div id="login_response" style="color:red; font-weight:bold"> </div> <div id="caps_lock" style="display:none; color:red; font-weight:bold">Caps Lock taustiņš ir ieslēgts.<br /> Pārliecinies, ka raksti paroli pareizi!</div> </center> </li> </ul> </form> js $(document).ready(function() { $("#login_form").submit(function(){ $("#submit_login").hide(); $("#ajax_loading").show(); var str = $(this).serialize(); $.post("login.php", str, function(msg){ $("#login_response").ajaxComplete(function(event, request, settings){ $("#submit_login").show(); $("#ajax_loading").hide(); if(msg == "OK") { loadContents("#outer_top_right", "your_account.php"); } else { var login_response = msg; $("#login_response").html(login_response); } }); }); return false; }); }); function loadContents(div, url) { $(div).load(url); } php <?PHP include("connect.php"); $username = mysql_real_escape_string($_POST['username']); $password = mysql_real_escape_string($_POST['password']); $sql = mysql_query("SELECT `id` FROM `account` WHERE `login_name`='$username' AND `password`='$password'", $db); $result = mysql_num_rows($sql); if($result!=1) { session_start(); $_SESSION['mauka'] = $username; echo "Username or/and password is wrong."; } else { session_start(); $_SESSION['star'] = $username; echo "OK"; } ?> your_account.php <?PHP session_start(); ?> <div class="dialog"> <div class="content"> <div class="t"></div> <div class="m_title">Your accounet</div> <div class="m_content"> <b>Logged in as:</b> </div> </div> <div class="b"> <div></div> </div> </div> </div> Tātad, lietotājs ievada login datus. Kad nosūtīta login forma, tad js izpildās visas tās darbības un padod post uz php. Php pārbauda vai profils ir vai nav (nav svarīgi šobrīd cik droša ir datu pārbaude) un, ja dati ir pareizi, tad nosūta atpakaļ ziņu un vajadzētu izveidot sesiju['star'], kas saturēto session_id(); un ielādēt <div id="outer_top_right"></div> to html failiņu. Bet kaut kādu iemeslu pēc star sesiju neizveido. Kāpēc, kā salabot?
  15. if(isset($_GET['op']) && $_GET['op'] == 'atdot'){ 1. kas pie ir tas tāds? vienkārši: if($_GET['op'] == "atdot") { //bla bla } $l_co = $jor['coins']; 2. no kurienes šitais uzrodas ? $dadads = mysql_query("SELECT * FROM lietotaaji WHERE niks=".$_POST['lietotaajs'].""); 3. nebāz neko datubāzē, pirms neesi eskeipojis stringus. tas pats attiecās uz tiem update kverijiem. šādi: $niks = mysql_real_escape_string($_POST['lietotaajs']); $dadads = mysql_query("SELECT * FROM `lietotaaji` WHERE `niks`='$niks'"); ok, tālāk ir vēl lielāka putra. sāc domāt loģiski. sastādi darbību secību. un es neredzu, ka skripts meklētu savienojumu ar datubāzi..
  16. thesnarkie

    Tabulas

    Oops, pārlasījos. Domāju, ka viņam vajag tieši otrādi. :D
  17. ok, paldies. tiku galā. tagad man ir cita problēma. uzmetiet aci šim te. 1. uzspiediet uz kādas no tām sign up pogām. tas ielādēs reģistrēšanās contentu. 2. salieciet uz haļavu kaut kādus datus iekšā un nospiediet sign up. viņš ielādē atkal sākumalapu. kā lai notur viņu tur kur viņam jābūt līdz brīdim, kamēr es kodā neprasu iet kaut kur? vai ir arī kāds cits veids kā panākt to, ko cenšos es?
  18. briedim taisnība..pārvaldu lapu ar ~3900 apmeklējumiem dienā. 43.10% apmeklējumi no IE. kur ie6 32.25%, ie7 42.14%, ie8 25.60% apmeklējumi.
  19. ja tev ir kaut neliela saprašana, kas ir css un ko tas dara, tad cep vien augšā pats savu izskatu ar div tagiem. palasi kādus resursus google.com un pāris dienu laikā piešausies kas un kā notiek.
  20. thesnarkie

    Tabulas

    Hmm, css it kā nekas nepareizs nav, jo div tagi paši par sevi iet katrs jaunā rindā, ja tu neizmanto floatus, kurus tu neizmanto. Varbūt parādīsi pārējo kodu?
  21. Es domāju, ka tu paskaidrosi, bet tu tieši otrādi.. script src="jquery-1.3.2.min.js" type="text/javascript"></script> <script type="text/javascript"> $(document).ready(function() { $(".error").hide(); $("#login_form").submit(function() { var unameval = $("input#username").val(); if (unameval == "") { $("label#no_username").show(); $("input#username").focus(); return false; } var pwordval = $("input#password").val(); if (pwordval == "") { $("label#no_password").show(); $("input#password").focus(); return false; } if (unameval == "" && pwordval == "") { $("label#no_username").show(); $("label#no_password").show(); $("input#username").focus(); return false; } $.post("login.php", $(this).serialize(), function(data, status) { $("#error").html(data); }); return false; }); }); function capsLock(e){ keycode = e.keyCode?e.keyCode:e.which; shift = e.shiftKey?e.shiftKey:((keycode == 16)?true:false); if(((keycode >= 65 && keycode <= 90) && !shift)||((keycode >= 97 && keycode <= 122) && shift)) document.getElementById('caps_lock').style.display = 'block'; else document.getElementById('caps_lock').style.display = 'none'; } </script> <form name="login_form" id="login_form" method="post"> <ul> <li> <label for="username">Username: </label> <input type="text" name="username" class="field" id="username" /> <label class="error" for="username" id="no_userame">Write your username!</label> </li> <li> <label for="password">Password: </label> <input type="password" name="password" class="field" id="password" onKeyPress="return capsLock(event)" /> <label class="error" for="password" id="no_password">Write your password!</label> </li> <li> <center> <input type="submit" class="hiddensubmit" style="display:none;"/> <a href="#" class="btn" onclick="this.form.submit()"><span><span>Register here!</span></span></a> <div id="caps_lock" style="display:none; color:red; font-weight:bold">Caps Lock taustiņš ir ieslēgts.<br /> Pārliecinies, ka raksti paroli pareizi!</div> <div id="error" style="color:red; font-weight:bold"></div> </center> </li> </ul> </form> login.php $username = mysql_real_escape_string($_POST['username']); $password = mysql_real_escape_string($_POST['password']); $sql = mysql_query("SELECT `id` FROM `accounts` WHERE `username`='$username' AND `password`='$password'",$db); $result = mysql_num_rows($sql); if($result!=1) { print "Username or/and password is wrong."; } else { print "1"; } 1. viņš nesubmito pareizi formu ar to link pogu.. Kāpēc, kas nepareizi? firebugā raksta this.form is undefined. 2. if (unameval == "" && pwordval == "") - kas te ir nepareizi? kad es sūtu (pirms tam, kad bija parasta submit poga) formu un atstāju abus laukus tukšus, nekas nerādas. bet, ja viens vai otrs ir tukšs, tad rādās attiecīgā ziņa. 3. + piedevām - kādēļ tu visu bāz iekš #error? kpc gan ne? 4. labi, pārlādēt visu lapu būtu negudri. bet ar to noņemšos vēlāk. sākumā jāpabeidz šitā čerņa.
  22. <form name="login_form" id="login_form" method="post"> <ul> <li> <label for="username">Username: </label> <input type="text" name="username" class="field" id="username" /> </li> <li> <label for="password">Password: </label> <input type="password" name="password" class="field" id="password" /> </li> <li> <center> <a href="#" class="btn" onclick="this.form.submit()"><span><span>Register here!</span></span></a> <div id="error" style="color:red; font-weight:bold"></div> </center> </li> </ul> </form> <script src="jquery-1.3.2.min.js" type="text/javascript"></script> <script type="text/javascript"> $(document).ready(function() { $("#login_form").submit(function() { var unameval = $("#username").val(); var pwordval = $("#password").val(); $.post("login.php", { username: unameval, password: pwordval }, function(data) { $("#error").html(data); }); return false; }); }); </script> Kas js ir nepareizi, ka viņš neko nedara? Un, kā pareizi te rakstīt: $("#login_form").submit(function() { var unameval = $("#username").val(); var pwordval = $("#password").val(); $.post("login.php", { username: unameval, password: pwordval }, function(data) { var gdata = html(data); if(gdata == 1) { location.reload(); } }); return false; }); Ideja bija, ka tad, kad atbildē saņem 1, tad pārlādē lapu.
  23. index.html <html> <head> <script src="ajax.js" type="text/javascript"></script> <script src="login.js" type="text/javascript"></script> </head> <body> <form name="ajax" action="" method="post"> <ul> <li> <label for="username">Username: </label> <input type="text" name="username" class="field" id="username" /> </li> <li> <label for="password">Password: </label> <input type="password" name="password" class="field" id="password" onKeyPress="return capsLock(event)" /> <div id="caps_lock" style="display:none; color:red; font-weight:bold">Caps Lock taustiņš ir ieslēgts.<br />Pārliecinies, ka raksti paroli pareizi!</div> <div id="error" style="display:none; color:red; font-weight:bold">Hujovā kļūda!</div> </li> <li> <center> <input name="login" type="button" value="Submit" onclick="sumbitLoginData()" /> </center> </li> </ul> </form> </body></html> ajax.js function createXHR() { var request = false; try { request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { try { request = new XMLHttpRequest(); } catch (e) { request = false; }}} return request; } login.php <?PHP $usernamedb="***"; $database="***"; $passworddb="***"; $hostname="***"; $db = mysql_connect($hostname,$usernamedb,$passworddb); mysql_select_db($database,$db); if($_GET['action']=="login") { $posted = &$_POST; $p_username = $posted["username"]; $p_password = $posted["password"]; $sql = mysql_query("SELECT `id` FROM `accounts` WHERE `username`='$p_username' AND `password`='$p_password'",$db); $result = mysql_num_rows($sql); if($result!=1) { echo "error"; } else { echo "success"; } } ?> login.js function sumbitLoginData() { var username = document.ajax.username.value; var password = document.ajax.password.value; var p_data = "&username=" + username + "&password=" + password; var p_url = "login.php?action=login"; doPost(p_url, p_data); } function doGet() { var g_method = "GET"; var g_url = "login.php?"; var g_data = null; doReg(g_url, g_data, g_method); } function doPost(url, data) { var p_method = "POST"; doReg(url, data, p_method); } function doReg(url, data, method) { var xhr = createXHR(); xhr.open(method, url, true); if(method == "POST") { xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); } xhr.send(data); xhr.onreadystatechange = function() { var resp = null; if (xhr.readyState == 4) { var status = xhr.status; var statusText = xhr.statusText; var responseText = xhr.responseText; var responseXML = xhr.responseXML; switch(xhr.responseFormat) { case 'text': resp = responseText; break; case 'xml': resp = responseXML; break; case 'object': resp = req; break; } if (status > 199 && status < 300) { if (!handleResp) { alert('No response handler defined ' + 'for this XMLHttpRequest object.'); return; } else { document.getElementById('error').style.display = 'block'; } } else { document.getElementById('error').style.display = 'block'; } } } } function capsLock(e){ keycode = e.keyCode?e.keyCode:e.which; shift = e.shiftKey?e.shiftKey:((keycode == 16)?true:false); if(((keycode >= 65 && keycode <= 90) && !shift)||((keycode >= 97 && keycode <= 122) && shift)) document.getElementById('caps_lock').style.display = 'block'; else document.getElementById('caps_lock').style.display = 'none'; } Nezinu kāpēc un kā to izdarīt, ka viņš parāda to error ziņu (document.getElementById('error').style.display = 'block';), ja tāda lietotāja nav. Mēģināju šur tur ielikt, bet nesanāca. It kā ar Firebugu parādīja, ka response ir error, bet tik tiešām nezinu kā tālāk, lai parādītu to erroru. Idejas?
  24. Es jau vēl neesmu neko sūtījis un darījis. Telefons ir izlādējies un man nav atbilstošā lādētāja. Es vienkārši intereses pēc gribēju uzzināt, ja nu man pazūd telefons. : )
×
×
  • Create New...