"Undefined index" za podatke iz forme (samo na serveru, lokalno radi)

U pitanju je obična forma koja uzima podatke od korisnika. Lokalno sve radi kako treba, ali kad podignem na server poruka iz error_log fajla je: Undefined index (za sve input elemente - id, broj, duzina, sirina, napomena).

<form action="save_item_order.php" method="POST">
   <input type="hidden" name="id" id="1">
   <input type="hidden" name="broj" id="2">
   <input type="text" name="duzina" placeholder="dužina">
   <input type="text" name="sirina" placeholder="širina">
   <input type="text" name="napomena" placeholder="napomena">
<button type="submit">Save</button>

save_item_order.php

<?php 
require "../partials/connection.php";

$id = $_POST['id'];
$broj = $_POST['broj'];
$duzina = $_POST['duzina'];
$sirina = $_POST['sirina'];
$napomena = $_POST['napomena'];

$kvadratura = $duzina*$sirina/10000;
$cijena = $kvadratura * 0.5;

$sql = "INSERT INTO narudzbaArtikli VALUES ('$id','$broj','$duzina','$sirina','$kvadratura','$cijena','$napomena')";
$query = mysqli_query($db,$sql);

mysqli_close($db);
header('Location: index.php');
?>

Da li ima nešto što se može ovako “na prvu” primijetiti da bi moglo praviti problem? Ili neko iz iskustva sa PHP-om (moje je stvarno siromašno) da se sjeti nekog uobičajenog problema na serveru kojeg nema lokalno? Kakva konfigurcija ili nešto drugo?

<?php 
require "../partials/connection.php";
var_dump($_POST);
exit;

Šta kaže?

array(5) { [“id”]=> string(1) “4” [“broj”]=> string(3) “123” [“duzina”]=> string(2) “50” [“sirina”]=> string(3) “120” [“napomena”]=> string(0) “” }

Slaže se s onim što sam unio.

Ne znam ima li to ikakve veze, ali kad stavim

echo '<script type="text/javascript">alert("test");</script>';
require "../partials/connection.php";
var_dump($_POST);
exit;

dobijem ovaj alert “test”, a bez ove tvoje dvije linije ne dobijam poruku.

Kako tačno koristiš one id-jeve iz forme? Nemaju pravilne nazive:

ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods (".").

1 Like

Evo promijenio sam im naziv, a koristim ih ovdje:

<script>
document.getElementById('ls1').value = localStorage.getItem('id');
document.getElementById('ls2').value = localStorage.getItem('brojnarudzbe');
</script>

Usput, pomislio sam da možda griješim što naziv započinjem brojem, ali pošto je lokalno radilo nisam se time više bavio.

@tpojka
Hvala, drug. Ovo je pomoglo, iako ne skontah do kraja kako… :blush: