Forumai | Naujienų archyvas | Straipsnių archyvas | Struktūra |
Paieška      

Naudotojas: Anonimas | Naudotojų sistemoje: 31239 | Dabar naršo: 112 (0)
Prisijungimas
Vardas:
Slaptažodis:
 prisiminti

Dar neužsiregistravai?
registruokis »

Pamiršai slaptažodį
Naujienų kategorijos
 PHP naujienos (187)
 php.lt naujienos (38)
 Įvairios naujienos (89)
 Naujos programos (66)
 Darbas (73)
Naujienos

Tradicinė WEB konferencija //2011.03.29

Startup Weekend, Vilnius/Kaunas ! //2010.03.26

PHP konferencija 2010 //2010.03.16

PHP conf'09 tiesioginė transliacija - internetu //2009.04.21

PHP conf '09 //2009.04.08

Ieškomi pranešėjai PHP konferencijai '09 //2009.03.19
Naudingos nuorodos

Kaip naudotis
BBcode tinklapyje?
Draugai

Paskutinės žinutės

Paskutinės 25 žinutės PHP.LT forumuose
PHP.LT forumų sąrašas

Re: Undefined offset: 1 [atsakyti]
2016-02-07 12:47, parašė: Vaidas14041

Išsidumpinus pasirodo masyvas tuščias. Bandau prisijungti prie api, naudoju wraperi iš https://github.com/gswalden/thingiverse, kuris padarytas pagal https://www.thingiverse.com/developers/getting-started, kode nieko nekeičiau ir viskas lyg ir gerai atrodo, nurodžiau client_id ir client_secret, kaip nurodyta api iš https://www.thingiverse.com/login/oauth/authorize?client_id=065d5641869bec398f5f gavau koda, kurį nusiunčiu į oAuth($code) funkciją, kad gaučiau access token, bet jokio atsako negaunu. Gal kas žino, kur gali būti problema?








<?echo "

<?php


class Thingiverse {
    
    const BASE_URL = 'https://api.thingiverse.com/';

    public $access_token;
    public $response_data;
    public $response_code;
    public $last_response_error;

    protected $client_id;
    protected $client_secret;
    protected $redirect_uri;

    protected $post_params = NULL;
    protected $url = NULL;

    protected $available_licenses = array('cc', 'cc-sa',&nbs p;'cc-nd', 'cc-nc-sa', 'cc-nc-nd', 'pd0', 'gpl', 'lgpl', 'bsd');
    
    public function __construct($token = NULL)
    {
        $this->client_id = '065d5641869bec398f5 f';
        $this->client_secret = '9d4ebbc6e1d1b51 7a43c7c49ab684f1d';

        $this->access_token = $token;
    }
    
    public function oAuth($code)
    {
        $this->url = 'https://www.thingiverse.com/login/oauth/access_token';
        $this->post_params['client_id']      = $this->client_id; 
        $this->post_params['client_secret'] = $ this->client_secret;
        $this->post_params['code']     ;      = $code;
        
        $response = $this->_send('POST', T RUE);
        
        preg_match('/access_token=(\w+)&token_type/',&nb sp;$response, $match);
        
        $this->access_token = $match[1];
    }
    
    
    
    
    protected function _reset()
    {
        $this->post_params = NULL;
        $this->url = NULL;
    }
    
    protected function _send($type = 'GET', $is_oauth&n bsp;= FALSE)
    {
        if (empty($this->access_token) &&am p; ! $is_oauth)
            exit('No access to ken.');
        if (empty($this->url))
            exit('No URL.');

        $curl = curl_init();
        
        curl_setopt($curl, CURLOPT_URL, $this-> url);
        
        $type = strtoupper($type);
        
        switch ($type)
        {
            case 'POST'   :
            case 'PATCH' :
            case 'DELETE':
                if&n bsp;( ! $is_oauth)
                &nbs p;   curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($this->post_para ms));
                else
                &nbs p;   curl_setopt($curl, CURLOPT_POSTFIELDS, $this->post_params);
                curl _setopt($curl, CURLOPT_CUSTOMREQUEST, $type);
            case 'GET':
                brea k;
            default:
                exit ("
Invalid request type'$type'.");        
        }
        
        curl_setopt($curl, CURLOPT_RETURNTRANSFER,  ;1);

        if ( ! $is_oauth)
        {
            curl_setopt($curl, CURL OPT_HTTPHEADER, array('Authorization: Bearer ' . $this->access_token,&nb sp;'Content-Type: application/json'));
        }
        
        curl_setopt($curl, CURLOPT_TIMEOUT, 10);
        curl_setopt($curl, CURLOPT_HEADER, 1);

        $response = curl_exec($curl);
        $this->response_code = curl_getinfo($cu rl, CURLINFO_HTTP_CODE);
        
        $header_size = curl_getinfo($curl, CU RLINFO_HEADER_SIZE);
        $response_header = substr($response,  0, $header_size);
        $response_body = substr($response, $h eader_size);
        
        if ($this->response_code != 200)
        {
            if (preg_match('/x-erro r: (.+)/i', $response_header, $match))
                $thi s->last_response_error = $match[1];
            else
                $thi s->last_response_error = 'No error given in header. Check  ;response body.';
        }
        else
            $this->last_response_erro r = '';

        // Uncomment next four lines&nbs p;to see/debug full cURL response
        $curl_info = curl_getinfo($curl);
        var_dump($curl_info);
        var_dump($response_header);
        var_dump($response_body);

        curl_close($curl);
        
        $this->_reset();
        
        if ($is_oauth)
            return $response_body;

        $this->response_data = json_decode($res ponse_body);

        return $this->response_code;
    }
    
    
}

$e=new Thingiverse();
$e->oAuth('f2090b34f9d6388811c2531189b6db7b');

?>



";[/php]

Re: Undefined offset: 1 [atsakyti]
2016-02-07 12:19, parašė: Dewilas

Masyve $match nera elemento su 1 indexu. Issidumpink pirmiausiai ir ziurek ka grazina

Undefined offset: 1 [atsakyti]
2016-02-07 12:11, parašė: Vaidas14041

Sveiki, nesenai pradėjau programuoti php, gaunu Notice: Undefined offset: 1 on line 40

public function oAuth($code)
{
$this->url = 'url';
$this->post_params['client_id'] = $this->client_id;
$this->post_params['client_secret'] = $this->client_secret;
$this->post_params['code'] = $code;

$response = $this->_send('POST', TRUE);

preg_match('/access_token=(\w+)&token_type/', $response, $match);
$this->access_token = $match[1]; //40
}

nerandu, kaip ištaisyti, gal kas žinote?

Re: Išplėstinė paieška didelėse lentelėse [atsakyti]
2016-01-19 16:27, parašė: rokasm

Dėkui, reikės pasidomėti paieškos varikliais

Re: Išplėstinė paieška didelėse lentelėse [atsakyti]
2016-01-19 12:07, parašė: Zygis_

Užklausa gali naudoti tik vieną indeksą. Jei paieškos kriterijų yra keletas, o visi jie suindeksuoti skirtinguose indeksuose - panaudos tik kažkurį vieną.

Jei turėsi daug įvairiausių indeksų - LABAI sulėtės write operacijos. Nes pasikeitus duomenims reikia VISUS susijusius indeksus atnaujint.

Jei neturėsi indeksų - bus LABAI lėtos read operacijos.

Tai pagal situaciją reikės bandyti ieškoti tinkamo balanso.

Jei visada reikės perkratyti visus duomenis, gali būti, kad labiau tinkami map reduce reikalai.

Jei daug ieškosi pagal įvestą tekstą, gali prireikti specializuotų paieškos variklių (sphinx, elasticsearch ir pan.)

Išplėstinė paieška didelėse lentelėse [atsakyti]
2016-01-19 10:42, parašė: rokasm

Sveiki,

kaip patartumėte projektuoti duombazę dideliems duomenų kiekiams (kalba eina apie 10mln ir daugiau įrašų, su iki 10tūkst. prieaugiu kasdien).
Vėliau tų duomenų atvaizdavimui reikės advanced search modulio, kuris galėtų ieškoti pagal visus duomenų lentelių stulpelius.
Nesinori, kad ta paieška suktųsi valanda laiko ir galiausiai išmestu timed out'ą.
Daryti kiekvienam stulpeliui index'ą?
Duombazė: mysql
Paieška ant php

Ieskau PHP programuotojo [atsakyti]
2016-01-15 23:43, parašė: DarIXo

Sveiki, reiktu sukurti paprasta svetaine, pagal pavizdi kuri pateiksiu, del kainos susitarsim.
Skype - darixo_333

Re: Paprastas skaičiavimas reikia pagalbos [atsakyti]
2016-01-11 09:24, parašė: l33tas

thug life

Re: Paprastas skaičiavimas reikia pagalbos [atsakyti]
2016-01-10 15:05, parašė: xayer2

Vargau, net padėkos negavau... Nu malonu :|

