Dobrý deň, učim sa programovať v PHP. A skušam testovať na svojom PC cez xampp a vypisujemi upozornenie
Notice: Trying to access array offset on value of type null in C:\xampp\htdocs\funkcie\form\Sablona.php on line 31
Notice: Undefined variable: data in C:\xampp\htdocs\funkcie\form\Sablona.php on line 18
Začal som kodovať Sablona.php
<?php
include_once __DIR__."/../db/MySQL.php";
include_once __DIR__."/../form/Form.php";
class Sablona{
public function __construct(){
session_start();
$this->Form = new Form;
$this->MySQL = new MySQL;
$form = null;
}
private function seo(){
$form = $this->Form->nadpis('Seo');
$form .= $this->Form->input('data[4]','Title',null, null,$data[4],1);
$form .= $this->Form->input('data[5]','Kĺúčové slová',null, null,$data[5],0);
$form .= $this->Form->input('data[6]','Krátky popis','Je to informácia o stránke, ktorú vyhľadávače niekedy používajú ako popis odkazu vo výsledkoch hľadania.', null,$data[6],1);
$form .= $this->Form->input('data[7]','Robot', null, 'index, follow',$data[7],1);
$form .= $this->Form->input('data[8]','Google Robot', null, 'snippet, archive', $data[8],1);
$form .= $this->Form->input('data[9]','Site name (Facebook)',null, null, $data[9],1);
return $form;
}
public function blog($data){
$form = $this->Form->nadpis('Článok');
$form .= $this->Form->input('data[0]','Názov článku',null, null,$data[0],1);
$form .= $this->Form->select('data[1]','Kategória článku','Pod,aký projekt sa ma zobrazovať článok', array("a" => "1"), $data[1],1);
$form .= $this->Form->textarea('data[2]','Uvod','Krátky úvod pre článok odpo. max 400 znakov.', $data[2],1);
$form .= $this->Form->textarea('data[3]','Článok',null,$data[3],1);
$form .= Sablona::seo();
$form .= $this->Form->nadpis('Obrázok');
$form .= $this->Form->file('file','Hlavný obrázok','Max 2MB.',1);
$form .= $this->Form->nadpis('Zobrazovať');
$form .= $this->Form->select('data[10]','Aktívna stránka','Stránka sa ma zobrazovať hneď na Vašej webstránke?',array("1" => "Áno", "0" => "Nie"),$data[10],1);
$form .= $this->Form->time('data[11]',$data[11]);
return $form;
}
}
$Sablona = new Sablona;
echo $Sablona->blog(null);
?>
a Form.php
<?php
class Form{
private function povinne($povinne){
if($povinne == 1){
$povinne = '*';
$povinneInput = 'required';
}else{
$povinne = null;
$povinneInput = null;
}
return array($povinne, $povinneInput);
}
private function default($default,$nazov){
if(empty($default)){
$default = $nazov;
}else{
$default = $default;
}
return $default;
}
public function nadpis($nadpis){
return '<div class="row form-group">
<div class="col col-md-3">
<label for="text-input" class=" form-control-label">'.$nadpis.'</label>
</div>
<div class="col-12 col-md-9">
</div>
</div>';
}
public function input($name,$nazov,$popis,$default,$data,$povinne){
list($povinne, $povinneInput) = Form::povinne($povinne);
$default = Form::default($default,$nazov);
return '<div class="row form-group">
<div class="col col-md-3">
<label for="text-input" class=" form-control-label">'.$nazov.': '.$povinne.'</label>
</div>
<div class="col-12 col-md-9">
<input type="text" id="text-input" name="'.$name.'" placeholder="'.$default.'" class="form-control" value="'.$data.'" '.$povinneInput.'>
<small class="form-text text-muted">'.$popis.'</small>
</div>
</div>';
}
public function time($name,$data){
if(empty($data)){
$data = date('Y-m-d');
}
return '<div class="row form-group">
<div class="col-4 col-md-4">
<label for="text-input" class=" form-control-label">Dátum:</label>
</div>
<div class="col-8 col-md-8">
<input class="form-control" name="'.$name.'" type="date" value="'.$data.'" id="example-date-input">
</div>
</div>';
}
public function select($name,$nazov,$popis,$moznosti,$data,$povinne){
$select = null;
list($povinne, $povinneInput) = Form::povinne($povinne);
foreach($moznosti as $key => $value){
if($data == $key){
$selected = 'selected';
}else{
$selected = null;
}
$select .= '<option value="'.$key.'" '.$selected.'>'.$value.'</option>';
}
return '<div class="row form-group">
<div class="col col-md-3">
<label for="text-input" class=" form-control-label">'.$nazov.': '.$povinne.'</label>
</div>
<div class="col-12 col-md-9">
<select name="'.$name.'" id="selectLg" class="form-control" '.$povinneInput.'>
<option value="">--------</option>
'.$select.'
</select>
<small class="form-text text-muted">'.$popis.'</small>
</div>
</div>';
}
public function file(){
}
public function textarea(){
}
}
?>
Viete mi poradiť čo robim zle?