Autor Zpráva
LSochr
Profil
Ahoj všichni, jsem tu nový a rád bych vás požádal o pomoc s řešením následujícího problému:

Na svých chystaných stránkách bych rád zprovoznil následující emailový formulář:

        <form action="send.php">
		<fieldset>
		<legend style="font-weight:bold;">Kontaktujte mě přímo odsud:</legend>
		<label for="mail_odesilatele">Váš email:</label><br /> 
		<input type="text" class="text" name="mail_odesilatele"><br>
		<label for="predmet">Předmět:</label><br /> 
		<input type="text" class="text" name="predmet"><br>
		<label for="zprava">Zpráva:</label><br /> 
		<textarea class="text" name="zprava"></textarea><br>
		<input type=submit value="Odeslat" name="send">
		</fieldset>
		</form>


A rád bych dosáhl toho, že pokud přes tento formulář odešlu email, tak se mi hláška typu např."Váš email byl úspěšně odeslán" vypíše přímo na té stránce rovnou pod tím formulářem.

Zatím všechny mé pokusy selhaly a vše vedlo k tomu, že jsem z formuláře standardně odkázal na externí *.php soubor, který mi svůj výsledek vypíše na nové stránce. Je tedy nějaký dobrý způsob jak php skript implementovat přímo do kódu stránky s formulářem?

Předem všem děkuji za pomoc!
panther
Profil
LSochr:
Je tedy nějaký dobrý způsob jak php skript implementovat přímo do kódu stránky s formulářem?
zpracování si udělej na téže stránce, tedy:

<?php
//zpracování 
$sent = 1;
?>
<form>
…
</form>
<?php if ($sent == 1) echo 'Odeslano' ?>

Formulář nebude mít atribut action, nebo bude prázdný.
LSochr
Profil
Děkuji za info, ale nějak mi to není jasný.

Podle tohoto skriptu se proměnné $sent přiřadí hodnota "1" a tím pádem se v druhé části skriptu vypíše "Odesláno", ale to se stane ihned po načtení stránky a nikoliv až po odeslání formuláře.

Nevidím zde jakékoliv propojení tohoto skriptu z přítomným formulářem.

Děkuji předem za osvětlení...
panther
Profil
LSochr:
v komentáři //zpracování samozřejmě bude kontrola odeslání formuláře, kontrola správnosti vyplněných dat, odeslání formuláře na mail. Když se toto vše povede, naplní se proměnná a pod formulářem se vypíše nějaký text.

Vlastně nahoře bude obsah stejný, jako jsi měl v externím souboru, jen ho zkopíruj.
LSochr
Profil
Aaha, omlouvám se, měl jsem si toho všimnout hned:-)

Moc děkuji za radu, moc jste mi pomohl. Přeji hezký den!
LSochr
Profil
Ještě jednou zdravím. Zkoušel jsem všechno možné, ale pořád mi to nějak nefunguje, proto bych Vás rád požádal o nahlédnutí do mého skriptu a poradil co je tam špatně.

<?php 

		if($_POST['send'])
			
			{if ($predmet!="" and $email!="" and $zprava!="")
				
				{if (Mail("vase@adresa.com", $predmet, $zprava, "From: " . $mail_odesilatele));
					echo "Vas email byl odeslan";
				else
					echo "Email se nepodarilo odeslat";}
				
			else 
				echo "Nevyplnili jste vsechny udaje";}
			
	
		?>


		<form>
		<fieldset>

		<legend style="font-weight:bold;">Kontaktujte mě přímo odsud:</legend>

		<label for="mail_odesilatele">Váš email:</label><br /> 
		<input type="text" class="text" name="mail_odesilatele"><br>

		<label for="predmet">Předmět:</label><br /> 
		<input type="text" class="text" name="predmet"><br>

		<label for="zprava">Zpráva:</label><br /> 
		<textarea class="text" name="zprava"></textarea><br>

		<input type=submit value="Odeslat" name="send">

		</fieldset>
		</form>


A pokaždé mi to napíše: Parse error: syntax error, unexpected T_ELSE in C:\Program Files\EasyPHP-5.3.3\www\Kontakt.php on line 64
A to ihned po načtení stránky(tzn. stránka se ani nezobrazí).

Moc prosím o radu, už vážně nevím co s tím. Předem děkuji...
Davex
Profil
Chyba je ve středníku na konci
{if (Mail("vase@adresa.com", $predmet, $zprava, "From: " . $mail_odesilatele));

Krom toho doporučuji při kódování dodržovat štábní kulturu.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: