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