Smerovani z index do slozek – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Smerovani z index do slozek – PHP – Fórum – Programujte.comSmerovani z index do slozek – PHP – Fórum – Programujte.com

 

luboš
~ Anonymní uživatel
95 příspěvků
16. 6. 2015   #1
-
0
-

Mám dotaz, jak směrovat všechny dotazy na index.php a odtamtud teprve do příslušných adresářů bez použití htaccess?. Chtěl bych používat jen index.php a ten index.php plnit sadou různých obsahů, např třeba by uživatel chtěl vidět aktuality tak by na indexu klik na odkaz aktuality.php a v indexu by se mu zobrazila sada textů pro aktuality nebo na indexu by klikl uživatel na odkaz kontakty.php a v index.php by se mu objevila celá sada určená pro zobrazení kontaktů když na něm bude formulář na odeslání emailu tak po vyplnění a odeslání na server by požadavek přišel do index.php ,

ten index.php by nějak poznal že uživatel chce odeslat email a že je aktuálně na stránce kontaky.php poté by nasměroval dotaz do složky scripty/email.php a pak by po odeslání emailu vrátilna index.php  nějakou hlášku že je vše v pořádku .ten index by se naplnil opět obsahem kontaktů a tou hláškou a bylo by to.

Nneí mi jasný jak by to měl index.php poznat že má uživatel aktualně zobrazenou sadu pro kontakty a že v tý sadě pro kontakty vyplnil a odeslal formulář , a kevšemu aby index poznal že to odeslal Karel  a ne Standa . Jde mi o to aby když z indexu přijde jakýkoliv požadavek aby index rozpoznal kdo to poslal na jaké je stránce(jaký je aktuální obsah) co chce provést a když tohle vše zvládne tak aby poslal správný obsah správnému uživateli zkusím ukázat na příkladu

 toto je index.php

<?php session_start; ?>
<html lang="cs">
<head>
 <meta charset="utf-8">
 <link rel='stylesheet' href='style-email.css'>
 <link rel='stylesheet' href='style.css'> 
</head>


 <h1>email</h1>
<form  action="scripty/email.php" method="post"> 
<input type="text" name="to" placeholder="email příjemce" required value="whiterabbit1@seznam.cz"><br>
<input type="text" name="from" placeholder="email odesílatele" required value="aionff@seznam.cz"><br>
<input type="text" name="subject" placeholder="předmět emailu" value="nadpis emailu"><br>
<textarea name="message" id="example-one" cols="30" rows="5" placeholder="text emailu" required>nejaky text emailu</textarea><br>
<input type="submit" value="odeslat">
</form>   
</html>

z index.php jde požadavek na odeslání emailu do scripty/email.php. Všechny scripty chci mít bokem od indexu ve složce scripty proto ten action míří do scripty/email.php

zde je kód ve scripty/email.php

$_POST['message'] = wordwrap($_POST['message'], 70, "<br>\r\n");
          $_POST['message'] ='<b><i><span style="color: green">'.$_POST['message'].'</span></i></b>'; 
      
    mail($_POST['to'], $_POST['subject'], $_POST['message']);

tady se odešle email a teď potřebuji Karlovi poslat na index.php zpět původní sadu obsahu pro kontakty

a ještě hlášku -

Karle je to dobrý odeslalo se to,

Přesměroval bych ho asi takto  header(location:../index.php),

Podle přihlášení a ip adresy a user agenta zjistím že se jedná o Karla, to bych věděl, ale nevím, že karel poslal email ze sady pro kontakty protože nevím jak tuto informaci zachitit od uživatele, tak nevím  který obsah mu mám vrátit a nevím jak ten obsah naplnit.

Protože takových formulářů na odeslání emailu můžu mít víc v různých sadách třeba kromě kontaktů i v sadě objednat.php ,kde se objednávka také posílá na email ,tak je jasné  že podle typu formuláře nelze zjistit ze které sady dotaz přišel .Napad mně nápad, že bych ty informace zapsal do databáze a index by si vždy načítal informace z databáze z jednoho místa

