41

(17 replies, posted in PHP)

md5 wrote:

gal nenaudojai redirectintame faile session_start() ?

Kodo prasme baisiai ir sudėtingai aprašei visą veiksmą. Tau klasės čia nereikalingos. Visą tai gali 5x sutrumpinti visom prasmėm.
viena f-ja turi atlikti tik vieną veiksmą, o pas tave isValid atlieka 5 veiksmus, IP, kaina.
klasėse "global" griežtai draudžiama naudoti, kitaip kam tas klases kurti.
Klasės tarpusavyje nesusietos, "global" nesiskaito.
php versijos irgi tobulėja, tad laikas atsinaujinti
http://php.net/manual/en/language.oop5.php
Jeigu jau lietuviškai kodini, tai prie ko tas isValid() ?
Nekodink lietuviškai, kitaip tavo rašto niekas nesupras.

Pradėk nuo paprastesnių dalykų.

nu jo ieskau po "sikna smegenu" kada atsakymas toks paprastas 'session_start()' :)
isValid tai mano viena is dazniausiu naudojamu funkciju kad supaprastinciau sau darba i ja idejau switch.
  na reiks pasiaiskint kodel jau tas global uzdraustas.
   gal galima koki pavyzdi kaip yra teisingai susiejamos klases?
    Pradėk nuo paprastesnių dalykų.
     Visa sita reikala turiu pasirases be klasiu. Kuris man atrodo paprastesnis ir trumpesnis. Bet visada norejau ismokti bent jau minimaliai dirbti su klasemis, todel paciam buna paprasciau viska suvest i viena taska aprasant f-cijas ir clases lietuviskai.

42

(17 replies, posted in PHP)

na gal but ir du kart atsakyta bet sesijos registravimu atveju nepadejo :)

