Jump to content
php.lv forumi

eT`

Reģistrētie lietotāji
  • Posts

    361
  • Joined

  • Last visited

Posts posted by eT`

  1. kvērijam priekšā vajag USE tava_datubāze GO [insert_query_here]

     

    edit: vair arī vienkārši:

     

    $db1 = mysql_connect('localhost' , 'root', 'pass'); 
    $db2 = mysql_connect('localhost' , 'root', 'pass', true);
    
    $c1 = mysql_select_db('db1',$db1);
    $c2 = mysql_select_db('db2',$db2);
    
    $a = mysql_query("SELECT id FROM table ORDER BY id DESC",$c1);
    while($d = mysql_fetch_array($a))
    {
       $b = mysql_query("SELECT id FROM table2 WHERE cat=".$d[0]." ORDER BY id DESC LIMIT 5",$c2);
       while($c = mysql_fetch_array($b))
       {
           echo $c[0];//izvada ID
       }
    }
    

  2. balstoties uz daGrevis funkciju uztaisīju funkciju, kas dara visu to ko man vajag.

    šo ir diezgan viegli pielabot, ja vajag lielākus intervālus par dienām.

     

    <?php
    function date_diff($date_1, $date_2) 
    		{
           		$date_1 = is_int($date_1) ? $date_1 : strtotime($date_1);
    			$date_2 = is_int($date_2) ? $date_2 : strtotime($date_2);
    
    			if($date_1 === $date_2) $interval = 0;
    			else if ($date_1 > $date_2) $interval = $date_1 - $date_2;
    			else $interval = $date_2 - $date_1;				
    
    			$laika_sk = array(86400,3600,60);
    			$apz = array('d','st','min');		
    
    			for($i=0;$i<3;$i++)
    			{
    				$main = floor($interval/($laika_sk[$i]));
    				if($main > 0)
    				{
    				$interval = $interval - ($main * $laika_sk[$i]);
    				$laiks .= $main.$apz[$i].' ';
    				}
    			}
    			return $laiks;
    
    		}
    ?>
    

  3. personīgi es šo sķērsli pārvarēju druscin savadāka es liku iekša datubāze sākuma datumu un beigu tad vilku arā no db un ar if palīdzību liku baudit vai sakuma datums nav vienāds ar beigu un ja jā tad veikt noteikto darbību ja ne viņs katru dienu liek iekša datubāze jaunu datumu līdz sakuma un beigu datums ir veināds un veic kaut kādu norādīto darbību !

    ceru ka noder vai līdz ;)

    man arī DB glabājas sākuma un beigu datums.

    es izvelku šādi WHERE end_date>NOW()

     

    Pārēķini uz "timestamp" abus. Atņem. Rezultātu pārrēķini atpakaļ.

     

    P.S. DateTime::diff.

    pamēģināšu ar timestamp.

    datediff neiet, to jau #1 rakstīju

  4. Kā lai aprēķina divu datumu intervālu formātā - x dienas y stundas z minūtes

    1. date("Y-m-d H:i:s");

    2. dati no DB tādā pašā formātā

    NANO hostings parāda ka datediff funkciju nedrīkst ( viņu PHP versija - 5.2.1.7, bet vajag laikam vismaz 5.3.0 )

     

    $tagad = new DateTime(date("Y-m-d H:i:s"));
    $beigsies = new DateTime($carr["end_date"]);
    $interval = $tagad->diff($beigsies);
    echo $interval->format('%dd %hst %imin');
    

     

    man nesanāca arī, kad abus pārvērtu strtotime ( neattēlo pareizi )

    $s = strtotime(date("Y-m-d H:i:s"));
    $b = strtotime($carr["end_date"]);
    $interval = $b-$s;
    $laiks = date("j H i",$interval);
    

  5. mby nostrādā. netestēju.

     

    <script type="text/javascript" language="javascript">
    $('#register').submit(function() {
     var first = document.getElementbyId('firstname').value;
     if(first == '')
     {
         alert('Ievadi vārdu!');
         return false; 
     }
     else
     {
        $.ajax({
        type: "POST",
        url: "register_process.php",
        data: ({first : first}),
        success: function(msg)
        {
        alert("Reģistrācijas veiksmīga!");
        }
        });
     }
    });
    </script>
    

  6. Jauns jautājums:

    Man ir login forma, kuru validēju ar AJAX

    Gribētos, lai logins notiek bez lapas pārlādes.

    success gadījumā laikam vajadzētu ielikt kaut ko, kas to DIVu pārlādētu.

     

    pašlaik ir šādi:

     

    <script type="text/javascript" language="javascript">
    function login()
    {
    var user = document.getElementById('email').value;
    var password = document.getElementById('password').value;
    
       $.ajax({
      	type: "POST",
      	url: "<?=HOMEURL?>/login",
       data: ({mail : user, pass : password }),
       success: function(data) { 
       //šeit vajadzētu ielikt, lai pārlādējas #login bloks
       } 
    	});
    }
    </script>
    <div id="login">
    <?php
    if(empty($_SESSION["logged"]))
    {
    ?>
       <table width="250px">
       <tr><td width="50px">E-Pasts</td><td width="200px"><input name="mail" type="text" id="email" /></td></tr>
       <tr><td width="50px">Parole</td><td width="200px"><input name="pass" type="password" id="password" /></td></tr>
       <tr><td></td><td><input type="button" value="Ielogoties" onclick="login();" /> <a href="<?=HOMEURL?>/register">Reģistrēties</a></td></tr>
       </table>
    <?php
    }
    else
    {
    
    echo 'Sveiks,<br />
    <a href="'.HOMEURL.'/profile">Mans profils</a><br />
    <a href="'.HOMEURL.'/logout">Iziet</a>';
    }
    ?>
    </div>
    

  7. Cita problēma.

    Šis kods uz IE9 strādā, bet uz gChrome nē o.O

     

    <script type="text/javascript" language="JavaScript">
    function getCats(id)
    {
    if(id!=0)
    {
    	$('#kat').load('/getcat/'+id);
    }
    }
    </script>
    <select name="topcat">
    <?php	
    $top = query("SELECT rb_topcat_id FROM rb_cat WHERE tips LIKE '%I%' GROUP BY rb_topcat_id");
    while($tarr = fetchArray($top))
    {
    	$q = query("SELECT * FROM rb_topcat WHERE id=".$tarr[0]);
    	while($arr = fetchArray($q))
    	{
    		echo '<option onclick="getCats('.$arr["id"].')">'.$arr["name"].'</option>';
    	}
    }
    ?>
    </select>
    <div id="kat"></div>
    

     

    mēģināju šādi, bet tas nestrādā nevienā pārlūkā

    <select name="topcat" onchange="getCats(this.value)">
    <?php	
    $top = query("SELECT rb_topcat_id FROM rb_cat WHERE tips LIKE '%I%' GROUP BY rb_topcat_id");
    while($tarr = fetchArray($top))
    {
    	$q = query("SELECT * FROM rb_topcat WHERE id=".$tarr[0]);
    	while($arr = fetchArray($q))
    	{
    		echo '<option value="'.$arr["id"].'">'.$arr["name"].'</option>';
    	}
    }
    ?>
    </select>
    

  8. palasīju par jQuery funkcijām un atradu šo load()

     

    <script language="javascript" type="text/javascript">
    function vote(id)
    {
    $('#poll_content').fadeOut('slow').load('<?=HOMEURL?>/vote/'+id).fadeIn('slow');
    }
    </script>
    

  9. Gribētos uztaisīt aptauju lapā bez refresha un submit pogas.

    Darbotos šādi: <input type="radio" name="a" value="1" onclick="funkcija()"> teksts

     

    Kāda apmēram varētu būt funkcija, kas nepārlādējot lapu nosūtītu datus uz citu failu ( kur tie ievietotos datubāzē ), un tad pārlādētos tikai tas bloks, kur ir aptauja ( <div> </div> )

  10. it kā logina formu sataisīju šādi:

     

    <script language="javascript">
    $(document).ready(function()
    {
    $("#login_form").submit(function()
    {
    	$.post("login",{ user:$('#user').val(),pass:$('#pass').val(),rand:Math.random() } ,function(data)
           {
    		document.location='home';
           });
    		return false;
    });
    });
    </script>
    

     

    bet vai tā ir forši darīt?

  11. Tātad mans mod_rewrite bojā manu jQuery login formu

    mani pārmet uz lapu, kas izpildās no gadījumā.

    ar alert pārbaudīju, kādi ir dati, ko atgriež.

    data satur veselas lapas DOM.

     

    index.php

    <script language="javascript">
    $(document).ready(function()
    {
    $("#login_form").submit(function()
    {
    	$.post("../pages/login.php",{ user:$('#user').val(),pass:$('#pass').val(),rand:Math.random() } ,function(data)
           {
    		if(data=='yes')
    	  	{
    			document.location='video';
    	  	}
    	  	else 
    	  	{
    			alert(data);
    	  		document.location='pokers';
             	}	
           });
    		return false;
    });
    $("#pass").blur(function()
    {
    	$("#login_form").trigger('submit');
    });
    });
    </script>
    <?php
    $p=explode('/',$_SERVER['REQUEST_URI']);
    if ($p[1]=='' || $p[1] == 'home') $p[1]='index';
    if (file_exists($m = 'pages/'.$p[1].'.php')) {
    include('pages/'.$p[1].'.php');
    } else {
    echo '<h2>Lapa nav atrasta!</h2>';
    }
    ?>
    <form method="post" id="login_form">
    
    </form>
    

     

    un login.php

    <?php
    if(isset($_POST["user"]) && $_POST["user"] != '' && isset($_POST["pass"]) && $_POST["pass"] != '')
    {
    $user = escape($_POST["user"]);
    $pass = escape($_POST["pass"]);
    $pass = md5(sha1($pass));
    $q = query("SELECT * FROM users WHERE username='".$user."' AND pass='".$pass."'");
    if(mysql_num_rows($q) > 0)
    {
    	echo 'yes';
    	$_SESSION["logged"] = $user;
    
    }
    else
    {
    	echo 'no';
    }
    }
    ?>
    

     

    un mans .htaccess

     

    Options +FollowSymlinks 
    
    RewriteEngine On 
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !^(.+)\.(css|js|jpg|gif|png|ico|pdf)$
    RewriteRule ^(.*) index.php [QSA,L]
    

  12. mod_rewrite šo nevarētu ietekmēt?

     

    pārliku to JS uz index <head>

    nomainīju f-ju

    $(document).ready(function () {
       $("#username").blur(function () {
           $("#msgbox").removeClass().text('Pārbauda...').fadeIn("slow");
           $.post("pages/check.php?action=user", {
               user: $(this).val()
           }, function (data) {
               if (data == 'no')
               {
                   $("#msgbox").fadeTo(200, 0.1, function ()
                   {
                       $(this).html('Šāds lietotājvārds jau ir reģistrēts').addClass('error').fadeTo(900, 1);
                   });
               } else {
                   $("#msgbox").fadeTo(200, 0.1, function ()
                   {
    				alert(data)
                       $(this).html('Lietotājvārds ir pieejams').addClass('ok').fadeTo(900, 1);
                   });
               }
    
           });    
       });
    });
    

     

    mans .htaccess

    Options +FollowSymlinks 
    
    RewriteEngine On 
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !^(.+)\.(css|js|jpg|gif|png|ico)$
    RewriteRule ^(.*) index.php [QSA,L]
    

     

    un index

    $p=explode('/',$_SERVER['REQUEST_URI']);
    if ($p[1]=='' || $p[1] == 'home') $p[1]='index';
    
    if (file_exists($m = 'pages/'.$p[1].'.php')) {
     ob_start(); 
     require $m;
     $content = ob_get_contents(); 
     ob_end_clean(); 
    } else {
     $content = '<h2>Lapa nav atrasta!</h2>';
    }
    

  13. arī ar šādu neiet

     

    case 'user':
    $user_name=mysql_real_escape_string($_POST['user']);
    $uq = mysql_query("SELECT id FROM users WHERE username='".$user_name."'");
    if (mysql_num_rows($uq)>0)
    {
    echo "no";
    } 
    else
    {
    echo "yes";
    }
    break;
    

     

    edit: mysql_real_escape_string() vēl nebiju pielicis, jo tikai testēju šo f-ju.

     

    edit2: problēma laikam ir šijā vietā

    if (data == 'no')
    

    jo pieliekot else vietā else if kurš pārbauda vērtību yes, Pārbauda nepazūd [ nesakrīt ne viens no ifiem ]

  14. Nezinu, kas par iemeslu kapēc nestrādā username check

    Vislaik atgriež, ka lietotājvārds ir pieejams, lai gan mēģināju ierakstīt tādu, kas jau eksistē.

     

    index.php

    <script type="text/javascript" src="http://xxx.id.lv/js/jquery-1.5.1.min.js"></script>
    

     

    register.php

    <script type="text/javascript" language="javascript">
    $(document).ready(function () {
       $("#username").blur(function () {
           $("#msgbox").removeClass().text('Pārbauda...').fadeIn("slow");
           $.post("check.php?action=user", {
               user: $(this).val()
           }, function (data) {
               if (data == 'no')
               {
                   $("#msgbox").fadeTo(200, 0.1, function ()
                   {
                       $(this).html('Šāds lietotājvārds jau ir reģistrēts').addClass('error').fadeTo(900, 1);
                   });
               } else {
                   $("#msgbox").fadeTo(200, 0.1, function ()
                   {
                       $(this).html('Lietotājvārds ir pieejams').addClass('ok').fadeTo(900, 1);
                   });
               }
    
           });    
       });
    });
    </script>
    <input type="text" name="user" id="username" class="input" /> <span id="msgbox" style="display:none"></span>
    

     

    check.php

    <?php
    switch($_GET["action"])
    {
    case 'user':
    $user_name=$_POST['user'];
    $uq = mysql_query("SELECT COUNT(*) FROM users WHERE username='".$user_name."'");
    if (mysql_result($uq)>0)
    {
    echo "no";
    } 
    else
    {
    echo "yes";
    }
    break;
    }
    ?>
    

  15. Nē, vienkārši includoju captchas bildi, un tad uztaisu inputu, kur ievadīt redzamo kodu, submitot formu, kas caur cURl padod tālāk user,pw un captchas kodu.

  16. Nu jā.

    Izmet, ka nepareizs kods.

    Captchs ir 0-9, A-Z [ capital letters only ]

    un tātad 36 elementi

    tur uz katras bildes ir 4.

    Pēc variāciju formulas [ ja pareizi atceros ] sanāk 36!/(36-4)! * 4!

    baigi lielais cipars.

    biju domājis, ka var paņemt kaptču ielikt savā test.php failā caur <img src="" /> un tad logoties ar cURl, bet nevar.

  17. Dabūju vienu uzdevumu.

    Uzdevuma izpildīšanai bez cURL nevaru laikam.

     

    Apraksts:

    vairumtirdzniecības bāze ar preču kataloga sarakstu

    users un pass man ir.

    tur pie ielogošanās ir captcha.

    mēģināju captchu palaist uz lokālā skripta.

     

    http://paste.php.lv/afad0f41a13df9ba917d70d3a3baf81a?lang=php

     

    bet nesanāk.

    headeri, ko saņemu palaižot skriptu:

     

    HTTP/1.1 100 Continue HTTP/1.1 302 Found Date: Wed, 16 Mar 2011 15:31:25 GMT Server: Apache/2.0.52 (CentOS) X-Powered-By: PHP/5.2.9 Set-Cookie: PHPSESSID=e61aa8f6d3634a3674b4f44d05941801; path=/ Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache [b]Location: index.php?err=-2[/b] Content-Length: 0 Connection: close Content-Type: text/html HTTP/1.1 200 OK Date: Wed, 16 Mar 2011 15:31:25 GMT Server: Apache/2.0.52 (CentOS) X-Powered-By: PHP/5.2.9 Set-Cookie: PHPSESSID=7a6e12f8746b72513c3ccf0b5b6391af; path=/ Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Content-Length: 3163 Connection: close Content-Type: text/html
    

  18. Tā,

    īsumā manai lapai ir saites ./a ./b etc.

    bet ir arī ./d/123

     

    pašlaik .htaccess rewrite izskatās šādi:

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?page=$1 [QSA,L]

     

    un PHP daļa:

    $page = $_GET["page"];
    if(empty($page)) $page = 'index';
    include_once('pages/'.$page.'.php');
    

     

    bet dodoties uz saiti ./c/123 viņš mēģina includot failu /c/123.php, lai gan gribētos, lai vienkārši includo c.php un 123 padodcaur $_GET lai varu ar kvēriju izvilkt visu, ko vajag.

     

    tātad:

    index.php?page=gallery -- lapa.lv/gallery

    index.php?page=news&id=3 -- lapa.lv/news/3

     

    kaut kas šāds nederētu - RewriteRule ^(.*)/(.*)/(.*)$ index.php?page=$1&$2=$3 [QSA,L] ?

     

    Jo var būt, ka saite ir index.php?page=users&name=useris -- lapa.lv/users/useris

  19. DP!

     

    Pastāstīšu, kas un kā ir sīkāk.

     

    Links - http://xxx.com/cgi-bin/wspd_pcdb_cgi.sh/y/yproductdetail.p?item=19532120'>http://xxx.com/cgi-bin/wspd_pcdb_cgi.sh/y/yproductdetail.p?item=19532120

     

    caur cURL execojot to lapu, parāda lapu, kur ir poga login <button name="button" onclick="backhome()" />

    poga aizved uz index2.php, kur ir login forma [ login formas target ir - http://xxx.com/cgi-bin/wspd_pcdb_cgi.sh/y/ylogin.php ]

     

    Nav ideju, kā uztaisīt, lai palaižot linku - http://xxx.com/cgi-bin/wspd_pcdb_cgi.sh/y/yproductdetail.p?item=1953212

    automātiski tiktu ielogots, un parādītu tās lapas DOM.

     

    headeri, kas tiek atgriezti izpildot pa taisno nevis login lapu, bet tās preces lapu.

     

    HTTP/1.1 200 OK
    Date: Fri, 10 Dec 2010 15:38:05 GMT
    Server: Apache/2.2.8 (Fedora)
    Set-Cookie: xxx=web%7CtMbddqJiHOidddid%7C0%7C%7C; path=/
    Set-Cookie: xxx=; expires=Fri, 10-Dec-2010 07:18:13 GMT; path=/
    cache-control: must-revalidate;
    Transfer-Encoding: chunked
    Content-Type: text/html
    

×
×
  • Create New...