ale problém je vtom že pokud Karel udělá nějakou akci na serveru tak se uloží do DB a zobrazí se Karlovi jenže když hned po karlovi přijde na stránky cizí uživatel tak se mu zobrazí Karlovo data protože index čerpá obsah ze stejného úložiště ,

pak je tedy nejrozumnější informovat index.php aby načítal informace pokaždé pro jednoho určitého uživatele tedy buď pro neznámého návštěvníka a nebo pro konkrétního uživatele ale nevím jak po odeslání emailu a po přesměrování pomocí header(location"../index.php) to tomu indexu sdělit, mohl bych muto poslat třeba v url pomocí header(location:../index.php?a= $id-uzivatele) ale to url už nebude cool a na session se taky nechci  spoléhat jediná cesta je přes uloženi do DB ale to zas nevím jak to indexu oznámit.
Zkrátka přes htaccess , session ani přes url to nechci posílat chci to zajistit přes databázi. Potřebuji

říct indexu- zjisti kdo  poslal pozadavek ,z jaké sady obsahů to přišlo,jakou akci chce provést , tu akci proveď ,zajdi do DB pro správnou sadu toho tazatele tu sadu mu vypiš i s hláškou jestli se akce povedla.

já si stím lámu hlavu už dva dny a nvím co s tím , jak udělat web jen na index.php a na databázi . V nette to prý jde i bez htaccess ale když jsem na to koukal tak jsem z toho nebyl dvakrát moudrej tak prosím o vaše rady

Nahlásit jako SPAM
IP: 89.103.9.–
PiranhaGreg0
Stálý člen
16. 6. 2015   #2
-
0
-

Nechce se mi to celý číst , ale přesměrování bez .htaccessu moc dobře nepůjde. Můžeš max pomocí JavaScriptu fakeovat URL...

Např. uživatel klikne na link http://example.cz/kontakt.php, ty to kliknutí odchytíš JavaScriptem a změníš na http://example.cz/index.php?url=aktuality, PHP skript v index.php pak podle $_GET['url'] načte správnou stránku a JavaScript se pak postará aby stránka vypadala v URL jako http://example.cz/kontakt.php. Je to ale dementní řešení a nevidím důvod proč nepoužít ten .htaccess, se kterým se to tak standardně dělá.

Řešení s JS má řadu nevýhod. Ta hlavní je, že když dá do prohlížeče někdo přímo URL http://example.cz/kontakt.php, tak ti to skončí na 404 Not Found  .

Nahlásit jako SPAM
IP: 109.81.210.–
luboš
~ Anonymní uživatel
95 příspěvků
16. 6. 2015   #3
-
0
-

#2 PiranhaGreg
tak na javascript jsem uplne zapomněl ale to je to samý jako session , to si uzivatel taky může vypnout stejně tak na každým hostingu taky není vždy povolen htaccess proto potřebuju zjistit jaký je jiný řešení když se nedá na to základní spolehnout ,ale přece jen to nějak musí jít abych uživateli pustil vstup jen na ROOT do indexu a hloběji do složek by už nesměl?

Nahlásit jako SPAM
IP: 89.103.9.–
PiranhaGreg0
Stálý člen
16. 6. 2015   #4
-
0
-

No o to se právě stará .htaccess. Bez něho toho moc nezmůžeš. Práva jdou ještě řešit na úrovni file systému, ale předpokládám, že když nemáš přístup k .htaccessu, tak ani k terminálu  .

Na složky ti ale nemá šanci nikdo přijít. Když budeš mít všechno ve složce brekekemekeke a nebudeš mít zaplej directory listening, tak se případný záškodník nemá nejmenší šanci dozvědět název té složky ani případný obsah.

Nahlásit jako SPAM
IP: 109.81.210.–
luboš
~ Anonymní uživatel
95 příspěvků
16. 6. 2015   #5
-
0
-

mně teď napadlo jedině odchitit alespoň submit a form podle nich nasměrovat na případný script/email něco jako:

<form name="email-kontakty" method="post" action="index.php">
<input type="text" name="jmeno" maxlenght="30">Jméno <br>
<input type="submit" name="odeslat" value="Odešli">
</form>

<?php
if(isset($_POST['odeslat'], $_POST['email-kontakty'])  ) {
include_once("script/email.php")
}
?>

ale zase nevim jak bych vyřešil  kdyby uživatel kliknul přímo na odkaz <a rel="nofollow" href="kontakty.php">kontakty</a>  v tomhle případě submit ani form neodchitim??

Nahlásit jako SPAM
IP: 89.103.9.–
luboš
~ Anonymní uživatel
95 příspěvků
16. 6. 2015   #6
-
0
-

#5 luboš
pardon měl jsem ty tagy vložit jako kód. 

<a href="kontakty.php">kontakty</a>
Nahlásit jako SPAM
IP: 89.103.9.–
PiranhaGreg0
Stálý člen
16. 6. 2015   #7
-
0
-

Nejlepší, čeho lze docílit, tak je pohrát si s parametry URL za otázníkem.

Např odkazy

<a href="/?kontakt">Kontakt</a>
<a href="/?fotografie">Fotografie</a>

lze pak v index.php odchytávat jako 

if (isset($_GET['kontakt']))
	include('kontakt.php');
else if (isset($_GET['fotografie']))
	include('fotografie.php');
else
	include('uvod.php');

URL se v tomto případě bude tvářit jako http://example.cz/?kontakt. Jen ten otazník je tam navíc no  .

Nahlásit jako SPAM
IP: 109.81.210.–
luboš
~ Anonymní uživatel
95 příspěvků
16. 6. 2015   #8
-
0
-

To je docela vychytralý zkusím nad tím ještě pouvažovat, to co píšeš bude asi jediná cesta, jen mně zaráží jak je programátor bez htaccess, session, a JS úplně bezradnej, zbydou mu jen POSTy a GETy,

Nahlásit jako SPAM
IP: 89.103.9.–
Kit+15
Guru
16. 6. 2015   #9
-
0
-

#8 luboš
Proč se bráníš použití .htaccess? Stačí jen pár řádek a je to: 

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !\.(css|js|icon|zip|rar|png|jpg|gif|pdf)$ index.php [L]

A to je vše, jen to kopíruji mezi projekty.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:221:5...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
luboš
~ Anonymní uživatel
95 příspěvků
16. 6. 2015   #10
-
0
-

já se tomu htaccess vůbec nebráním ba naopak, jen chci vyřešit situaci kdy nemám htaccess ani session ani JS ,chci přijít nato jaký jsou jiný možnosti jak přenášet a uchovávat data a jak bez htaccess udržet cool url.

Nahlásit jako SPAM
IP: 89.103.9.–
luboš
~ Anonymní uživatel
95 příspěvků
16. 6. 2015   #11
-
0
-

jak jsem psal již přdedtím nette prý něco takovýho má ,že i když není povolený mod rewrite tak i tak funguje routování aspoň to tak psal Jakub Vrána někde na svých stránkách.

Nahlásit jako SPAM
IP: 89.103.9.–
Kit+15
Guru
16. 6. 2015   #12
-
0
-

#10 luboš
Stačí vyměnit Apache za Nginx.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:221:5...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
luboš
~ Anonymní uživatel
95 příspěvků
16. 6. 2015   #13
-
0
-

moc nettovskýmu routování nerozumím nejsem profík :-(

Nahlásit jako SPAM
IP: 89.103.9.–
luboš
~ Anonymní uživatel
95 příspěvků
16. 6. 2015   #14
-
0
-

je to jen teoretická situace kdyby zamnou přišel někdo a řek chci stránky na svůj server kde mám apache a nechci mít zapnutý modrewrite nechci spolehat na session ani na JS, ajk se taková situace řeší když za mnou někdo přijde a chce jen kódy a ne hosting??

Nahlásit jako SPAM
IP: 89.103.9.–
luboš
~ Anonymní uživatel
95 příspěvků
16. 6. 2015   #15
-
0
-

jak už psal Yuhů, Dušan Janovský "je to jev řídký ale je"

Nahlásit jako SPAM
IP: 89.103.9.–
luboš
~ Anonymní uživatel
95 příspěvků
17. 6. 2015   #16
-
0
-

tak jsem vyřešil ten problém s odchycením toho na který odkaz uzivatel kliknul a jakou stránku chce navštívit

if (isset($_GET["kontakty"])){
	  include_once('kontakty');
  }
<a href="index.php?kontakty=kontakty">kontakty</a><br>

ovšem přijde mi to dost náchylný na podvrhnutí cizího obsahu když zadám adresu zároveň s hodnotou?.

Nahlásit jako SPAM
IP: 89.103.9.–
peter
~ Anonymní uživatel
4014 příspěvků
18. 6. 2015   #17
-
0
-

Tak to oprav tak, aby tam neslo podvrhnout nic, co tam nema byt :) 99% kodu na netu vypada presne takto, jako by to psal student ve skole. Oni je tam asi nechteji trapit jeste nejakym zabezpecovanim. Sak co :)
Ale ten ucitel si uz neuvedomuje, ze pouziva online banku a ten program psal treba takovy student. Takze kdyz nahodou prijde o penizky z te banky, tak si za to muze sam!

Nahlásit jako SPAM
IP: 2001:718:2601:1f7:658e:8b...–
luboš
~ Anonymní uživatel
95 příspěvků
18. 6. 2015   #18
-
0
-

#17 peter

to jak bych to osetril mi nedělá takový starosti jako to, že nikdo z vás mi nedokáže odpovědět na to jak se řeší situace když se nemůžeš spolehnout na htaccess, session a javascript, buď na to kašlete nebo to taky neumíte :-),

já jsem kolem toho strávil dohromady 7 poctivychích dní a na něco málo jsem přišel ale jsou to řešení tak nějak přes ruku , zatím jsem rozumný řešení od nikoho nečetl takže se domnívám že se to rozumně prostě vyřešit nedá?.

Nahlásit jako SPAM
IP: 89.103.9.–
PiranhaGreg0
Stálý člen
18. 6. 2015   #19
-
0
-

zatím jsem rozumný řešení od nikoho nečetl takže se domnívám že se to rozumně prostě vyřešit nedá?

Ano, správně   

Nahlásit jako SPAM
IP: 109.81.210.–
peter
~ Anonymní uživatel
4014 příspěvků
19. 6. 2015   #20
-
0
-

Jj, tez si nemyslim, ze to ma rozumne reseni. Ale v teto oblasti se nevyznam tolik. Nevim, jestli to bylo zmineno, ale napada mne jen presmerovani error page 404 na nejake php, ktere si s tou adresou poradi. Jenze to se opet dela pres htaccess nebo ti to musi nastavit admin na serveru. Nebo na nejaky exe to presmerovat. Nebo na uplne jinej web, kterej to zas bude linkovat zpet s upravenou adresou.

Nahlásit jako SPAM
IP: 2001:718:2601:1f7:8443:6e...–
lubos
~ Anonymní uživatel
95 příspěvků
19. 6. 2015   #21
-
0
-

dík kluci za snahu uz to vzdávám :-)

Nahlásit jako SPAM
IP: 78.80.135.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 44 hostů

Podobná vlákna

Mazání složek — založil

C# mazaní složek ( 2 ) — založil ospaly.stanislav

C# - procházení složek — založil kukla11

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý