Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: PHP URL

Aktivity
Avatar
Dominik Gavril:8.7.2014 20:15

Zdravím,

Mám taký menší problém :) Napísal som si script ktorý píše články na web tinyMCE myslím že sa to volá uspešne mi to odošle do databáze a tu som sa zasekol. Potrebuje aby každý článok mal url podľa toho akú som zadal tak napríklad do inputu zadám tomas se hraje a url bude xxxx.sk/clanok­.php?tomas-se-hraje.

<?php
include 'connect.php';

if (isset($_POST['save'])) {
        $title = $_POST['title'];
        $url = $_POST['url'];
        $description = $_POST['description'];
        $content = $_POST['obsah'];


    mysqli_query($connect, "INSERT INTO articles (article_title, article_content, article_url, article_description) VALUES ('$title', '$content', '$url', '$description')" );
    }

 ?>

Skúsim vám niako vysvetliť zámer o čo sa pokúšam snažím sa spraviť to že ak napíšem článok a uložím ho tak podľa toho aku som si zdal url na takej sa mi zobrazi samozrejme sssss.sk/clan­ky.php?url

Odpovědět
8.7.2014 20:15
„Život by bol oveľa jednoduchší, keby sme mali k nemu zdrojový kód.“
Avatar
Odpovídá na Dominik Gavril
Michal Žůrek - misaz:8.7.2014 20:19

hodně ti dá, když si přečteš tento tutorial http://www.itnetwork.cz/php/mvc

 
Nahoru Odpovědět
8.7.2014 20:19
Avatar
Dominik Gavril:8.7.2014 20:22

Myslím že je to v OPP ktoré ja zatiaľ vedieť nechcem z osobných dvôvodou

Nahoru Odpovědět
8.7.2014 20:22
„Život by bol oveľa jednoduchší, keby sme mali k nemu zdrojový kód.“
Avatar
mkub
Tvůrce
Avatar
Odpovídá na Dominik Gavril
mkub:8.7.2014 20:24

nie je na skodu sa naucit OOP, lebo v OOP existuju vynimky, OOP pouziva aj novy ovladac pre databazy

 
Nahoru Odpovědět
8.7.2014 20:24
Avatar
Dominik Gavril:8.7.2014 20:27

áno viem o tom :) Je tu niekto kto by mi vedel poradiť ?

Nahoru Odpovědět
8.7.2014 20:27
„Život by bol oveľa jednoduchší, keby sme mali k nemu zdrojový kód.“
Avatar
Neaktivní uživatel:8.7.2014 20:28

No bez OOP toho moc nenakódiš... Prečo sa nechceš naučiť jeden z najdôležitejších princípov v programovaní, na ktorom je založené takmer všetko? http://www.itnetwork.cz/…php-tutorial Prečítaj si ten seriál, nie je to riešené objektovo.

Editováno 8.7.2014 20:32
Nahoru Odpovědět
8.7.2014 20:28
Neaktivní uživatelský účet
Avatar
Dominik Gavril:8.7.2014 20:31

Určite to pôjde bez OPP :) Myslím si že je to podstatne ťahšie a jeden slúsený programátor mi poradil pomaličky prejsť na OPP keĎ sa zoznámim s funkciami

Nahoru Odpovědět
8.7.2014 20:31
„Život by bol oveľa jednoduchší, keby sme mali k nemu zdrojový kód.“
Avatar
Neaktivní uživatel:8.7.2014 20:33

Mám stejný dotaz, OOP zatím není můj kamarád. :) Pokud by někdo byl hodný a poradil, byl bych vděčný, na OOP jsem se už koukál, a ztratil jsem se už asi v 2 díle :D

Editováno 8.7.2014 20:34
Nahoru Odpovědět
8.7.2014 20:33
Neaktivní uživatelský účet
Avatar
Dominik Gavril:8.7.2014 20:34

NERS som čítal a odtiaľ ťahám inšpiráciu :)

Nahoru Odpovědět
8.7.2014 20:34
„Život by bol oveľa jednoduchší, keby sme mali k nemu zdrojový kód.“
Avatar
Odpovídá na Neaktivní uživatel
Vojtěch Novák:8.7.2014 20:40

Pro jednoduché weby se nemusí používat OOP.

 
Nahoru Odpovědět
8.7.2014 20:40
Avatar
Dominik Gavril:8.7.2014 20:41

