1

ここに質問があります:学生に関するいくつかのデータを入力した後、ページの上面にそれらを印刷する必要があります(フォーム1)。1人の学生のデータを印刷できましたが、$ studenti配列にデータを格納できないため、すべての学生のデータが印刷されます。これが私が使用したコードです(私は言及するのを忘れました、私はこれのためにセッションを使用する必要があります):

    <?php
session_start();

$_SESSION['aindex'] = $_POST['index'];
$_SESSION['aime']= $_POST['ime'];
$_SESSION['aprosek'] = $_POST['prosek'];

//if ($index != "" && $ime != "" && $prosek !="")
//{
// = $index;
 //= $ime;
 //=$prosek;

//}

//print ($_SESSION['aindex']);
function inicijalizacija()
{
    $studenti = array ();
    $ind = $_SESSION['aindex'];
    $im = $_SESSION['aime'];
    $pr = $_SESSION['aprosek'];

    $studenti[$ind]["ime"] = $im;
    $studenti[$ind]["prosek"] = $pr;

return $studenti;   
}

function dodaj($studenti)
{
$studenti[$_SESSION['aindex']]["ime"] = $_SESSION['aime'];
$studenti[$_SESSION['aindex']]["prosek"] = $_SESSION['aprosek'];

return $studenti;
}

function prikazi($studenti) //ovde u argumentu treba $studenti
{

print ("<h2> Lista Studenata: </h2>");
foreach ($studenti as $ind => $student)
{
if (empty($ind))
    continue;
$n = $student["ime"];
$p = $student["prosek"];
print ("Index: " . $ind . " " . "Ime: " . $n . " " .  "Prosek: " . $p );


}
print("<hr size ='1'>");

//Forma dodavanja

print (" <form action = 'index.php' method = 'post' >");
print ( " Indeks:&nbsp   <input type = 'text' name = 'index' />");
print(" </br>");
print ( " Ime:&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp   <input type = 'text' name = 'ime' >");
print(" </br>");
print ( " Prosek : <input type = 'text' name = 'prosek' />");
print(" </br>");
print (" <input type = 'submit' value = 'Dodaj' name = 'Dodaj' />");
}




$studenti = inicijalizacija();
?>


<html>
    <head> <title> pokusaj </title> </head>
    <body>
    <?php

    prikazi($studenti);
    dodaj($studenti);
    ?>

    </body>



</html>
4

1 に答える 1

1

PHPの仕組みを誤解しているようです。効率とセキュリティのために、スクリプトが実行されるとすべての変数が破棄され、このユーザーに使用される変数は、他のユーザーによって呼び出されたときにスクリプトに表示されません。

$_SESSION は例外です。$_SESSION のデータは、セッションが期限切れになるまで保持されますが、1 人の一意のユーザー (Cookie によって識別される) にのみ表示されます。

(別のセッションを使用して) 再度呼び出されたときに使用するためにスクリプトのデータを保存する場合は、データをファイルに書き込むか、データベースを使用する必要があります。

PS、スクリプトはXSSおよびCSRFの脆弱性を導入するように見えます。以前に多くの人が犯したのと同じ過ちを犯さないように注意してください。

于 2012-05-28T09:41:06.617 に答える