Re: Paprastas skaičiavimas reikia pagalbos [atsakyti]
2015-12-26 17:58, parašė: xayer2

Norinti idiegti betkokia reiksme salia, istriname:
$met = @ereg_replace("[^0-9]", "", $_POST["textblock"]);

ir sita redaguojame sitaip:
fwrite($f, "$_POST["textblock"]|$faileyraskaiciai");

--
Beje derėtų vistiek naudoti input apsaugas, nes jeigu nenaudojama, nesunkiai galima sugadinti ar pavokti scripta...

As naudoju tokius dalykus:
<?
$bad 
= @filter_input(INPUT_POST'bad'FILTER_SANITIZE_STRING);

bad -> ivedamo lauko vardas...
INPUT_POST -> kokiu tipu atsiunciama...
?>


Re: Paprastas skaičiavimas reikia pagalbos [atsakyti]
2015-12-26 17:55, parašė: xayer2

Visų pirma išsiaiškinkime ką turime:

1.Laukelį kuriame įrašome informaciją ir paspaudus mygtuką "Add text" yra įsakoma kompiuteriui įvygdyti php kodą...

2.Php kodas įrašo naujają reiškmę, tuomet tą ką įrašė nuskaito iš failo ir išspausdina...

Ko mums reikia:

1.Mum reikia redaguoti PHP koda, pirmiausiai, mum reikia nuskaitymo, nes nežinome kiek yra faile...

<?
// Open file for reading, and read the line
    
$f fopen("textfile.txt""r");

    
// Read text
    
$faileyraskaiciai fgets($f); 
    
fclose($f); 
?>


2. Tik tuomet mum reikia įrašymo... Bet įrašysime, ne tik tai ką įrašėme, o pridedami ir ankstesnę reikšmę...

<?
 
// Open the text file
    
$f fopen("textfile.txt""w");

    
// Write text
    
$met = @ereg_replace("[^0-9]"""$_POST["textblock"]);
    
fwrite($f$met+$faileyraskaiciai); 

    
// Close the text file
    
fclose($f); 
?>


3.Pagal mygtuko pavadinima gali buti ne tik skaiciai, tad deretu tai tikrinti... Tai atliekame su sia funkcija (Ji pasalina viska, palikdama tik skaicius...)
<?
$met 
= @ereg_replace("[^0-9]"""$_POST["textblock"]);
?>


Padėjo? :D

Paprastas skaičiavimas reikia pagalbos [atsakyti]
2015-12-23 13:09, parašė: dalviux

Turiu forma:

<html>
<head>
<title>Write to a text file</title>
</head>
<body>

<h1>Adding a text block to a text file:</h1>
<form action="myfile.php" method='post'>
<textarea name='textblock'></textarea>
<input type='submit' value='Add text'>
</form>

toliau PHP

<?php

    
// Open the text file
    
$f fopen("textfile.txt""w");

    
// Write text
    
fwrite($f$_POST["textblock"]); 

    
// Close the text file
    
fclose($f);
    
    
// Open file for reading, and read the line
    
$f fopen("textfile.txt""r");

    
// Read text
    
echo fgets($f); 
    
fclose($f);

    
?>



Man reikia kad ivedus i laukeli pvz. 230 spaudziu enter.
Toliau atlieka veiksmus;
Nuskaito txt faila "textfile.txt". Jame esančia reikšmę prideda mano formoje įrašytą reikšmę ir sumą įrašo vėl į tą patį textfile.txt

Niekaip nesuprantu ką čia reikia padaryti?

Re: SSL [atsakyti]
2015-12-21 12:55, parašė: Nightblade

Patarimas #1: Naudok PHP-JWT: https://github.com/firebase/php-jwt

Palyginau tavo kodą su

https://github.com/firebase/php-jwt/blob/master/src/JWT.php#L96


Pakeisk var_dump(openssl_verify($ac, $signature, $pubKeyId));

į

var_dump(openssl_verify("$headlines.$attribute", $signature, $pubKeyId, OPENSSL_ALGO_SHA256));

SSL [atsakyti]
2015-12-21 09:01, parašė: aseksas

Sveiki, turiu sertifikata .pem formatu, ir per JWT gaunu uzklausa det autentifikacijos datau taip:

<?php 

        $ac 
$_POST['access_token'];
        
$access_token base64_decode($ac);

        if(
count(explode("."$access_token)) != 3) {
            die(
'Token must have three parts separated by \'.\' characters.' );
        }

        list(
$headlines$attribute$signature) = explode("."$access_token);


        
$headlines json_decode(base64_decode($headlines));
        
$attribute json_decode(base64_decode($attribute));

        
$certificateFile fopen(APPPATH.'../cer.pem''r');

        if(!
$certificateFile) {
            die(
'Unable to find a certificate');
        }

        
$certificateContent fread($certificateFile8192);
        
$pubKeyId openssl_pkey_get_public($certificateContent);

        if (
false === $pubKeyId) {
            exit(
"error openssl_get_publickey");
        }

        
fclose($certificateFile);



    
var_dump(openssl_verify($ac$signature$pubKeyId));
    die;

?>


kaip man pavaliduot su sertifikatu kad prisijungimas tinkamas, nes openssl_verify grazina 0 ka blogai darau?

Re: Iš formos, patikra ir siuntimas į rezultatą [atsakyti]
2015-12-15 23:05, parašė: md5

Kadangi artėja Kalėdos, tai pasidalinsiu pradedantiesiems informacija. Čia tik mokomiesiems tikslams,tad šiek tiek aprašiau... GAL kas išaugs ir userio Mii

<?php

/**
 *  Tikrinsim ar reiksme egzistuoja
 * @param string $data
 * @return bool
 */
function isEmpty($data)
{
    return !empty(
$data);
}

/**
 * Tikrinsime ar reiksme yra el pastas
 * @params string $data
 * @return bool
 */
function isEmail($data)
{
    return 
filter_var($dataFILTER_VALIDATE_EMAIL);
}

#pasiimam tik $_POST kopija
$requestFields $_POST;

#cia mes apsirasome kokius laukus ir su kuo tikrinsime
#################
$filters['name'] = ['isEmpty'];
$filters['email'] = ['isEmpty''isEmail' => 'Kitoks pasto klaidos pranesimas "%s"'];
#################

#rodyti visas klaidas ar tik pirmaji kiekviena kintamajam
$options['breakOnError'] = false#on, off, 1, 0, true, false - viskas tinka
#dazniausiai naudojami klaidu pranesimu sablonai sprintf
$options['default_messages']['isEmpty'] = 'Tuscias laukelis "%s"';
$options['default_messages']['isEmail'] = 'Neteisingas el pastas "%s"';

#nekrologas
$errors = [];

$fields array_keys($filters);

#sukame cikla ir tiek
foreach ($fields as $field_name)
{
    
$value = isset($requestFields[$field_name]) ? $requestFields[$field_name] : null;

    
#sukame filtru cikla 
    
foreach ($filters[$field_name] as $filter_name => $message)
    {
        
#kad veiktu default_messages patikrinam key=>value konstrukcija
        
if (is_int($filter_name))
        {
            
$filter_name $message;
            
$message $options['default_messages'][$message];
        }

        
#tikriname musu funkcijas ar atitinka kriterijus
        
if (call_user_func($filter_name$value))
        {
            continue;
        }
        
#continue praleido - nekrologas nebetuscias
        
$errors[$field_name][$filter_name] = sprintf($message$field_name);

        if ((bool) 
$options['breakOnError'])
        {
            break;
        }
    }
}

#ziurim klaidas
print '<pre>';
print_R($errors);
print 
'</pre>';


?>


Re: Iš formos, patikra ir siuntimas į rezultatą [atsakyti]
2015-12-15 11:41, parašė: rokasm

Gautu metodu patikrinimui naudok filter_input()
http://php.net/manual/en/function.filter-input.php

Greitesnis ir kurkas patogesnis nei rasyti if else

Re: Iš formos, patikra ir siuntimas į rezultatą [atsakyti]
2015-12-14 16:47, parašė: l33tas

kazkas tokio:

<?php
if (isset($_POST['vardas1']) && !empty($_POST('vardas1')) {
    
$status true
} else {
    
$vardErr 'klaida';
    
$status false;
}
ir t.t.

O ant galo tikrinti 

if ($status) {
    
header('redirektini i kita scripta ar atlieki kazkokius loginius ve iksmus')

?>


Iš formos, patikra ir siuntimas į rezultatą [atsakyti]
2015-12-13 00:21, parašė: Mii

Sveiki,
Turiu puslapį kur formos pavidalu žmogus gali ją užpildyti ir visi duomenys patikrinami (ar vardas/pavardė raidės, ar slaptažodis su vardu,raide, ar tusčias laukelis). Jei klaidinga, prie laukelių išmeta atitinkama klaidą.

Formos pradinis laukas atrodo taip,

<form method="post" class="form-horizontal" action=" <?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?> ">


esmė tikrinama forma

if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["vardas1"])) {
$vardErr = "* Prašome įvesti vardą";
} else {
$vardas1 = testas($_POST["vardas1"]);
}
// patikrinimas ar rašomos tik raidės ir pnš
if (!preg_match("/^[a-zA-Z ]*$/", $vardas1)) {
$vardErr = "Leidžiama rašyti tik raides";
// patikrinimas ar rašomos tik raidės ir pnš
}

