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.
Zobrazeno 17 zpráv z 17.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
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.
