Topic: Meta kazkokia klaida
Undefined index kas ce galetu buti?
PHP ir MySQL programavimas, SQL užklausos, duomenų bazės, PHP scriptai, pagalba, diskusijos, pamokos ir straipsniai.
You are not logged in. Please login or register.
PHP ir MySQL → PHP → Meta kazkokia klaida
Undefined index kas ce galetu buti?
Pažodžiui: nenurodytas/neaprašytas indeksas. žmonių kalboje tai gali reikšti pvz nenurodytą masylo elemento ideksą.
Raso taip
Notice: Undefined index: submit in C:\wamp\www\Registracija\registracija.php on line 26
I stai ta eiliute if($_POST['submit']){
ka cia reiktu pakest nesuprantu?cia gal tas wamp kaltas?
$_POST yra masyvas, "submit" yra indeksas. Klaida sako, kad tokio elemento masyve nėra.
Kaip taisyti? Prieš naudojant patikrinti ar toks elementas masyve yra ir tik tada naudoti.
Hint: isset() funkcija.
tai cia gal reikia pazioj pradzioj <form method="post" action="registracija.php">
gal reikia method submit rasy?
gal reikia method submit rasy?
Na jeigu netiki, tuom ką parašiau tai labai gaila (-;
Ir speliodamas sintaksę nelabai toli nueisi. Yra specifikacija, yra protokolas, pagal juos viskas ir veikia, jeigu bandysi speėjimo metodu aiškintis HTML'ą tai bus labai labai sunku.
Tai as ir meginu kazka ismokti , jei zinociau neklausciau bet pagal tavo paaiskinima nezinau kaip tai padaryti.
Tai tame ir esmė, kad speliodamas nieko neišmoksi. Jeigu nori išmokti, tai išsikeli kažkokį tikslą ir jo sieki. Pvz HTML, PHP, MySQL, Javascript ar dar kas. Tada susirandi kažkokią knygą popierinę arba elektroniniame variante ir skaitai. čia su sąlyga, kad jau programuoti moki. Dažnai užtenka minėtų sistemų dokumentacijos, nes joje būna išdėstyta visa sintaksė su pavyzdžiais.
Dabar tavo situacijoje yra elementari problema, ar netgi dvi problemos:
a) tu nežinai, kas yra masyvas ir jo elementai;
b) tu nežinai, kaip veikia HTML formos;
Taigi tau padės:
http://www.w3schools.com/html/html_forms.asp
http://www.php.net/manual/en/language.types.array.php
http://php.net/manual/en/tutorial.forms.php
Dekui ;)
Tai pagal paskaitymus supratau kad man reikia aprasyt submiT?ar kaip?
pvz $submit = $_POST['submit'];
ar nusisneku?
bet nieko gero ir taip nebuna
jei kalbant konkrečiai apie tavo klaidą, tai jos sprendimas būtų toks:
if (isset($_POST['submit'])) { //tikrinam ar egzistuoja masyvo elementas su duotoju indeksu
//kažką darom
} else {
//darom kažką kitką
}
bet manau naudos čia nulis, nes paprasčiausiai nesupranti apie duomenų perdavimą iš formos. bandysiu paaiškinti.
pradžiai apsirašai formą (pateiksiu elementarę):
<form action="script_i_kuri_perduodam.php" method="post">
...
<input type="text" name="forma1" value="" />
<input type="text" name="forma2" value="" />
...
<input type="submit" value="siųsti" />
</form>
po formos submitinimo, jei į laukelius buvo įrašyta info, faile script_i_kuri_perduodam.php tu gauni masyvą $_POST su dviem indeksais 'forma1' ir 'forma2' kurie saugo reikšmes iš formos laukelių. tačiau tie indeksai egzistuos tik tada, jei į laukelius bus įvestos kažkokios reikšmės. šitam dalykui nustatyti ir yra naudojama funkcija isset().
jei tu apskritai nori patikrinti ar forma buvo submitinta, tuomet formoj įterpi papildomą laukelį su atributu hidden ir suteiki jam kažkokią reikšmę, tarkim <input type="hidden" value="1" name="trigger" />. tuomet submitinus tokią formą joje visada bus masyvo indeksas 'trigger' pagal kurį ir sužinai, kad forma buvo submitinta. tikiuosi bent kiek aiškiau
Dažniausiai hidden lauko nereikia, nes galima tikrinti ar buvo paspaustas submit mygtukas. Tik jam reikia priskirti pavadinima:
<input type="submit" name="mygtukas" value="Siųsti">
Tada $_POST masyve bus elementas "mygtukas", kurio reikšmė bus lygi "Siųsti". Reikia nepamiršti, kad ta reikšmė bus tik tada, kada bus paspaustas mygtukas. Jeigu forma bus submitinama kitom priemonėm (pvz JS) tada to elemento ten nerasime.
Dekui truko parasyti tik if (isset($_POST['submit'])) {
$submit = $_POST['submit'];
Edit: viskas ok.
Taip, žinom. #2 žinutėje apie tai užsiminiau, o #4 jau tiksliai parašiau ko trūksta.
PHP ir MySQL → PHP → Meta kazkokia klaida
Powered by PunBB, supported by Informer Technologies, Inc.