PHP űrlap probléma
Üdv mindenkinek
kezdő PHP-s vagyok, ezért kérném a segítségeteket.
Lévén, hogy még nem tudok PHP-t programozni, kerestem és találtam a köv. scriptet, mely kiválóan működik, csupán egy hiányossága van: amikor megérkezik a megadott címre az űrlap, a From(Feladó) helyén csak egy nagy semmi van. Nos, meg lehet-e oldani azt, hogy az űrlap 'name' szövegmező sorába írt nevet jelenítse meg a levelezőprogram. A script végtelenül egyszerű, ime:
<?
$To = "kirby1##kukac##axelero.hu";
$From = "Akarki";
$Date = date("d/m/Y");
if (!$Subject) {
$Subject = "Árajánlat kérés";
}
$Body = "On $Date, an enquirey was made at the Your Website \n".
"The following information was submitted:\n\n";
foreach ( $HTTP_POST_VARS as $key => $value ) {
if ($key=="Submit") continue;
$Body .= "$key: $value\n";
}
if (mail($To,$Subject,$Body,"From: $name <$email>")) {
header("location: http://www.hitmetal.hu/thanx.html");
} else {
echo("Could not process your order.<br>".
"Please try again later<br>".
"We are sorry for any inconvenience");
exit();
}
?>
Szóval próbálkoztam már a $From = "$name"; sorral is, lehet, hogz naív vagyok, de így sem működött. Sőt, most a jelenlegi állapotában sem küldi el az 'Akarki' feladót.
Nagyon megköszönném, ha valaki segítene.
Norbert
■ kezdő PHP-s vagyok, ezért kérném a segítségeteket.
Lévén, hogy még nem tudok PHP-t programozni, kerestem és találtam a köv. scriptet, mely kiválóan működik, csupán egy hiányossága van: amikor megérkezik a megadott címre az űrlap, a From(Feladó) helyén csak egy nagy semmi van. Nos, meg lehet-e oldani azt, hogy az űrlap 'name' szövegmező sorába írt nevet jelenítse meg a levelezőprogram. A script végtelenül egyszerű, ime:
<?
$To = "kirby1##kukac##axelero.hu";
$From = "Akarki";
$Date = date("d/m/Y");
if (!$Subject) {
$Subject = "Árajánlat kérés";
}
$Body = "On $Date, an enquirey was made at the Your Website \n".
"The following information was submitted:\n\n";
foreach ( $HTTP_POST_VARS as $key => $value ) {
if ($key=="Submit") continue;
$Body .= "$key: $value\n";
}
if (mail($To,$Subject,$Body,"From: $name <$email>")) {
header("location: http://www.hitmetal.hu/thanx.html");
} else {
echo("Could not process your order.<br>".
"Please try again later<br>".
"We are sorry for any inconvenience");
exit();
}
?>
Szóval próbálkoztam már a $From = "$name"; sorral is, lehet, hogz naív vagyok, de így sem működött. Sőt, most a jelenlegi állapotában sem küldi el az 'Akarki' feladót.
Nagyon megköszönném, ha valaki segítene.
Norbert
Hmm, egy pár sajtóhiba...
1.
$Date = date("d/m/Y");
ez így nem jó. Helyesen:
$Date = date("d/m/Y", time());
//ez lesz az aktuális dátum2.
$From = "Akarki";
és:if (mail($To,$Subject,$Body,"From: $name <$email>")
ez akár jó is lehetne, de a $From van defíniálva, azt pedig nem használod fel később. A küldő űrlapot nem látni, ha abban vannak ilyen mezők:
<INPUT type="text" name="name">
<INPUT type="text" name="email">
akkor oké, de gyanítom, hogy nincsenek. Te ezeknek az elküldött értékét akarod beírni a levélbe ugye? Ahhoz persze a látogatónak ki kell töltenie azokat (feldolgozáskor ellenőrízendő!) és el kell küldeni a feldolgozó scriptnek.
A
$From = "$name";
sor nem segít, fordítva:"$name" = $From;
már látsz valamit, így viszont nem látom értelmét.Ja, és a küldött adatokat tanácsosabb a
$urlap_kuldte
forma helyett$_POST["urlap_kuldte"]
módon feldolgozni. Ugye tudod, miért?Egyelőre ennyi vettem észre.
Üdv: Thom
[ThomasWebMűhely] [ThomasPortál]
szia Thom elöször is nag
elöször is nagyon köszi a gyors választ.
nos: az űrlapban szerepelnek eme sorok:
<INPUT type="text" name="name">
<INPUT type="text" name="email">
és pontosan, ahogy írod, ezeknek az értékét, de elég lenne, ha csak a 'name'-nek az értékét venné föl a $From. De nem teszi, pont ez a gondom. Lehet, hogy meg kell fordítanom, ahogy említetted.......kipróbálom....
Ha van még 5leted, nagyon megköszönöm!
Norbeee
register globals
register globals=off
okozta problémáról van szó megint szerintem. Lásd itt a biztonságról szóló résznél...-boogie-
talaltam egy masik scriptet i
a level 'body' reszebe nem irja a nev-ertek parokat, csak az erteket. Ime:
<?php
$from = $_POST['from'];
$subject = $_POST['subject'];
$message = $_POST['message'];
$to = $_POST['to'];
$to="$to";
$headers.= "MIME-Version: 1.0\r\n";
$headers.= "Content-type: text/html; ";
$headers.= "charset=iso-8859-1\r\n";
$headers.= "From: $from";
$subject = "$subject";
$body = "$message";
$send_check=mail($to,$subject,$body,$headers);
if ($send_check!=true) {
die();
}
?>
szal' a kettobol kellene osszegyurni valamit.
Megkoszonnem a segitsegeteket.
-Norbeee-
Kedves Norbeee! Szerintem ez
Szerintem ez a fórum nem arról szól, hogy az itt-ott talált kódrészleteidből összegyúrjunk neked egy céljaidnak megfelelő levélküldőt. Ha valaki írna is neked egyet, a következő feladatnál ismét megakadnál.
Inkább ajánlanám a kódok elemzését (mi mit és miért csinál), próbálni írni valamit, akár egyszerűbbel kezdve, és szépen felépíteni egy saját levélküldőt. Hidd el, nem ördöngősség, és a tesztelgetések közben sokat lehet tapasztalni.
Kezdetnek mindjárt egy kis olvasnivaló (magyarul):
http://hu2.php.net/manual/hu/ref.mail.php
(A leírt kódod egyébként önmagában ismét nem mond sokat a hozzá tartozó űrlap nélkül.)
Üdv: Thom
[ThomasWebMűhely] [ThomasPortál]