Diskuze: Problém s výpisem chybové hlášky
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 17 zpráv z 17.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Nemáš za tím další přesměrování ? Zkus za to dát
exit();
exit tam mám. Celé to vypadá takto
<?php
mb_internal_encoding("UTF-8");
$hlaska = '';
if (isset($_GET['uspech']))
$hlaska = 'Email bol úspešne odoslaný.';
if ($_POST) // V poli post niečo je, formulár sa poslal.
{
if (isset($_POST['meno']) && $_POST['meno'] &&
isset ($_POST['email']) && $_POST['email'] &&
isset ($_POST['sprava']) && $_POST['sprava'] &&
isset ($_POST['rok']) && $_POST['rok'] == date('Y'))
{
$hlavicka = 'From:' . $_POST['email'];//odosielanie emailu
$hlavicka .= "\nMIME-Version: 1.0\n";
$hlavicka .= "Content-Type: text/html; charset=\"utf-8\"\n";
$adresa = '[email protected]';
$predmet = 'Nová správa z mailformu.';
$uspech = mb_send_mail($adresa, $predmet, $_POST['sprava'], $hlavicka);
if ($uspech)
{
$hlaska = 'Email bol úspešne odoslaný.';
header('Location: mailform.php?uspech=ano');
exit;
}
else
$hlaska = 'Email sa nepodarilo odoslať!';
}
else
$hlaska = 'Formulár nieje správne vyplnený!';
}
?>
Ale ty to jenom ukládáš do $hlaska, nikde to nevypisuješ.
Tak celý kód sem dám sry...
<?php
mb_internal_encoding("UTF-8");
$hlaska = '';
if (isset($_GET['uspech']))
$hlaska = 'Email bol úspešne odoslaný.';
if ($_POST) // V poli post niečo je, formulár sa poslal.
{
if (isset($_POST['meno']) && $_POST['meno'] &&
isset ($_POST['email']) && $_POST['email'] &&
isset ($_POST['sprava']) && $_POST['sprava'] &&
isset ($_POST['rok']) && $_POST['rok'] == date('Y'))
{
$hlavicka = 'From:' . $_POST['email'];//odosielanie emailu
$hlavicka .= "\nMIME-Version: 1.0\n";
$hlavicka .= "Content-Type: text/html; charset=\"utf-8\"\n";
$adresa = '[email protected]';
$predmet = 'Nová správa z mailformu.';
$uspech = mb_send_mail($adresa, $predmet, $_POST['sprava'], $hlavicka);
if ($uspech)
{
$hlaska = 'Email bol úspešne odoslaný.';
header('Location: mailform.php?uspech=ano');
exit;
}
else
$hlaska = 'Email sa nepodarilo odoslať!';
}
else
$hlaska = 'Formulár nieje správne vyplnený!';
}
?>
<div class="grid_12"><h1>Kontakt</h1></div>
<article class="grid_5 prefix_1">
<?php /* Dátum */
$mesiace = array('január', 'február', 'marec', 'apríl', 'máj', 'jún', 'júl', 'august', 'september', 'október', 'november', 'december');
$den = date('j');
$mesiac = date('m');
$mesiacslovo = $mesiace[$mesiac - 1];
$rok = date('y');
echo('Dnes je '.$den.'. '.$mesiacslovo.' 20' .$rok); /* </Dátum>*/
?>
</article>
<article class="grid_5 suffix_1">
<p>Text text drísty drísty drísty</p>
</article>
<div class="clear"></div>
<div class="grid_10 prefix_1 suffix_1"><hr/></div>
<div class="grid_4 prefix_1">
<?php
if ($hlaska)
echo('<p>' .htmlspecialchars($hlaska) . '</p>');
$meno = (isset($_POST['meno'])) ? $_POST['meno'] : '';
$email = (isset($_POST['email'])) ? $_POST['email'] : '';
$sprava = (isset($_POST['sprava'])) ? $_POST['sprava'] : '';
?>
<form method="post">
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-user"></i></span>
<input placeholder="Vaše meno" class="form-control" name="meno" type="text" value="<?= htmlspecialchars($meno) ?>">
</div>
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-envelope-o"></i></span>
<input placeholder="Váš Email" class="form-control" name="email" type="email" value="<?= htmlspecialchars($email) ?>">
</div>
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
<input placeholder="Aký je rok? Spam kontrola"class="form-control" name="rok" type="number">
</div>
<textarea placeholder="Správa..." class="form-control" name="sprava"><?= htmlspecialchars($sprava) ?></textarea><br/>
<input type="submit" value="Odoslať">
</form>
</div>
Jsi si jist, zda se soubor opravdu jmenuje mailform.php??
Pokud spouštíš přímo ten zdroják, co jsi poskytl, vyzkoušej toto
header('Location: ?uspech=ano');
Určite je to mailform.php skúsil som...presmeruje zase len na "Domú" index.php bez hlášky ,
v $_GET je potom tohle http://localhost/proj1/index.php?… ..
Pre predstavu: Tak jak je na screene hláška "Formulár nieje správne
vyplnený"
potrebujem vypísať aj úspešnú hlášku..tak ako to šlo pred tým len po
skladaní stránky cez include() už to nejde.
Hle, jak se jmenuje soubor, ve kterém se nachází výše sdílený zdrojový kód a jak k tomu přistupuješ přes web??
omg nejde screen nahrat
No je to tak jak v tutoriáloch..mám normálne komplet šablonu a v menu je
proste "kontakt" a tam je ten formulár. Proste mám podsložku "/sub" a v nej
všetky podstránky a súbor s formulárom sa volá mailform.php
Hele, zajeď na (veřejnou)stránku, kde máš ten formulář a připiš do URL ?uspech=ano. Pokud ti to bude fungovat, tak jen zkopíruj URL od části, kde máš adresáře až po konec a vlož to do té funkce header. Ta URL bude vypadat nějak takto /proj1/index.php?uspech=ano
no keď do /proj1/index.php?page=mailform pripíšem " ?uspech=ano " tak sa zobrazí len Neplatný parameter (z kódu v index.php)
<?php
if (isset($_GET['page']))
$page = $_GET['page'];
else
$page = 'home';
if (preg_match('/^[a-z0-9]+$/', $page))
{
$vlozene = include('sub/'. $page. '.php');
if(!$vlozene)
echo('Podstránka nenájdená. / Page not found.');
}
else
echo('Neplatný parameter. / Parameter not valid.');
?>
v podstate potrebujem aby konečná url po odoslaní formuláru vyzerala "/proj1/index.php?page=mailform?uspech=ano ....chcem zostať na stránke mailform.php so zobrazenou hláškou o úspešnom odoslaní. Škoda že sa nedajú nahrať screeny aby si mal lepšiu predstavu.
Jo aha, to jsi neřekl, v tom případě by měla URL vypadat takto:
/proj1/index.php?page=mailform&uspech=ano
Můžeš ještě zkusit toto
?page=mailform&uspech=ano
Díky! výborne! to bolo
ono..stále som tam cpal ? a ono tam musí byť & .
Tam byl pes zakopán + rep ..
Ďakujem ešte raz aj ostatným za čas a ochotu.
Zobrazeno 17 zpráv z 17.