Urlap feldolgozaskor elvesznek az adatok
Udv Weblaborosok!
Megoldast keresek a kovetkezo problemara:
Beolvasni adatokat, azokat megjeleniteni (preview), majd elkuldeni e-mail-ben.
En a kovetkezo megoldasra gondoltam:
Van egy urlapom amibol beolvasom az adatokat
urlap.php:Van egy masik file, ami a bevitt adatokat megjeleniti (es felajanlja a lehetoseget a modositasra), majd a mail() fuggveny segitsegevel elkuldi a kivant cimre.
elkuldi.php:
NA MOST JON AMIT NEM TUDOK:
Amikor az urlap tartalmat elkuldom a feldolgozo file-nak (az elkuld.php-nak) minden ok.
Amikor viszont raklikkelek az "Elkuld" gombra, azaz amikor lefut a mail() annyi Notice szintu hibauzenet jelentkezik ahany valtozo van. A fenti esetben konkretan ketto darab:
Notice: Undefined index: nev in C:\phpweb\elkuldi.php on line 5
Notice: Undefined index: eletkor in C:\phpweb\elkuldi.php on line 6
Ennek ellenere elmegy a level, de valtozok nelkul.
Hogyan lehet megmenteni a valtozokat, hogy azok is postazodjanak?
Ugyanakkor az is fontos, hogy elkuldes elott meg egyszer meg lehessen jeleniteni az adatokat.
Otleteket varok es elore is koszonom!
■ Megoldast keresek a kovetkezo problemara:
Beolvasni adatokat, azokat megjeleniteni (preview), majd elkuldeni e-mail-ben.
En a kovetkezo megoldasra gondoltam:
Van egy urlapom amibol beolvasom az adatokat
urlap.php:
<form action="elkuldi.php" method="post">
<input type="text" name="nev">
<input type="text" name="eletkor">
<input type="submit" name="button" value="Elonezet">
</form>
elkuldi.php:
<html>
<head><title>Ez a lap cime</title></head>
<body>Ez lesz a lap torzse<br>
<?php
$nev=$_POST["nev"];
$eletkor=$_POST["eletkor"];
$szoveg = "A bevitt adatok a kovetkezoek: <br>";
$szoveg = $szoveg . "Név: ".$nev."<br>";
$szoveg = $szoveg . "Életkor: ".$eletkor;
print($szoveg);
if (isset($gomb)) {
if (mail("valaki##kukac##valami.com", "Targy", $szoveg, "MIME-Version: 1.0\r\n"."Content-type: text/html; charset=iso-8859-2\r\n")) {
print("Sikeres kuldes!");
exit;
}
else {
print("Sikertelen kuldes!");
}
}
?>
<form method="post">
<input type="submit" name="gomb" value="Elküld">
<input type="button" value="Vissza" onClick="history.go(-1); return true;">
</form>
</body>
</html>
NA MOST JON AMIT NEM TUDOK:
Amikor az urlap tartalmat elkuldom a feldolgozo file-nak (az elkuld.php-nak) minden ok.
Amikor viszont raklikkelek az "Elkuld" gombra, azaz amikor lefut a mail() annyi Notice szintu hibauzenet jelentkezik ahany valtozo van. A fenti esetben konkretan ketto darab:
Notice: Undefined index: nev in C:\phpweb\elkuldi.php on line 5
Notice: Undefined index: eletkor in C:\phpweb\elkuldi.php on line 6
Ennek ellenere elmegy a level, de valtozok nelkul.
Hogyan lehet megmenteni a valtozokat, hogy azok is postazodjanak?
Ugyanakkor az is fontos, hogy elkuldes elott meg egyszer meg lehessen jeleniteni az adatokat.
Otleteket varok es elore is koszonom!
Post
Oda még kellene:
<input type="hidden" name=szoveg value=<?php print($szoveg) ?>
Illetve ahol a $gomb eseményt vizsgálod ott $szoveg=$_POST["szoveg"]
BCsoft
:(:(:(
Csak nem kuldi el a valtozokat, illetve azok tartalmat.
Megvaltoztattam a kodot:
elkuldi.php
Csak az a baj, hogy meg mindig megjelenik a Notice szintu hibauzenet minden valtozora, igy:
Notice: Undefined index: nev in C:\phpweb\elkuldi.php on line 6
Notice: Undefined index: eletkor in C:\phpweb\elkuldi.php on line 7
Ez ellen mit lehet tenni???
post még mindig
Esetleg nézz körül itt Hibakezelés; Notice típusú "hibákkal" mennyire érdemes foglalkozni?
Köszönöm a segítséget!
Köszi szépen!
Off :)
Igazából ez már nem ide tartozik, de egy kis kiegészítés (egyszerűsítés)... Jól jöhet más környezetben, pl. ha sok bejövő adatot ellenőrzöl és gyűjtöd a hibaüzeneteket, akkor jól jöhet így egy változóba (pl $error) és utána csak egy echo az egész...
Ez helyett:
$szoveg = "A bevitt adatok a kovetkezoek: <br>";
$szoveg = $szoveg . "Név: ".$nev."<br>";
$szoveg = $szoveg . "Életkor: ".$eletkor;
Így:
$szoveg = "A bevitt adatok a kovetkezoek: <br>";
$szoveg .= "Név: ".$_POST["nev"]."<br>";
$szoveg .= "Életkor: ".$_POST["eletkor"];
Lényegében full ugyan az a kettő, csak rövidebb...
mint a $szam = $szam+5; ekvivalens a $szam+=5; -tel :D