Autor Zpráva
rhulek
Profil
Dobry den,
jelikoz pracuji poprve s PHP tak s tim mam trochu problemy...
Na nize uvedenem odkaze mam odeslani formulare na email, ten mi sice prijde v pohode, ale presto se mi v prohlizeci po odeslani zobrazi ze nemam vyplnenyho odesilatele, misto toho aby se mi to zase vratilo na tu stranku jak chci.

Odkaz: http://www.rhdesign.xf.cz/cenik.html

Diky predem za odpovedi
Alphard
Profil
je pěkné, že uvádíš odkaz, ale my se k PHP kódu nedostaneme
a chválím výstižný nadpis :-)
uNo
Profil
:D xD
rhulek
Profil
Omlouvam se...

Zde je ke stahnuti soubor: http://rhdesign.xf.cz/info.php.zip
Str4wberry
Profil
Odpovídám rhulkovi:
Vlož sem kód toho zpracovávajícího skriptu. Nicméně na první pohled vidím, že <input name="Jmeno a prijmeni"> není to pravé.
rhulek
Profil
Dobra, tada vkladam script...

<?php
// formulář by musí obsahovat vstupní prvky s těmito jmény:
// odesilatel - email odesilatele
// transfer - URL stránky, kterou chcete zobrazit po odeslání emailu

// zde zadejte svůj vlastní email
$prijemce = 'robert.hulek@centrum.cz';


// další změny nejsou zapotřebí

$odesilatel = $_POST['odesilatel'];
$subjekt = $_POST['subjekt'];
$transfer = $_POST['transfer'];

$datum = date("j/m/Y");
$cas = date("H:i:s");

if (!validace ($prijemce, $odesilatel, $transfer))
exit("<P><B>Formulář obsahuje chyby. ");
$teloZpravy = vytvorTelo ($_POST);

if (!odeslat ($prijemce, $odesilatel, $subjekt, $datum, $cas, $teloZpravy))
exit("<P><B>Zpráva nebyla odeslána.</B> ");
?>
<META http-equiv='refresh' content='0; URL=<?php echo "$transfer"; ?>'>
<?php
exit;

//////////////////////////////// VYTVOŘ TĚLO ZPRÁVY /////////////////////////
function vytvorTelo ($_POST) {
$teloZpravy = "";
while (list($name, $value) = each($_POST)) {
if ($name != 'subjekt' && $name != 'transfer' && $name != 'submit' && $name != 'odesilatel') {
if (gettype($value) == 'array') { // TAG SELECT MULTIPLE
$cnt = count($value);
for ($i=0; $i < $cnt; $i++) {
$teloZpravy .= "$name: $value[$i]r\n";
}
}
else { // JINÉ VSTUPNÍ PRVKY
$teloZpravy .= "$name: $value ";
}
}
}
return $teloZpravy;
} // end func

//////////////////////////// ODEŠLI PLATNOU ZPRÁVU /////////////////////////////////
function odeslat ($prijemce, $odesilatel, $subjekt, $datum, $cas, $teloZpravy){
$zprava = "------------------------------------------------------------------";
$zprava .= " Komu: $prijemce";
$zprava .= " Od koho: $odesilatel";
$zprava .= " Vec: $subjekt";
$zprava .= " Odesláno: $datum $cas";
$zprava .= " ------------------------------------------------------------------" ;
$zprava .= " $teloZpravy";

$hlavicka = "MIME-Version: 1.0 ";
$hlavicka .= "Content-Type: text/plain; charset=" . $charset . " ";
$hlavicka .= "From: $odesilatel ";
$hlavicka .= "To: $prijemce ";
$hlavicka .= "Reply-To: $odesilatel ";
$hlavicka .= "X-Mailer: muj_server ";

$odeslano = mail($prijemce, $subjekt, $zprava, $hlavicka);
if ($odeslano == false) {
exit ("<P>Zprávu nelze odeslat. Klikněte zpět a zkuste znovu.</B> ");
}
return $odeslano;
} // end function

//////////////////////////////// KONTROLA FORMULÁŘE ////////////////////////////

function validace ($prijemce, $odesilatel, $transfer) {
$valid = true;
if (!$prijemce) {
$valid = false;
exit ("<P><B>Chyba. Vyplňte příjemce. Klikněte zpět a zkuste znovu.</B> ");
}
if (!$odesilatel) {
$valid = false;
exit ("<P><B>Chyba. Vyplňte odesilatele. Klikněte zpět a zkuste znovu.</B> ");
}
if(!eregi( "^" .
"[_a-z0-9-]+(.[_a-z0-9-]+)*" .
"@" .
"[_a-z0-9-]+(.[a-z0-9-]+)*" .
"$", $odesilatel, $regs)) {
$valid = false;
exit ("<P><B>Chyba. Neplatný odesílatel. Klikněte zpět a zkuste znovu.</B> ");
}
if(!eregi( "^" .
"[_a-z0-9-]+(.[_a-z0-9-]+)*" .
"@" .
"[_a-z0-9-]+(.[a-z0-9-]+)*" .
"$", $prijemce, $regs)) {
$valid = false;
exit ("<P><B>Chyba. Neplatný příjemce. Klikněte zpět a zkuste znovu.</B> ");
}
if (!transfer) {
$valid = false;
$transfer = 'http://www.rhdesign.xf.cz/cenik.html';
exit ("<P><B>Chyba. Zadejte URL následné stránky do pole transfer.</B> ");
}
return $valid;

} // end func

?>
Alphard
Profil
// transfer - URL stránky, kterou chcete zobrazit po odeslání emailu
nikde to na tvé stránce nevidím
rhulek
Profil
je to uplne dole v kontrole formulare
Alphard
Profil
jo, už to vidím :-) věřil jsem tomu // další změny nejsou zapotřebí
ale pořád tam je $valid = false a exit
rhulek
Profil
a co s tim? vubec nevim o co de, jelikoz to je muj prvni pokus o PHP
Mastodont
Profil
Pokud chceš aby se mi to zase vratilo na tu stranku jak chci, tak tam někde musí proběhnout přesměrování, a to tedy nevidím ...
rhulek
Profil
a co ten transfer? to neni ono?
Alphard
Profil
přesměrování má být zajištěno tím <META http-equiv='refresh' content='0; URL=<?php echo "$transfer"; ?>'>

zkus tohle (nechce se mi studovat celý script :-) )
místo $transfer = $_POST['transfer']; dej $transfer = 'http://www.rhdesign.xf.cz/cenik.html';

a tohle celé smaž
if (!transfer) {
$valid = false;
$transfer = 'http://www.rhdesign.xf.cz/cenik.html';
exit ("<P><B>Chyba. Zadejte URL následné stránky do pole transfer.</B> ");
}
rhulek
Profil
supr, uz mi to funguje jak ma...

Diky moc
djlj
Profil
Alphard
?!

header("Location: http://www.rhdesign.xf.cz/cenik.html", true, 303); exit;
Alphard
Profil
djlj
proč se obracíš proti mně? já jsem jenom zkopíroval část scriptu jako reakci na tak tam někde musí proběhnout přesměrování, a to tedy nevidím
já ten script nepsal :-)
djlj
Profil
Alphard
Aha, promiň ;).

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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