matx Posted October 31, 2005 Report Share Posted October 31, 2005 lieta taada, saaku maacities php, no ziiverta graamatinjas! droshibas globalji ir iesleegti, tadelj sanaak ka vajag nedaudz maniit to visu padariishanu! taatad esmu ticis liidz 3 nodaljai, respektiivi par formaam! Lieta taada uztaisu 3 php failinjus 1 ievadaam informaciju: shaadu 2 ievadaam informaaciju: shaadu 3. ievadam informaciju: shaadu viss jau buutu tiiri ok! tachu ievadot informaaciju, tiekot liidz linkiem... tad uzspiezjot uz tiem, man izmet ko taadu Notice: Undefined index: nodarb in c:\web\www\php\1\get\parvd.php on line 10 Notice: Undefined index: cits in c:\web\www\php\1\get\parvd.php on line 11 pirmajaa gadiijumaa, un ko liidziigu abos parejos gadijumos, respektiivi, cik noprotu vinjam nevajag lai es defineetu liekos mainiigos, kurus vins neizmanto kad uzspiezj uz shii te linka, tachu ja es neizmantoshu liekos mainiigos, tad vins nestraadaas uz abiem parejiem linkiem! Varbuut varat pateikt kur ir vaina? vai kaa to dariit pareizaak? Link to comment Share on other sites More sharing options...
php_Stopp Posted October 31, 2005 Report Share Posted October 31, 2005 kad tu accesē failu parvd.php, teu urlī jābūt norādītām 4 mainīgo vērtībām, kas urlī ir - vards, uzvards, nodarb, cits. tātad urlim jābūt šādam: parvd.php?vards=piemers&uzvards=piemers&nodarb=piemers&cits=piemers piemērs: parvd.php?vards=Janis&uzvards=Zagkaste&nodarb=desu+griesana&cits=bmx kļūdu tev izmeta tāpēc, ka nebiji urlī norādījis nodarb un cits vērtības. 8. rindiņu izdevīgāk rakstīt nevis $vards = $_GET['vards']; bet if(isset($_GET['vards'])) $vards=$_GET['vards']; else $vards='nav noraadiits'; un tāpat arī 9., 10. un 11. rindiņas. tad tev kļūdu paziņojumus neizmetīs, ja nebūs norādīta kāda vērtība, pretēji tevis iepostotajam kodam. Link to comment Share on other sites More sharing options...
Kaklz Posted October 31, 2005 Report Share Posted October 31, 2005 Notice: Undefined index: nodarb in c:\web\www\php\1\get\parvd.php on line 10 Notice: Undefined index: cits in c:\web\www\php\1\get\parvd.php on line 11 Varbuut varat pateikt kur ir vaina? vai kaa to dariit pareizaak? Vaina patiesībā nav nekāda. Kļūdām ir iespējami dažādi līmeņi. Notice līmeņa kļūdas - tās patiesībā nav diez ko nopietnas kļūdas, bet gan tikai paziņojumi par to, ka kāds mainīgais nav definēts. Daļā gadījumu par to var neuztraukties, taču ir reizes, kad tās ir jāņem vērā. Vienkāršākais veids (kuru gan neiesaku) ir vienkārši atslēgt Notice līmeņa kļūdu rādīšanu, izmantojot šādu funkciju: error_reporting(E_ALL ^ E_NOTICE); Iemesls, kāpēc tev vispār šādus paziņojumus rāda ir šāds. Tev ir kods: $vards = $_GET ['vards']; $uzvards = $_GET ['uzvards']; $nodarb = $_GET ['nodarb']; $cits = $_GET ['cits']; echo ("<a href=\"parvd.php?vards=$vards&uzvards=$uzvards&id=1\">pers inf</a> <br />"); echo ("<a href=\"parvd.php?nodarb=$nodarb&id=2\">nodarboshanaas</a> <br />"); echo ("<a href=\"parvd.php?cits=$cits&id=3\">cits</a> <br />"); Ja uzmanīgi ieskatīsies, tad teiksim pirmajā linkā tu nepadod parametru 'nodarb' un 'cits'. bet pie skripta izpildes, tu šos mainīgos tomēr centies nolasīt ar attiecīgi $nodarb = $_GET['nodarb'] un $cits = $_GET['cits']. Līdzīgi ir arī ar otrajiem diviem linkiem, taču uz tiem uzspiežot tev parādīs paziņojumu par citiem nedefinētiem mainīgajiem. Viens no variantiem, kā to var apiet, ir mainīgajiem vērtības piešķirt pēc shēmas: if (isset($_GET['nodarb'])){ $nodarb = $_GET['nodarb']; }else{ $nodarb = ''; } (tas ir, pirms mainīgā vērtības nolasīšanas, pārliecināties par to, vai mainīgais vispār eksistē) Varbūt tas liksies lieki, bet tas ir viens no variantiem, kā izvairīties no šādu paziņojumu parādīšanās. Kad būsi apguvis mazliet vairāk, to pašu jau rakstīsi šādi: $nodarb = (isset($_GET['nodarb']) ? $_GET['nodarb'] : ''); Link to comment Share on other sites More sharing options...
matx Posted November 1, 2005 Author Report Share Posted November 1, 2005 (edited) paldies! viss sanaaca, tikai veel viens jautaajums shis te variants if(isset($_GET['vards'])) $vards=$_GET['vards']; else $vards='nav noraadiits'; man nedereeja! respektiivi, ja esneierakstu vaardu, tad man vienkarshi izmet vinja vietaa tukshumu! es nedaudz parveidoju un uzraxtiiju shaadi if($_GET ['vards'] == '') { $vards = 'varda nav'; } elseif($_GET ['vards']) { $vards = $_GET ['vards']; } kaa ir ar to isset? tas nekas ka tagad vinja tur nav? varbuut glups jautajums ir, tachu veel pie php.net netieku, buutu palasiijis par to... apsolu liidz tikshu pie arzemju trafika, taa uzreiz uzmaniigi izlasiishu, vienkarshi gribas aatraak to visu uzzinaat! Piebilde: laikam jau shaadi nevarees, atkal raadaas Undefined index ! tachu arii tas pirmais koods nedereeja... Edited November 1, 2005 by matx Link to comment Share on other sites More sharing options...
bubu Posted November 1, 2005 Report Share Posted November 1, 2005 Tak domā ar galvu: if (isset($_GET['vards'])) { $vards= $_GET['vards']; if ($vards == '') $vards = 'ievadīts tukšs'; } else { $vards='nav noraadiits'; } Link to comment Share on other sites More sharing options...
[Ya] Posted November 1, 2005 Report Share Posted November 1, 2005 pateikšu tikai vienu, nevajag atstarpes starp $_GET un [index] Link to comment Share on other sites More sharing options...
php_Stopp Posted November 1, 2005 Report Share Posted November 1, 2005 ar isset (šajā gadījumā) tu pārbaudi, vai adresē ir noteikta vards vērtība. ja būs 'fails.php?vards' vai 'fails.php?vards=', tad vērtība būs noteikta kā tukšums. Link to comment Share on other sites More sharing options...
Recommended Posts