Presne s tebou súhlasim :) Nájde sa tu niekto kto pomôže ?

Nahoru Odpovědět
8.7.2014 20:41
„Život by bol oveľa jednoduchší, keby sme mali k nemu zdrojový kód.“
Avatar
vajkuba1234
Člen
Avatar
vajkuba1234:8.7.2014 20:47

Zkus google a hledej "php nice url htaccess"

Nahoru Odpovědět
8.7.2014 20:47
No hope, no future, JUST WAR!
Avatar
ConflictBoy
Člen
Avatar
ConflictBoy:8.7.2014 20:47

No pokud jsem to správně pochopil, mám dojem, že se ti to asi nepovede. Pokud je to opravdu v databázi, přistoupíš k tomu třeba takhle:

xxxx.sk/clanok.php?url=tomas-se-hraje

V clanok.php si pak z proměnné $_GET['url'] najdeš článek v databázi a vypíšeš ho. Pokud opravdu trváš ta této adrese, musíš si vytvořit soubor .htaccess s řádkem

RewriteRule clanok.php?tomas-se-hraje /clanok.php?url=tomas-se-hraje [L,QSA]

A mimochodem - OOP se určitě nauč a taky si ošetři ty vstupy :) Co kdyby někdo použil SQL injection?

Nahoru Odpovědět
8.7.2014 20:47
I'm programmer, I have no life :)
Avatar
Dominik Gavril:8.7.2014 20:51

Samozrejme ošetrovať to budem na konci :) No http://www.itnetwork.cz/…php-tutorial tu je to pekne spravené všimni si posledný img url hore :) a žiadny rewrite tam nevidím

Nahoru Odpovědět
8.7.2014 20:51
„Život by bol oveľa jednoduchší, keby sme mali k nemu zdrojový kód.“
Avatar
mkub
Tvůrce
Avatar
Odpovídá na Dominik Gavril
mkub:8.7.2014 20:56

osetrovat vstup od uzivatelov, ci uz z formulara, alebo z adresoveho riadka by si mal hned a nie az na konci, aby si na to nezabudol

 
Nahoru Odpovědět
8.7.2014 20:56
Avatar
ConflictBoy
Člen
Avatar
Odpovídá na Dominik Gavril
ConflictBoy:8.7.2014 20:57

Jo samozřejmě :D Tak teda .htaccess nepotřebuješ, ale já v tom posledním img vidím

neco.cz/editor.php?**URL**=navod

Důležité je tam to URL - značí přiřazení GET proměnné. Ty chceš

clanok.php?tomas-se-hraje

Tedy bez přiřazení nějaké proměnné. Chápeme se? :)

Nahoru Odpovědět
8.7.2014 20:57
I'm programmer, I have no life :)
Avatar
Dominik Gavril:8.7.2014 20:57

áno :)

Nahoru Odpovědět
8.7.2014 20:57
„Život by bol oveľa jednoduchší, keby sme mali k nemu zdrojový kód.“
Avatar
Michal Žůrek - misaz:8.7.2014 21:01

metody (částečně i neobjektové) jsou popsané v tom tutorialu na který jsem uváděl odkaz, asi 2 díl.

 
Nahoru Odpovědět
8.7.2014 21:01
Avatar
ConflictBoy
Člen
Avatar
Odpovídá na Dominik Gavril
ConflictBoy:8.7.2014 21:01

Tak prima :) Klidně se ptej, od toho tu jsme ;)
A jak píše mkub, vstupy hned jak píšeš kód, zapomíná se na to a nějaký zmetek ti může smazat celou databázi :D Bylo by taky dobré ošetřit, jestli zadaná URL náhodou v databázi neexistuje ;)

Nahoru Odpovědět
8.7.2014 21:01
I'm programmer, I have no life :)
Avatar
Dominik Gavril:8.7.2014 21:11

Pracujem na localhoste :) Tak hneď ťa teda trošku "zneužijem" rád by som spravil to že po zapíse do databázy sa mi v url podľa tej akú som zverejnil ukáže text čo som zadal do inputov :)

Nahoru Odpovědět
8.7.2014 21:11
„Život by bol oveľa jednoduchší, keby sme mali k nemu zdrojový kód.“
Avatar
ConflictBoy
Člen
Avatar
Odpovídá na Dominik Gavril
ConflictBoy:8.7.2014 21:19

Tak pokud chceš teda adresu clanok.php?ur­l=tomas-se-hraje v tou souboru clanok.php můžeš použít tento jednoduchý script

<?php
require_once 'connect.php';
$_GET['url'] = addslashes(htmlspecialchars(strip_tags($_GET['url'])));
$query = mysqli_query($connect, "SELECT * FROM articles WHERE article_url='$_GET['url']'" );
$data = $query->fetch_object();

echo $data->article_title;
echo $data->article_content;
echo $data->article_url;
echo $data->article_description;

Samozdřejmě bys měl taky ošetřit jestli záznam v DB existuje atd.

Nahoru Odpovědět
8.7.2014 21:19
I'm programmer, I have no life :)
Avatar
Dominik Gavril:8.7.2014 21:21

Stačí keď nahradím môj code tým tvojim ?

Editováno 8.7.2014 21:23
Nahoru Odpovědět
8.7.2014 21:21
„Život by bol oveľa jednoduchší, keby sme mali k nemu zdrojový kód.“
Avatar
ConflictBoy
Člen
Avatar
Odpovídá na Dominik Gavril
ConflictBoy:8.7.2014 21:26

Nevím, jestli jsem to pochopil správně :D To co jsem posílal dej do toho souboru clanok.php - tím zajistíš výpis textu zadaného do inputu ;)
Pokud se chceš přesměrovat na tu URL hned po odeslání článku dej pod svůj kód

header("location: neco.cz/clanok.php?url=".$_POST['url']);

Jsem už dost nechápavý, to pivo dělá divy :D

Nahoru Odpovědět
8.7.2014 21:26
I'm programmer, I have no life :)
Avatar
Dominik Gavril:8.7.2014 21:28

v clanky.php som mal code ktorý som vložil do príspevku jedna ak ho nahradím tvojim stále to niako nefunguje

Nahoru Odpovědět
8.7.2014 21:28
„Život by bol oveľa jednoduchší, keby sme mali k nemu zdrojový kód.“
Avatar
Neaktivní uživatel:8.7.2014 21:29

http://cubiq.org/…rl-generator

tu máš funkci, takže to url dej to toho toAscii() a budeš mit to co chceš :)

Editováno 8.7.2014 21:30
Nahoru Odpovědět
8.7.2014 21:29
Neaktivní uživatelský účet
Avatar
Dominik Gavril:8.7.2014 21:33

Počkám na radu ConflictBoy a potom to možno skúsim :)

Nahoru Odpovědět
8.7.2014 21:33
„Život by bol oveľa jednoduchší, keby sme mali k nemu zdrojový kód.“
Avatar
ConflictBoy
Člen
Avatar
Odpovídá na Dominik Gavril
ConflictBoy:8.7.2014 21:53

Ten kód co jsi posílal ty je na psaní článku. Kód co jsem posílal já je na jejich výpis. Pokud chceš vypisovat ty články pod url neco.cz/clanok­.php?URL=neja­ky-url tak ten můj kód hoď do souboru clanok.php
A jak nefunguje? Vypisuje se nějaká chyba?

Nahoru Odpovědět
8.7.2014 21:53
I'm programmer, I have no life :)
Avatar
Vojtěch Novák:8.7.2014 21:57

Při zápisu clanok.php?tomas-se-hraje stačí použít pro získání tomas-se-hraje

$_SERVER["QUERY_STRING"]
 
Nahoru Odpovědět
8.7.2014 21:57
Avatar
ConflictBoy
Člen
Avatar
ConflictBoy:8.7.2014 21:59

Pravda, to mě nenapadlo :D

Nahoru Odpovědět
8.7.2014 21:59
I'm programmer, I have no life :)
Avatar
Odpovídá na ConflictBoy
Neaktivní uživatel:8.7.2014 22:16

Když už jsme u toho, tak jak pomocí GETka najdu v DB zápis, když je přefiltrovanej funkci např.:

toAscii($string);

?

Např. v DB je name=Dobrý večer, z toho mi funkce udělá v url name=dobry-vecer.
Přes GET['name'] mi to samozřejmě vezme dobry-vecer, takže v DB mi to už nic nenajde :D

Díky

Editováno 8.7.2014 22:17
Nahoru Odpovědět
8.7.2014 22:16
Neaktivní uživatelský účet
Avatar
ConflictBoy
Člen
Avatar
Odpovídá na Neaktivní uživatel
ConflictBoy:8.7.2014 22:41

Hmm no pokud jsem to pochopil správně, tak bys asi musel projet v DB všechny názvy a hledat, kde se url rovná s názvem po projetí funkce toAcii();
Neříkám, že je to nejlepší řešení, ale jak říkám, chlastám a už mi to nemyslí :D

Nahoru Odpovědět
8.7.2014 22:41
I'm programmer, I have no life :)
Avatar
Odpovídá na ConflictBoy
Neaktivní uživatel:8.7.2014 22:44

To mě taky napadlo, ale netuším jak projet všechny záznamy v DB funkci toAscii() při hledání. :D

Klidně to počká, už se s tím patlám dlouho, takže není problém počkát ještě :D

Jinak užij si to :D

Nahoru Odpovědět
8.7.2014 22:44
Neaktivní uživatelský účet
Avatar
ConflictBoy
Člen
Avatar
Odpovídá na Neaktivní uživatel
ConflictBoy:8.7.2014 22:55

Poměrně jednoduše

$nalez = array();
$query = SQL("SELECT id,name FROM articles");
while ($data = $query->fetch_object()){
if(toAscii($data->name)===$_GET['url']){
$nalez() = $data->id;
}
for($i=0;$i<count($nalez);$i++){
echo $nalez($i);
}
//for je pro tebe pro případ, že by tam bylo víc článků se stejným názvem.

Jinak teda by bylo asi nejlepší vytvořit v databázi nový sloupec s url adresami, vytvořit podobný script a naflákat tam url adresy podle názvu, protože pokaždé prohledávat celou databázi je trochu nepraktické :)
Zítra mě možná napadne něco lepšího a dám vědět :)

Nahoru Odpovědět
8.7.2014 22:55
I'm programmer, I have no life :)
Avatar
Michal Žůrek - misaz:8.7.2014 23:41

A když už se to řeší tak prasácky, není lepší ukládat to do souboru pak je načítat?

 
Nahoru Odpovědět
8.7.2014 23:41
Avatar
Odpovídá na Neaktivní uživatel
Martin Konečný (pavelco1998):9.7.2014 0:29

V DB si udělej sloupec třeba url a do něj ukládej ty hodnoty jako "dobry-vecer".

Nahoru Odpovědět
9.7.2014 0:29
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Odpovídá na Martin Konečný (pavelco1998)
Neaktivní uživatel:9.7.2014 1:03

To mě napadlo jako první, ale zdálo se mi to nějak zbytečné, proto jsem hledal jinou možnost, pak mě napadlo prohledat celý sloupec name v DB, ale nevěděl jsem jak to udělat, díky ConflictBoy který mi ukázal jak to prohledat mi to funguje.

Tohle je asi nejlepší neobjektová možnost. Asi se budu muset opravdu začít pořádně učit OOP i když mi vůbec nejde :D

Editováno 9.7.2014 1:04
Nahoru Odpovědět
9.7.2014 1:03
Neaktivní uživatelský účet
Avatar
Ori I
Člen
Avatar
Ori I:9.7.2014 10:28

to, čo ti ukázal ConflictBoy funguje, ale vyberá to každý jeden riadok. V prípade, že by ich tam bolo 5000+ mohol by sa ti spomaliť web. Ideálne riešenie, tak ako to riešia všetky stránky s touto funkciou, je další stĺpec, do ktorého by si ukladal hodnotu toho url

 
Nahoru Odpovědět
9.7.2014 10:28
Avatar
Odpovídá na Neaktivní uživatel
Martin Konečný (pavelco1998):9.7.2014 12:02

Určitě nevybírej všechny řádky jen proto, abys použil jeden. Řešení s přidáním nového sloupce je jednak mnohem méně zátěžové na server, tak i jednodušší pro tebe (místo procházení pole a používání různých funkcí ti bude stačit jeden SELECT a jeden fetch) :-)

Nahoru Odpovědět
9.7.2014 12:02
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Odpovídá na Martin Konečný (pavelco1998)
Neaktivní uživatel:9.7.2014 17:56

Teď mi to myslí lip než v 1 noci :D
Jop vyřeším to tím dalším sloupcem :) Díky

Nahoru Odpovědět
9.7.2014 17:56
Neaktivní uživatelský účet
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 39 zpráv z 39.