Jump to content
php.lv forumi

macamies php


matx

Recommended Posts

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

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

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

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 by matx
Link to comment
Share on other sites

×
×
  • Create New...