Jump to content
php.lv forumi

Profesional PHP programming


Raivis.purins

Recommended Posts

<html>
<head></head>
<body>
<form>
please input your name here:<br>
<input type="text" name="username"><br><br>
<input type=submit value="nospied">
</form>
<br><br>
you typed:
<?php
echo($username);
?>
</body>
</html>

 

Sveiki, esmu Nezinītis no mēness, kurš uzsācis apmācību no grāmatas. Tad nu jautājums ir sekojošs, kur ir kļūda, es saprotu ka 12 tajā rindā, tikai grāmatā ir rakstīts, ka pēc šī koda es dabūšu echo to vārdu, kuru būšu ierakstījis formā. Tikai par nožēlu saņemu erroru, ka es neesot nodefinējis pareizi usernamu.

Notice: Undefined variable: username in C:\wamp\www\index.php on line 12

 

Idejas?

Link to comment
Share on other sites

Grāmatasprāt ir ieslēgti tā sauktie globālie mainīgi (global variables), kurus slēgt iekšā ir nedroša prakse un jaunākās PHP versijas no tiem vispār atsakās.

 

echo($username) vietā strādās echo($REQUEST['username'])

Edited by sarcasm
Link to comment
Share on other sites

Grāmatasprāt ir ieslēgti tā sauktie globālie mainīgi (global variables), kurus slēgt iekšā ir nedroša prakse un jaunākās PHP versijas no tiem vispār atsakās.

 

echo($username) vietā strādās echo($REQUEST['username'])

 

Danke šūn, es laikam būšu par vienu solīti tuvāk izglītotībai.

Link to comment
Share on other sites

Grāmatasprāt ir ieslēgti tā sauktie globālie mainīgi (global variables), kurus slēgt iekšā ir nedroša prakse un jaunākās PHP versijas no tiem vispār atsakās.

 

echo($username) vietā strādās echo($REQUEST['username'])

 

tagad problēma ir arī ar šo!

 

Notice: Undefined variable: REQUEST in C:\wamp\www\index.php on line 12

Link to comment
Share on other sites

if(isset($username))
echo $username;

 

vai arī iekš php.ini izslēdz notices

 

Es būt pateicīgs arī par skaidroju, bet nu tas būtu mazākais, izmantojot tevis doto kodu, saskāros ar nākamo problēmu. pēc you typed: nerāda vairs neko. Varbūt var arī paskaidrot mazliet. Pateicos!

Link to comment
Share on other sites

Pārbauda vai mainīgajam ir piešķirta vērtība, tavā gadījumā nav, arī ar to notice visu vajadzēja rādīt...

 

Tavā gadījumā vajadzēja būt apmēram tā:

if(isset($_POST))
echo $_POST['username'];

Edited by rausis
Link to comment
Share on other sites

echo($username) vietā strādās echo($REQUEST['username'])

Šajā vietā bija ieviesusies kļūdiņa - nevis $REQUEST, bet gan $_REQUEST --> echo($_REQUEST['username']);

 

Kuras rezultātā radās šī problēma:

tagad problēma ir arī ar šo!

 

Notice: Undefined variable: REQUEST in C:\wamp\www\index.php on line 12

 

Te gan ir jāpaskaidro sīkāk:

$_REQUEST sevī apvieno gan $_GET masīvu, gan $_POST masīvu, tādēļ to mēdz izmantot, kad nav zināms ar kādu metodi tiks saņemti dati no formas:

Ja ar GET - <form method="get"> vai URL: lapa.php?mainigais=vertiba

Ja ar POST - <form method="post">

Tavā gadījumā nebija norādīta metode un pēc noklusējuma pārlūks izmanto GET (taču es kā īstens paranojiķis nepaļautos, ka neviens plānprātīgs pārlūku arhitekts kādreiz neizdomās, ka jābūt citādi - tādēļ vienmēr formām norādu metodi).

 

Bonusa jautājums tiem, kas mācās: ko izdrukās uz ekrāna pēc submit pogas nospiešanas?

<?php //pieņemsim, ka šis fails saucas index.php
$mainigais1 = $_REQUEST['main'];
$mainigais2 = $_POST['main'];
$mainigais3 = $_GET['main'];
echo "Mainīgais1: $mainigais1, Mainīgais2: $mainigais2, Mainīgais3: $mainigais3";
?>
<form method="post" action="index.php?main=suns">
<input type="hidden" name="main" value="kaķis">
<input type="submit">

Edited by Aleksejs
Link to comment
Share on other sites

Par bonusu jautājumu, loģiski būtu, ja izdrukātu:

Mainīgais1: kaķis, Mainīgais2: kaķis, Mainīgais3: suns

 

Tas ir tikai mans minējums. Es nelabošu šo savu ziņojumu, lai nav pārpratumu. Tagad izmēģināšu savu localhost un paskatīšos kāda ir īstā atbilde un vai tā sakrīt ar manu šo minējumu...

Link to comment
Share on other sites

×
×
  • Create New...