ir forma/puslapis "1" refrešinas su esama klaida.

Gal galėtumėt užvesti ant kelio koks geriausias būdas duomenis patikrinti, mesti klaidas (jei yra, naudoju ant puslapio "1" ir jeigu viskas gerai, tik tada siųsti į puslapį "2"?

Re: Dėl mysqli klaidos, padekit. [atsakyti]
2015-12-05 18:03, parašė: Nightblade

Viskas ten blogai - kažkas pradėjo keisti mysql funkcijas į mysqli ir nepabaigė.


Re: Dėl mysqli klaidos, padekit. [atsakyti]
2015-12-04 17:22, parašė: Smokeris

Fatal error: Using $this when not in object context in C:\wamp\www\GameEngine\Protection.php on line 24

Kas čia blogai gali būt?

Re: Dėl mysqli klaidos, padekit. [atsakyti]
2015-12-04 12:43, parašė: Nightblade

2 in 1.

1. Kodel naudoji mysql_real_escape_string?
2. mysqli_real_escape_string ( mysqli $link , string $escapestr )

Procedūriniu stiliumi array_map padaryti nepavyks.

Veikiantis variantas būtų:

<?php
$_COOKIE 
array_map([$this->connection'real_escape_string'], $_COOKIE);
?>


Bet tavo kodas turi prisijungti prie mysql prieš darant šituos array_mapus.

Re: Dėl mysqli klaidos, padekit. [atsakyti]
2015-12-03 21:14, parašė: Smokeris

Ačiū, šitas sutvarkytas. Nauja bėda, klaida:

Warning: mysqli_real_escape_string() expects exactly 2 parameters, 1 given in C:\wamp\www\GameEngine\Protection.php on line 24

Kodas:

<?php

if(isset($_POST)){
if(!isset(
$_POST['ft'])){
$_POST = @array_map('mysql_real_escape_string'$_POST);
$_POST array_map('htmlspecialchars'$_POST);
}
}
$rsargs=$_GET['rsargs'];
$_GET array_map('mysql_real_escape_string'$_GET);
$_GET array_map('htmlspecialchars'$_GET);
$_GET['rsargs']=$rsargs;
$_COOKIE array_map('mysqli_real_escape_string'$_COOKIE); //cia 24 eilute
$_COOKIE array_map('htmlspecialchars'$_COOKIE);

?>


Re: Dėl mysqli klaidos, padekit. [atsakyti]
2015-12-03 12:35, parašė: Nightblade

$this->connection nepriskirta reikšmė.

Prieš vykdant getVillageType() reikia įvykdyti metodą, kuris prisijungia prie mysql su
$this->connection = mysqli_connect();
arba $this->connection = new mysqli();

Dėl mysqli klaidos, padekit. [atsakyti]
2015-12-02 20:31, parašė: Smokeris

Sveiki, taigi bandau paleisti travian skripta. Meta daug klaidų. Ir vienoje vietoje strigau.

Meta klaidą:

Warning: mysqli_query() expects parameter 1 to be mysqli, null given in C:\wamp\www\GameEngine\Database\db_MYSQLi.php on line 679

Kodas toje vietoje:

function getVillageType($wref) {
$q = "SELECT id, fieldtype FROM " . TB_PREFIX . "wdata where id = $wref";
$result = mysqli_query($this->connection, $q);
$dbarray = mysqli_fetch_array($result, MYSQLI_BOTH);
return $dbarray['fieldtype'];
}

Tai kas galetų būt blogai čia? :O


Re: JQUERY validation [atsakyti]
2015-11-30 17:10, parašė: BigBug

Na lyg ir pats išsolvinau:

$("#product_form").validate();
var i = 0;
$("#product_form").submit(function(e) {
var is_valid_form = $("#product_form").valid();
if(is_valid_form) {
e.preventDefault();
console.log('validi forma');
show_loader();
i++;
if (i === 1) {
send_data_to_payment_processor();
window.setTimeout(function(){
i = 0;
}, 2000);
}
} else {
e.preventDefault();
console.log('form is invalid');
}
});



Easter spells out beauty, the rare beauty of new life | © php.lt komanda 2001-2015