t.y. sesija tarsi uzregistruojama kaip paprastas kintamasis po redirekto su header`iu padarius echo atsakymo is sesijos negaunu.

43

(17 replies, posted in PHP)

minde wrote:
Donatas wrote:

nu pas mane kitaip yra

Kaip dar kitaip? Negali būt kitaip.

nu man taip gaunasi kad pereinant is anglisko zargono prie lietuvisko zargono reikia angliska zargona pritapatint lietuviskam :)
ir kol neisisavinu katras lietuviskas kintamsis pritapatinamas angliskajam tol gaunasi barjeras :)
nu vienu zodziu nenukrypstam nuo temos...

44

(17 replies, posted in PHP)

minde wrote:

O dėl kalbos tai tiek anglų tiek lietuvių kalbose viskas tas pats:
klasė -> class
objektas -> object
metodas -> method

nu pas mane kitaip yra kazkaip dirbdamas anglijoje kad geriau ismokciau anglu kalba isigudrinau ir galvot angliskai :)
tai siek tiek padejo :)
tai dabar grizus i lietuva jei skaitau angliskai kad geriau suprasciau ir galvoju angliskai :)
ir visumoje gaunasi man toks barjeras tarp tos gimtosios lietuviu ir anglu :)

45

(17 replies, posted in PHP)

perkelus viska kur reikia viskas suveikia kuo puikiausiai.
bet dabar dar vienas klausima

viskas suplanuota daugmas taip
veliau i sita visa reikala noresiu deti ir kukiu apdorojima todel po submit darau

<form action="procesasdr.php" method="post">

t.y. po submit persikeliu i procesasdr.php faila ten apdoroju duomenis ir per header("Location: ./askdr.php"); gryztu atgal klases jokiu echo nedaro kad galeciau apdorot kukius kada noriu.

jeigu visus failus dar suincliudinu i askdr.php ir isimu header("Location: ./askdr.php"); kodas suveikia ir jei pildant forma buvo ivesta kazkas ne taip padaro echo ir apraso klaidas.

bet jeigu keliuosi i procesasdr.php tada iskyla nesklandumai

kazkodel neuzregistruoja sesijos. t.y.

        if ($post == 1) {
            $_SESSION['klaidu_array'] = $klaida->KlaiduArray();
            header("Location: ./askdr.php");    
        }

koda pakeiciu i

        if ($post == 1) {
            $_SESSION['klaidu_array'] = $klaida->KlaiduArray();
            echo  $_SESSION['klaidu_array']['elps'];
        }

gaunu atsakyma '* Neivestas El. pašto adresas' reiskesi array pasima

bet jeigu grazinu header atgal tai yra po submito apdoroje duomenis ir nustato klaidas faile procesasdr.php ir per  header("Location: ./askdr.php");  gryzta atgal i askdr.php

askdr.php faile padarius

 <?  echo  $_SESSION['klaidu_array']['elps']; ?>

negaunu jokio atsakymo

tarsi clase is savo ribu neisleidzia uzregistruotos sesijos.

46

(17 replies, posted in PHP)

dabar jau vienas dalykas aiskiau jei teisingai supratau visada klase aprasau po jos sukonstravimo t.y.
$tikrinimas = new DuomenuTikrinimas; daleiskim dedu po

class DuomenuTikrinimas {

kodas

}
$tikrinimas = new DuomenuTikrinimas;

47

(17 replies, posted in PHP)

man dar reikia priprast prie to kaip vadina angliskai ir kur kaip ka vadinate lietuviskai :)

48

(17 replies, posted in PHP)

minde wrote:
Donatas wrote:

kodas suveikia kuo puikiausiai.

O kodel nesuveikia klases viduje?

Pirmiausia klases aprašyk PRIEš jų naudojimą.

Antras dalykas, kad tuo metu, kai yra kuriamas objektas $procesas ($procesas = new Procesas;),
ir vykdomas tavo kodas su klaida, dar neegzistuoja objektas $tikrinimas (nes jis sukuriamas vėliau). Todėl problema čia ta, kad tu kreipiesi į objektą, kurio dar nesukūrei.

tai jeigu teisingai supratau class aprasau stai siuo sakiniu
$tikrinimas = new DuomenuTikrinimas;

tai kad jis butu aprasytas pries ivygdyma idesiu ji i includinama faila?

49

(17 replies, posted in PHP)

ok pateikiu klases nes kolkas is manualo skaitymo man cia tamsus miskas tame konstravime :)

pirmas faile askdr.php yra forma anksciau mineta kad butu nuosekliau sudesiu viska i viena zinute.

 
<? include ('./procesasdr.php'); ?>
<form action="procesasdr.php" method="post">

is formos gaunu duomenis $_POST['elps'], $_POST['vardas'], $_POST['gyvunas'], $_POST['veisle'], $_POST['klausimas'], $_POST['saugumas']
jei buvo submitas ir rastos klaidos jas atvaizduoju per stai toki koda

 <? echo $klaida->klaida("elps"); ?>

po submite einu i procesas.php faila ten kodas

<?php

include ('./apdorojimai/klaidos.php');
include ('./apdorojimai/tikrinimas.php');
include ('../function.php');

$procesas = new Procesas;
$tikrinimas = new DuomenuTikrinimas;
$klaida     = new KlaiduApdorojimas;



class Procesas {
    
    function Procesas() {
        if ($_POST['drirasas']) {
        $this->KlausimoIrasymas($_POST['elps'], $_POST['vardas'], $_POST['gyvunas'], $_POST['veisle'], $_POST['klausimas'], $_POST['saugumas']);
        }
    }

    function KlausimoIrasymas ($elps, $vardas, $gyvunas, $veisle, $klausimas, $saugumas) {
        global $tikrinimas, $klaida;
        $post = $tikrinimas->registracija($elps, $vardas, $gyvunas, $veisle, $klausimas, $saugumas);
        if ($post == 1) {
            $_SESSION['klaidu_array'] = $klaida->KlaiduArray();
            header("Location: ./askdr.php");    
        }
    }
}

?>

sitam faile man ivyksta klaida Fatal error: Call to a member function registracija() on a non-object /home/... line 24
24 eilute yra

  $post = $tikrinimas->registracija($elps, $vardas, $gyvunas, $veisle, $klausimas, $saugumas);

jei klaidos nemestu turetu eiti i faila include ('./apdorojimai/tikrinimas.php');

ir ten yra stai toks kodas

class DuomenuTikrinimas {
    
    function registracija($kelp, $kvardas, $kgyvunas, $kveisle, $kklausimas, $ksaugumas) {
        global $klaida;
        $laukas = "elps";
        if (!$kelp) {
            $klaida->KlaiduNustatymas($laukas, "* Neivestas El. pašto adresas");
        }
        else { 
            if(!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$", $kelp)) { 
            $klaida->KlaiduNustatymas($laukas, "* Neteisingai įvestas Elektroninis paštas");            
            }
        }
    
        $laukas = "vardas";
        if (!$kvardas) {
            $klaida->KlaiduNustatymas($laukas, "* Neįvestas vardas");
        }
        else {
            if (!isValid("User",$kvardas)) { 
            $klaida->KlaiduNustatymas($laukas, "* Vardą gali sudaryti raidės nuo a-A iki z-Z ir/arba skaičiai nuo 0 iki 9");
            }
        }

ir taip toliau panasiai toks pat kodas kol sutikrinu visus laukus.

kai sutikrininau paskaiciuoju kiek yra klaidu

        if ($klaida->yraklaida > 0) {
            return 1;
        }
}

klaidos apdorojamos klaidos.php faile

ten kodas

class KlaiduApdorojimas {
    var $klaidos = array();
    var $yraklaida; 
    
    function KlaiduApdorojimas () {
        if (isset($_SESSION['klaidu_array'])) {
            $this->klaidos = $_SESSION['klaidu_array'];
        }
    }
    
    function KlaiduNustatymas($laukas, $zinute) {
        $this->klaidos[$laukas] = $zinute;
        $this->yraklaida       = count($this->klaidos);
    }    

    function klaida($laukas) {
        if (array_key_exists($laukas,$this->klaidos)) {
            return "<br><font size=\"2\" color=\"#ff0000\">".$this->klaidos[$laukas]."</font>";
        } else {
            return "";
        }        
    }
    function KlaiduArray() {
        return $this->klaidos;
    }
}

function.php ten sudetos mano pagrindines funkcijos. naudoju tikrinimui stai sita funkcija

function isValid($type,$var) { 
 $valid = false; 
 switch ($type) { 
  case "IP": 
   if (ereg('^([0-9]{1,3}\.){3}[0-9]{1,3}$',$var)) { 
    $valid = true; 
   } 
   break; 
  case "URL": 
   if (ereg("^[a-zA-Z0-9\-\.]+\.(com|org|net|mil|edu)$",$var)) { 
    $valid = true; 
   } 
   break; 
  case "User": 
   if (ereg("^[a-žA-ž0-9_ ]{2,30}$",$var)) { 
    $valid = true; 
   } 
   break;  
  case "telnr": 
   if (ereg("^[+]{1}[0-9]{3,12}$", $var)) { 
    $valid = true; 
   } 
   break;
  case "kaina": 
   if (preg_match("/^([0-9]){1,10}$/", $var)) { 
    $valid = true; 
   } 
   break;
 } 
 return $valid; 
}

visas kodas cia

dabar daugmas jei turit kokiu patarimu kad uzvest ant kelio kaip daryt maloniai laukiu :)
jei kas neaisku klauskit bandysiu isaiskint kaip ka noriu padaryt

50

(17 replies, posted in PHP)

Sveiki.

<form action="procesasdr.php" method="post">

formoje po submit gaunu duomenis

$_POST['elps'], $_POST['vardas'], $_POST['gyvunas'], $_POST['veisle'], $_POST['klausimas'], $_POST['saugumas']

ir einu i procesasdr.php

ten turiu koda

include ('./apdorojimai/klaidos.php');
include ('./apdorojimai/tikrinimas.php');


$procesas = new Procesas;
$tikrinimas = new DuomenuTikrinimas;
$klaida     = new KlaiduApdorojimas;



class Procesas {
    
    function Procesas() {
        if ($_POST['drirasas']) {
        $this->KlausimoIrasymas($_POST['elps'], $_POST['vardas'], $_POST['gyvunas'], $_POST['veisle'], $_POST['klausimas'], $_POST['saugumas']);
        }
    }

    function KlausimoIrasymas ($elps, $vardas, $gyvunas, $veisle, $klausimas, $saugumas) {
        global $tikrinimas, $klaida;
        $post = $tikrinimas->registracija($elps, $vardas, $gyvunas, $veisle, $klausimas, $saugumas);
        if ($post == 1) {
            $_SESSION['klaidu_array'] = $klaida->KlaiduArray();
            header("Location: ./askdr.php");    
        }
    }
}

ivygdzius tai gaunu errora

Fatal error: Call to a member function registracija() on a non-object /home/... line 24
24 eilute yra

 $post = $tikrinimas->registracija($elps, $vardas, $gyvunas, $veisle, $klausimas, $saugumas);

jei koda iskeliu is klases

if ($_POST['drirasas']) {
    $procesas->KlausimoIrasymas($_POST['elps'], $_POST['vardas'], $_POST['gyvunas'], $_POST['veisle'], $_POST['klausimas'], $_POST['saugumas']);
        }
class Procesas { ...

kodas suveikia kuo puikiausiai.

O kodel nesuveikia klases viduje?

51

(9 replies, posted in PHP)

<?php
setlocale(LC_ALL, 'lt_LT');
$date = strftime('%A %d %B %Y', time());
print iconv('cp1257', 'utf-8', $date);
?>

isveda i ekrana

Trečiadienis 02 kovo 2011

dabar tik dasilo kada keicia i lietuviu... galvojau pakeisiu locale... o dar reik per strftime() funkcija perleisti :)

ir pas xeranas viena klaidute yra 'LC_ALL' negali buti stringu

dekui

52

(9 replies, posted in PHP)

'On Windows, setlocale(LC_ALL, '') sets the locale names from the system's regional/language settings (accessible via Control Panel)' cia windows platformai o linux nzn is kur ima

nu ir pavyzdys yra

<?php
/* Set locale to Dutch */
setlocale(LC_ALL, 'nl_NL');

/* Output: vrijdag 22 december 1978 */
echo strftime("%A %e %B %Y", mktime(0, 0, 0, 12, 22, 1978));

?>

http://translate.google.lt/translate_t? … lt|vrijdag

panasu kad turetu atvaizduot ir lietuviskai? tik gal ko nezinau

53

(9 replies, posted in PHP)

xeranas wrote:

čia daugiau info: http://php.net/manual/en/function.setlocale.php

jau skaiciau ten...

dekui uz pagala kita kart parasykit www.google.lt cia dar daugiau info...

54

(9 replies, posted in PHP)

kad nera ten nieko parasyta apietai ko reikia iskyrus ruso rasyta funkciju kratinys kuris keicia pats visu dienu ir menesiu pavadinimus.
Tai kam apkraut tinklapi kodu jei tai imanoma padaryt ir neapkraunant?

55

(24 replies, posted in PHP)

Min2liz i tu pabandyk

<?
$test = 'ąčęėįšųūž';
echo substr($test,0,5);
?>

nors imant duomenis ne is mysql duomenu bazes nebandziau.

56

(24 replies, posted in PHP)

man ir ta pati problema. Paimu texta is duomu bazes padarai substr ir jei paskutine raide lietuviska 'ąčęėįšųūž' meta klaustuka. bet tik paskutiniai raidiai. Kitas lietuviskas raides esanciais texte pries pabaiga rodo normaliai :)

Sprendimo kaip istaisyti tai neradau. Tai sudejau lietuviskas raides i array ir paskutine raide tikrinu ar ji lietuviska ar ne jei lietuviska pridedu 10 zenklu ir tikrinu:)

57

(9 replies, posted in PHP)

Sveiki.

Bandau date() isvesti lietuviskai bet kotai nepavyksta.

naudoju

<?
setlocale(LC_ALL, 'lt');
echo date('Y-M-D h:i:s');
?>

bandziau vietoje lt ivesti ir 1063

radau dar papildoma koda

<?php 
$language = 'lt'; 
putenv("LANG=$language"); 
setlocale(LC_ALL, $language); 
?>

gaunu atsakyma angliskai abiem atvejais. 2011-Mar-Wed 08:50:17
gal dar kokiu pasiulymu turit?

58

(2 replies, posted in PHP)

del klavisas padeda... jei tai windows sistema ir nzn kur stovi turi paieska savo sistemoje...

ir prie ko cia php?

59

(13 replies, posted in PHP)

i image.php failiuka idedu $session_start

bandau per file.php faila ziureti kas gaunasi :)
o ten vel chiudas
pradeda atvaizduoti $_SESSION[sk3] bet paveluotai.

pvz paleidau file.php faila gavau reiksmes 4 + 5 = ?
$_SESSION[sk3] per echo nerodo
tada refreshinu langa gaunu reiksmes 9 + 4 = ?
ir isveda $_SESSION[sk3] reiksme 9 ankstesne :)

60

(13 replies, posted in PHP)

kokios konstantos?
galiu sudet kabutes esmes nepakeis

is to pavyzdzio uzregistruotus kintamuosius atvaizduoja per echo.