ugrás a tartalomhoz

Űrlap küldés után nem a sikeres.html jelenik meg

poirot · 2008. Jún. 2. (H), 11.08
Nekem sikerült megcsinálnom az egész űrlap elküldést (hírlevél-feliratkozást csináltam), meg is érkezik a mail, de amikor a (nálam Feliratkozás) gombra kattintok ez jelenik meg:
E-mail_címe:=asdqweasd E-mail_címe:=true
És nem a sikeres.html ami elvileg ehelyett jelenik meg.

A kódok itt vannak:

Kezdő html:

<html>
<body>
<form action="form.php" method="post">
E-mail címe:<input type="text"name="E-mail címe:"></input><br>
<input type="submit"value="Feliratkozás">
<input type="hidden" name="send" value="true">
</form>

</body>
</html>
eddig sztem jó is, most jön a php:

<?PHP
$freewebxmail = "";
$form = "email.html";
$thank = "sikeres.html";
$email = "godryc##kukac##citromail.hu";

// <--- NO USER EDITABLE PARTS BELOW --->
if(Empty($_POST['send']))
	{
	if(file_exists($form))
		{
		$fa = fopen($form, 'r');
		print fread($fa, filesize($form));
		fclose($fa);
		}
	else
		{
		print "A kérdőív nem található!";
		}
	}
else
	{
	foreach($_POST as $post)
		{
		if(!Empty($post))
			{
			$mail .= key($_POST) . "=" . $post . "\n";
			}
		}
	print $mail;
	if($_SERVER['SERVER_NAME'] == 'www.freeweb.hu')
		{
		mail($email,"Feliratkozás",$mail,"X-FW-MailID: " . $freewebxmail);
		}
	else
		{
		mail($email,"Feliratkozás",$mail);
		}

	if(file_exists($thank))
		{
		$fa = fopen($form, 'r');
		print fread($fa, filesize($thank));
		fclose($fa);
		}
	else
		{
		print "";
		}	
	}
ennyi. A sikeres.html-t nem teszem be ide, a szöveg csak egy köszönetnyilvánítás, semmi kód nincs benne.
Válaszokat várom!
 
1

nem valid

Drawain · 2008. Jún. 2. (H), 13.35
Nem ástam bele túl mélyen magam a kódba, de a kezdő html-ben már jónéhány hiba van:
1. lezáratlan tag-ek és inputok (xhtml szabvány szerint írd meg, és akkor is így: <input ... /> a textarea kivételével)
2. a name mező egybeírva a type-al az első inputnál,
3. a value mező egybeírva a type-al a gombnál, a name mezőben ékezetes és speciális karakterek (ennek rövid, egyszerű, angol abc-s neve legyen, hiszen egy tömb-index lesz a php-ban)

Az elküldött változókat mindenképpen kiírja, hiszen ez szerepel a kódban (print $mail;). Ha utána nem írja ki a sikeres.html-t akkor valahol rosszul adtad meg a nevét, vagy nincs ilyen nevű a szerveren. Figyelj oda a kis-nagybetűkre (lehetőleg mindent írj kicsivel), a pontos kiterjesztésre, stb.
2

még most se jó

poirot · 2008. Jún. 2. (H), 14.35
Még mindig nem jó :(
Ellenőriztem minden fájlnevet, elvileg minden passzol, nem tudom mi hiányzik, akinek van tippe, az szóljon!
3

pölö

cSuwwi · 2008. Jún. 2. (H), 15.13
a form html részében az inputoknak normális name értéket adj, pl. 'email', ne ékezettel és space-el telenyomott sallangot

a 12, 13, 14. sor helyett (illetve 42, 43, 44) elég egy
print file_get_contents($form); is, ugyanazt csinálja.

a 30. sorban a print miatt írja ki a form tartalmát, felesleges

a 31. sorban lévő server ellenőrzésnél elakadhat, nézz rá, hogy valóban azt adja-e vissza a _SERVER[SERVER_NAME]

a mail függvénynél lehet még gond ha nem jól raktad össze. a script maga működőképesnek tűnik. esetleg echo-zd ki, hol akad el, ha nagyon nem megy
4

nah végre kicsit előrébb vagyok

poirot · 2008. Jún. 2. (H), 21.54
Na most minden jó, sikerült megcsinálnom úgy, ahogy mondtad. Már csak egy hiba van:
A végén a kiírásnál mostmár csak egy fehér lap jelenik meg (tk. a form.php) semmi más. Nekem az is jó lenne, ha mondanátok egy php átirányító kódot, amit esetleg berakhatnék az aljába.
Már próbálgattam, de a php fájlnak nem tetszik-hibaüzeneteket ír ki.
Ha vmi tippet kaphatnék...
Előre is kösz!
5

juhéé

poirot · 2008. Jún. 2. (H), 22.07
megvan!
sikerült megcsinálnom!
Köszi mindkettőtöknek!