Autor Zpráva
virgo86
Profil
zdravím potřebuji po splnění podmínky aby se stranka vratila zpět odpkud uživatel přišel.
využil bych $HTTP_SERVER_VARS['HTTP_REFERER']; tím zjistím odkud uživatel přišel ale nevím jak ho automaticky na tuto adresu přesměrovat? lze to pomocí php nebo musím použít html? dík
Apacuka
Profil
http://webtvorba.howto.cz/presmerovani-webove-stranky/
virgo86
Profil
zkoušel jsem napsalo to tuhle chybu?

Warning: Cannot add header information - headers already sent by (output started at c:\apache\htdocs\cnc\fce.php:39) in c:\apache\htdocs\cnc\smazat_clanek.php on line 15

skript:
<?php

// smazani clanku
require_once('fce.php');
session_start();
hlavicka2('editace', '', $strana);

$conn = db_connect();


$story = $HTTP_GET_VARS['story'];
$sql = "delete from stories where id = $story";
$result = mysql_query($sql, $conn);

header('Location: www.virgonet.cz');
konec();
?>
Apacuka
Profil
dbc.php
$link = mysql_connect("mysql.webzdarma.cz", "xxxxx", "xxxxx");
$db = mysql_select_db("xxxx", $link) or die("Couldn't select database");


tvuj soubor
include 'dbc.php';
...
if (isset($_GET['akce']) AND $_GET['akce']=="smazat")
{
     mysql_query ("delete from stories where id = $story;", $GLOBALS["link"]);
     $chyba = mysql_error($GLOBALS["link"]);
     if ($chyba==='')  header("Location: www.virgonet.cz");
     else echo "smazani neprobehlo"; 
}


tohle pouzivam
virgo86
Profil
Možná že mi to nefunguje na mém serveru v PC ale když to dám na net tak to pofičí nevim zkusim to později ale myslím že ten skript mám napsanej správně.
yFang
Profil
virgo86:
Je to nejspíš tím, že soubor fce.php zasílá nějaký výstup ještě před přesměrováním.
virgo86
Profil
na tom řádku 39 je tohle
    <meta http-equiv="content-type" content="text/html; charset=windows-1250">                   
    <meta name="generator" content="PSPad editor, www.pspad.com">;
<?php
hele mě to tady hazí ten střednik samosřejmě ho ve skriptu nemám
fajzen
Profil
pred header() nemôže byť žiadny výstup (nič, čo by sa objavilo v browseri v zdrojáku)
HonzaKo
Profil
Rád bych se zeptal, zda někdo nevíte jestli jde nastavit přesměrování po určené době, např. po 5 sekundách. Nejlépe v klasickém skriptu
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.konferencniakce.cz");
header("Connection: close");
?>

Jo a také by mne zajímalo, zda jde přesměrovat automaticky jen zpět na stránku odkud bylo přesměrováno a ne na další jinou adresu.

Pro vysvětlenou: Mám formulář -> odešle se na soubor, který ho zpracuje a odešle na mail, zároveň tento soubor mě přesměruje jinam - nejlépe právě zpět na stránku, kde jsem formulář vyplňoval).


Moc díky
vynalezce
Profil
HonzaKo:
Rád bych se zeptal, zda někdo nevíte jestli jde nastavit přesměrování po určené době, např. po 5 sekundách. Nejlépe v klasickém skriptu


funkce sleep()



Jo a také by mne zajímalo, zda jde přesměrovat automaticky jen zpět na stránku odkud bylo přesměrováno a ne na další jinou adresu.


Buďto tam nastavíš tu adresu napevno nebo $_SERVER['HTTP_REFERER'];
HonzaKo
Profil
vynalezce:
Děkuji, to by mohlo být ono. Mohu je poprosit, jak to mám implementovat do skriptu?
vynalezce
Profil
HonzaKo:
Děkuji, to by mohlo být ono. Mohu je poprosit, jak to mám implementovat do skriptu?

Před ten kód co to přesměruje viz kód

<?php
sleep(3);
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.konferencniakce.cz");
header("Connection: close");
?> 
HonzaKo
Profil
Super, to již funguje, ale když chci přesměrovat na původní stránku a zadám
<?php
sleep (5)
header("HTTP/1.1 301 Moved Permanently");
header("Location: $_SERVER['HTTP_REFERER'];);
header("Connection: close");
?>
tak skript nefachá. Co mám ještě špatně?
vynalezce
Profil
Tohle by mělo fungovat

<?php
sleep(5);
header("HTTP/1.1 301 Moved Permanently");
header("Location: ".$_SERVER['HTTP_REFERER']);
header("Connection: close");
?> 
HonzaKo
Profil
Skvělé a geniální! Moc děkuji, hledám to celý den :-)!.

