PHP-ben változó értékének átadása új php oldalra?
pl:
exaple_1.php-ben
<html>
<head>
</head>
<body>
<form METHOD="POST" ACTION="b.php">
<input type="text" name="nn">
<INPUT TYPE="submit" NAME="gomb" VALUE="regisztráció">
</form>
<?PHP
if(isset($_POST['gomb']))
{
session_start();
$_SESSION['elso'] = $_POST['nn'];
print "session_a: ".$_SESSION['elso'];
}
?>
</body>
</html>
exaple_2.php-ben
<?PHP
session_start();
print "b.php<br>";
print "session_b: ".$_SESSION['elso'];
?>
Azt szeretném, hogy felhasználó megadja az első oldalon a nevét, majd gombra kattintás után átugrik a második oldalra, és ott ki szeretném íratni az első oldalról bekért nevet, hogyan ?
Én próbálkoztam, de sikerül.
session_start(); még az előtt kell hogy bármi kimenet lenne.
Tehát se HTML, semmilyen karakterek, pl. UTF8-BOM karakterek se.
Javaslom tanuld meg a PHP OOP-MVC szerkezetet, csomó problémától megóvhatod magad.
Arra, hogy két oldalletöltés között adatokat adj meg, arra többféle módszer van:
- GET paraméter átadás
- POST paraméter átadás
- Sütik
- Session változók
Hogy melyiket érdemes használni, az a helyzettől függ, pl. a felhasználónak szabad-e, kell-e látnia az adatokat, mekkora adatmennyiségről van szó, két külön böngészőfülön két különböző állapot is lehet, vagy ezeknek szinkronban kell lenniük.
A session esetén fontos, hogy a session_start() még azelőtt ki legyen adva, mielőtt egyetlen karaktert is kiírnál a kimenetre. (Itt még a BOM is be szokott keverni, érdemes erre is figyelni.) A fenti kódnak tehát így kellene minimum kinéznie:
<?php
session_start();
?>
<html>
<head>
…
De a kód más sebből vérzik:
$_SESSION['elso'] = $_POST['nn'];
print "session_a: ".$_SESSION['elso'];
Nagyszerű, de mi van, ha névnek a „<script>alert('x');</script>” nevet adja meg? Ha így írod ki a nevet, akkor ahol csak az oldalon az adott felhasználó nevez szerepel, felugrik egy ablak. Ez még hagyján, de session hijacking-re, csúnyább XSS-re is alkalmas a dolog.
A „print "b.php<br>";” meg kissé értelmezhetetlen, hacsak nem a „b.php” szöveg kiírása volt a célod, amit kétlenék.
Kellene neked egy tankönyv vagy egy jól megírt online lecke…
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!