Autor Zpráva
Jirik1
Profil *
Ahoj, mám trochu potíže s tím, že mi nepracuje konstruktor. Když ty proměnné vytáhnu z konstruktoru a vložím do prázdna (vložím do souboru, kde je <input name="jmen" type="text" value="" />), vše funguje jak má.
Chybové hlášení říká: Notice: Undefined variable: jmen in C:\wamp64\www\oop\zobrazeni.php on line 65
require_once 'class/getyPosty.php';

class SeznamGP {

    public function __construct() {

        $gP = new GetyPosty;

        $smazatZaznam = $gP->gP(new Ochrana, 'smaz');
        $top = $gP->gP(new Ochrana, 'top');
        $jmen = $gP->gP(new Ochrana, 'jmen', 'post');
        $prijm = $gP->gP(new Ochrana, 'prijm', 'post');
        $edit = $gP->gP(new Ochrana, 'edit');
        $zP = $gP->gP(new Ochrana, 'zP');
        $select = $gP->gP(new Ochrana, 'select');

    }

}

new SeznamGP;

Soubor getyPosty:

<?php

require_once 'ochrana.php';

class GetyPosty extends Ochrana {

    public function gP(Ochrana $och, $pattern, $type = 'get') {

        if ($type == 'get') {
            $ochranaResult = (!isset($_GET[$pattern])) ? $_GET[$pattern] = NULL : $och->sec($_GET[$pattern]);
            return $ochranaResult;
        }

        if ($type == 'post') {
            $ochranaResult = (!isset($_POST[$pattern])) ? $_POST[$pattern] = NULL : $och->sec($_POST[$pattern]);
            return $ochranaResult;
        }

    }

}
Kajman
Profil
Nejsem si jistý, který z těch poslaných kódů je ze souboru zobrazeni.php a který řádek odpovídá tomu řádku 65, ale proměnná $jmen (řádek 11) je jen lokální proměnná v metodě __construct a není možné ji použít odjinud.
Jirik1
Profil *
Ten prvni je zobrazeni.
Keeehi
Profil
To by odpovídalo zřejmě tomu co psal Kajman.
Je potřeba to vložit do atributu objektu, aby jsi s tím mohl pracovat jinde.
$this->smazatZaznam = $gP->gP(new Ochrana, 'smaz');
Ostatní řádky si uprav stejně.
Jirik1
Profil *
Nefunguje mi to. Funguje to jen pokud to je natvrdo přímo na stránce:

<?php

require_once 'class/pdoInsert.php';
require_once 'class/pdoSelect.php';
require_once 'class/pdoDelete.php';
require_once 'class/pdoUpdate.php';
require_once 'class/getyPosty.php';

$gP = new GetyPosty;
$smazatZaznam = $gP->gP(new Ochrana, 'smaz');
$top = $gP->gP(new Ochrana, 'top');
$jmen = $gP->gP(new Ochrana, 'jmen', 'post');
$prijm = $gP->gP(new Ochrana, 'prijm', 'post');
$edit = $gP->gP(new Ochrana, 'edit');
$zP = $gP->gP(new Ochrana, 'zP');
$select = $gP->gP(new Ochrana, 'select');


if (isset($_GET['smaz'])) {
    $delete = new Delete;
    $delete->smazani($smazatZaznam);
    header("Location:zobrazeni");
}

if (isset($_GET['top'])) {
    $toping = new Update;
    $toping->updateTop($top);
    header("Location:zobrazeni");
}

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0