Mohu ještě požádat. Mám tam v tom souboru výpis výsledku odeslání formuláře. Jde nějak, aby během těch 5 sekund se zobrazil ten text nebo alespon nejaký jiny, aby klient vedel, ze odeslání probehlo a ze je presmerováván zpět? Vim, ze kvuli tomu echu to asi nepujde, ale treba o necem vite....

Zde uvádím kód pro lepší info:
<?
$zprava = "Název subjektu: {$_POST['subjekt']}\r\n";
$zprava .= "Region: {$_POST['region']}\r\n";	
$zprava .= "Vybraný tarif: {$_POST['tarif']}\r\n";	
$zprava .= "Jméno: {$_POST['jmeno']}\r\n";	
$zprava .= "Pozice: {$_POST['pozice']}\r\n";	
$zprava .= "Kontakt: {$_POST['kontakt']}\r\n";	
$zprava .= "Podrobnosti: {$_POST['podrobnosti']}\r\n";
$predmet = "online OBJEDNÁVKA prezentace";
$kontakt .= "{$_POST['kontakt']}\r\n";

if ($zprava!="")
{
Mail("info@konferencniakce.cz", $predmet, $zprava, "From: " . $kontakt);
echo "<p><strong>Vaše poptávka byla úspěšně odeslána, děkujeme. Nyní budete přesměrováni zpět.</strong>.</p>";
}
else
{
echo "<p>Vaši poptávku se <strong>nepodařilo odeslat</strong>Pravděpodobně jste nevyplnili všechny údaje. Nyní budete přesměrováni zpět</p>";
} 
?>
</p>

<?php
sleep(5);
header("HTTP/1.1 301 Moved Permanently");
header("Location: ".$_SERVER['HTTP_REFERER']);
header("Connection: close");
?>
vynalezce
Profil
HonzaKo:
if ($zprava!="")

Zpráva nikdy nebude prázdná. A to ani pokud uživatel nic nepošle.

Lepší je testovat postupně co uživatel zadal.



Jde nějak, aby během těch 5 sekund se zobrazil ten text nebo alespon nejaký jiny, aby klient vedel, ze odeslání probehlo a ze je presmerováván zpět? Vim, ze kvuli tomu echu to asi nepujde,

Teď jsem nepochopil co přesně tím myslíte. Echo + přesměrování funguje normálně.
HonzaKo
Profil
Data z formuláře se odesílají normálně. Já potřebuji, aby se v těch 5 sekundách, co se přesměrovává se místo bíleho pozadí, co se zozuje nyní na těch 5 sec vypsal výsledek odeslání, tedy

buď: Vaše poptávka byla úspěšně odeslána, děkujeme. Nyní budete přesměrováni zpět.

nebo: aši poptávku se <strong>nepodařilo odeslat</strong>Pravděpodobně jste nevyplnili všechny údaje. Nyní budete přesměrováni zpět

Nyní se mi právě přesměrovává prázdná stránka a dotyčný může být zmatn, zda se formulář dobře odeslal.


Poslední dotaz bych měl, zda je možné nějak do kodu ještě implementovat skript, který by mi spolu s výpisem formuláře zaslal i adresu stránky odkud klient přišel. Pokud byste o něčem věděl, bylo by to úplně úžasný
fajzen
Profil
HonzaKo:
Já potřebuji, aby se v těch 5 sekundách, co se přesměrovává se místo bíleho pozadí, co se zozuje nyní na těch 5 sec vypsal výsledek odeslání
v tom prípade by som skôr použil presmerovanie pomocou meta tagu

skript, který by mi spolu s výpisem formuláře zaslal i adresu stránky odkud klient přišel
do formulára treba pridať pole (najlepšie asi skryté), ktoré bude obsahovať obsah premennej $_SERVER['HTTP_REFERER'], niečo ako:
<input type="hidden" name="referer" value="<?php echo $_SERVER['HTTP_REFERER']; ?>">
HonzaKo
Profil
fajzen:
meta tagem ne, ten mi nefacha, bohuzel stejne tak skript nize
Sirius
Profil
HonzaKo:
Použít pro přesměrování JS a když ho uživatel bude mít vypnutý, tak zobrazit klasický odkaz, uživatel kliknout zvládne.

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: