Jump to content
php.lv forumi

Aleksejs

Moderatori
  • Posts

    4,584
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by Aleksejs

  1. 'k' lai būtu drošs, ka string tips tiks iegūts galā... Tas adoptēts no shellskriptiem. Nezinu, varbūt var iztikt bez...
  2. Tad visticamāk, ka ar Apache nav nekāda sakara.
  3. if ("$a ==$b"){ header('Location: citalapa.htm'); echo '<html><head><META HTTP-EQUIV="refresh" content="1;URL=http://hosts/citalapa.htm"></head></html>'; } else{ echo ("viss OK"); }
  4. Un kāda šī autorizācija būtu? Var tak daudz dažādos veidos to realizēt.
  5. Ja iet runa par INTEGER, tad var arī šādu pārbaudi: <?php function irinteger($str){ if(($str.'k')==(intval($str).'k'))[ return true; else { return false; } }
  6. Gacha: Kā tavuprāt darbojas sesijas? Ja jau tu saki, ka ar Cookies var izdarīt, bet ar sesijāmm nevar izdarīt tā, ka tiek atšķirti lietotāji, kas nāk no vienas ārējās IP... ;)
  7. Diezin vai, bet varbūt tomēr norādi arī otro parametru mysql_querijam... tobiš pieslēguma ID. A nevarētu būt tā, ka lielajā saita pārnešanas steigā, neesi pārnesis kādu tabulu....
  8. Pārbaudi, vai neesi izmantojis REGISTEr_GLOBALS, kuri ir neatļauti uz firmas servera, tāpat, vai esi norādījis pareizu username/password, lai piekļūtu mysqlam. P.S. FreeBSD, kā jau BSD rullē! Ruki proč ot FreeBSD (ja drīkstētu tā ironizēt) :P
  9. Nu, jā... Teiksim ik pēc n/4 simboliem, kur n pieļaujamo blakusesošo nespeisu skaits...
  10. Problēma ir tur, ka iekš vaicājuma ir vairāk vērtību(17) nekā kolonnu(16). (pasutitajs, reg_num, adrese, lv, telefons, banka, swift, konts, p_adrese, p_pilseta, p_lv, lietotajs, parole, ip, os, explorer) VALUES ('$pasutitajs', '$reg_num', '$adrese', '$pilseta', '$lv', '$telefons', '$banka', '$swift', '$konts', '$p_adrese', '$p_pilseta', '$p_lv', '$lietotajs', '$parole', '$ip', '$os', '$explorer')"; Hint: varbūt vērtības $adrese un $pilseta ir jāapvieno ;) Ehh, nokavēju :P
  11. Tad jau arī par kodolfiziku varam runāt, jo kodolfizika ir saistīta ar atomenerģētiku, kura, savukārt, nodarbojas ar elektrības pievadīšanu elektroiekārtām, kuru starpā ir arī tādas, kuras mēdz daudzināt (foršs vārds - daudzināt :P ) par datoriem, kuri savukārt varētu darbināt programmas, kuru starpā varētu būt PHP :D Nu tātad kolēģi, kā atrisināt vadāmās kodolsintēzes problēmu? Citādi PHP neiet :P Nu ok - nedaudz ciniski, bet nu tomēr :P
  12. To norāda uz firewalla/routera/Whateverkāviņuvēliessaukt. Tālāk, protams, atkarībā no tā, kāds softs griežās. IPchains - man ipfwadm; IPTables - man iptables; PacketFilter - man pf. No galvas nezinu - nesanāk tik bieži to darīt ;) Bet tas jau vairs nav PHP :P
  13. no galvas neatceros precīzi... varbut, ka šeit rodama atbilde... http://lv.php.net/manual/en/function.sessi...che-limiter.php
  14. Tev ir jāpaprasa savam IPS, lai uzliek "port forwarding" uz tavu kasti
  15. Godīgi sakot, neaptvēru sasāpējušo problēmu. ;) Varbūt noformulē savādāk, a?
  16. php.ini fragments: Tātad, ja nav norādīts šis parametrs - sistēmas (interesanti... OS, vai webservera) temp direktorija. Parasti /tmp uz *nix c:\windows\temp (laikam) uz Win
  17. Es kaut kā nevaru iebraukt rindiņas: unset($dati[$i][sizeof($dati[$i])]); funkcionālajā jēgā... Kas tur tiek darīts (cerēts, ka notiek ;) ) Pieļauju arī, ka $i kaut kur tiek piešķirta vērtība.
  18. pieliec tukšas kvadrātiekavas checkbokša nosaukumam - tad visi ieķeksētie nosūtīsies kā masīvs. echo '<input name="mainigais[]" type="checkbox" value="' . $row[id] . '">"
  19. Man šķiet, ka pārbaudi šajā gadījumā jāveic nevis ar mysql_query(); bet gan ar mysql_affected_rows(); Jo, ja tev ir pareizs, korekts DELETE vaicājums, kurš neizdzēš neko - tas tomēr skaitās sekmīgs vaicājums. <?php if(isset($_POST['del'])){ $del_id = $_POST['idx']; $kverijs = "Delete from data where id='$del_idd'"; mysql_query($kverijs) if (mysql_affected_rows()){header("Location: show.php?ok=$del_id"); }else{header("Location: show.php?ok=huy");} } ?>
  20. Neviens tev neliedz to visu glabāt flat failā... Atšķirās tikai datu saņemšanas veids, bet pārējā autentifikācija paliek iepriekšējā.
  21. Tad, kad vajag iedot linku, piemēram, uz ziņu: http://www.news.new/zinja.php?id=123 Get parasti izmantoju, lai nevajadzētu taisīt <form>...</form>, bet, kad pietiek ar vienkāršu <a href=...>...</a>.
  22. Nu, ja jau mētāties, tad mētāties. fails auth.php <?php session_start(); if(!(isset($_SESSION['uid']))){ header('Location: login.php');//ja sesijā nav piereģistrēts - tātad neautorizēts exit; } ?> fails login.php <?php session_start(); $salt = ' jasdjjdajhdjhdu'; //teksta rinda, kuru izmanto paroļu ģenerēšanā. $kluuda = ''; if(isset($_SESSION['uid'])){ header('Location: index.php');//Lapa uz kuru aiziet, ja ir autorizējies } else{ if(isset($_POST['uname'])){ require('functions.php');//fails, kurā notiek datubāzes konekcijas izveide un tamlīdzīgas lietas $uname = $_POST['uname']; $pass = ''; if(isset($_POST['pass'])){ $pass = $_POST['pass']; } $pass = md5($uname . $salt . $pass); $vaicajums = "SELECT * FROM lietotaji WHERE login = '$uname' AND password = '$pass' LIMIT 0, 1"; //echo $vaicajums; $rezultats = mysql_query($vaicajums, $conn); if(mysql_num_rows($rezultats)==1){ $_SESSION = array();//tiek aizvērta vecā sesija session_destroy();//lai izvairītos no session-fixation session_start();//http://www.acros.si/papers/session_fixation.pdf $rinda = mysql_fetch_assoc($rezultats); $_SESSION['uid'] = $rinda['uid']; $_SESSION['gid'] = $rinda['gid'];//neobligāta $_SESSION['login'] = $rinda['login'];//neobligāta $_SESSION['vards'] = $rinda['vards'];//neobligāta $_SESSION['uzvards']= $rinda['uzvards'];//neobligāta mysql_free_result($rezultats); mysql_close($conn); header('Location: index.php');//Lapa, uz kuru aiziet, ja ir autorizēts. } else { $kluuda = 'Nepareiza parole vai lietotāja vārds'; } } echo $kluuda; ?> <form method='POST'> <label for="uname">Lietotāja vārds: </label> <input name="uname" type="text" size="17"><br> <label for="pass">Parole: </label> <input name="pass" type="password" size="17"><br> <input type="submit" value="Pieslēgties"> <input type="reset" value="Nodzēst"></form> fails logoff.php <?php require('auth.php'); $_SESSION=array(); session_destroy(); header('Location: login.php');//aizmest uz to lapu, uz kuru vajag. ?> fails chpass.php <?php require('auth.php'); $salt = ' jasdjjdajhdjhdu'; if(strlen($_POST['oldpass'])&&strlen($_POST['newpass1'])&&strlen($_POST['newpass2'])){ if($_POST['newpass1'] == $_POST['newpass2']){ $vaicajums = "UPDATE lietotaji SET password = '" . md5($_SESSION['login'] . ':' . $_POST['newpass1']) . "' WHERE uid = " . $_SESSION['uid'] . " AND password = '" . md5($_SESSION['login'] . $salt . $_POST['oldpass']) . "'"; $rezultats = mysql_query($vaicajums, $conn); if(mysql_affected_rows($conn) == 1){ ?> Parole nomainīta veiksmīgi <?php } else { ?> Parole nav nomainīta, vai arī jaunā parole sakrīt ar veco paroli! <?php } } else { ?> Parole nav nomainīta. Jaunā parole nesakrīt ar jaunās paroles apstiprinājumu! <?php } } else{ ?> <form method="POST"> <label for="oldpass">Vecā parole:</label> <input name="oldpass" size="12" type="password"> <label for="newpass1">Jaunā parole:</label> <input name="newpass1" size="12" type="password"> <label for="newpass2">Jaunās paroles apstiprinājums:</label> <input name="newpass2" size="12" type="password"> <input type="submit" value="Saglabāt"> </form> <?php } ?> Tātad visās lapās, kurām jāpiemēro autorizācija, kā pirmā rindiņa jāliek require_once(' auth.php'); Par paroļu glabāšanu datubāzē: Datubāzē glabājas paroļu MD5 attēli (MD5 varat aizvietot ar savu iecienītāko hash funkciju). paroles attēls tiek veidots šādi MD5 ( lietotājvārds + sāls + parole). lietotājvārda piesaiste parolei, dod to, ka ja vairāki lietotāji izvēlas vienādas paroles - ir ļoti niecīga iespēja, ka to šādā veidā veidotie attēli sakritīs. sāls (vienkārši kaut kāda labi gara teksta rindiņa, kas ir unikāla katram projektam, kur izmantots šis autentifikācijas mehānisma) izmantošana dod to, ka jūsu izmantotās mīļakās paroles attēls nebūs izmantojams citā vietā. (tas tā - paranojiķiem). Patiesībā galvenais, ko panāk, piesaistot šīs divas vērības, ir tas, ka nevar izmantot publiski pieejamās vārdnīcas, kurās jau iepriekš noģenerēti hash attēli izplatītākajām parolēm. P.S. atvainojos, ka neieliku to visu iekš paste.lv ;)
  23. 2 Roze: No savas pieredzes ar SCP/SFTP (un šī pieredze man ir diezgan liela) SFTP man vienmēr strādā nevis nedaudz lēnāk bet gan par kārtu lēnāk. Par cik lielākoties man vajag dzenāt šurpu/turpu visādus php/config/utt mazus failiņus, tad esmu vienmēr izvēlējies SCP. 2 Gacha: SCP (Secure CP - un cp iekš *nix ir kopēt) programma/protokols, kas ļauj kopēt datus izmantojot SSH - tādejādi, gan dati, gan parole ir vispārīgā gadījumā aizsargāti gandrīz pret jebkādu "slikteņu" darbībām.
×
×
  • Create New...