Avatar
Dominik Gavril:

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
Nahoru Odpovědět  -1 8.7.2014 20:19
Nesnáším {}, proto se jim vyhýbám.
Avatar
Dominik Gavril:

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

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

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:

á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:

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  ±0 8.7.2014 20:28
Neaktivní uživatelský účet
Avatar
Dominik Gavril:

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
BlugW
Redaktor
Avatar
BlugW:

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
Pořiď si mac na www.appletrh.cz. Novinky a zajímavosti ze světa Apple na https://www.applemagazin.eu
Avatar
Dominik Gavril:

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:

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

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

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:

Zkus google a hledej "php nice url htaccess"

Nahoru Odpovědět 8.7.2014 20:47
No hope, no future, JUST WAR! For world peace Israel must be DESTROYED!
Avatar
ConflictBoy
Člen
Avatar
ConflictBoy:

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
Není štěstí bez činu
Avatar
Dominik Gavril:

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
Redaktor
Avatar
Odpovídá na Dominik Gavril
mkub:

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:

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
Není štěstí bez činu
Avatar
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):

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
Nesnáším {}, proto se jim vyhýbám.
Avatar
ConflictBoy
Člen
Avatar
Odpovídá na Dominik Gavril
ConflictBoy:

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
Není štěstí bez činu
Avatar
Dominik Gavril:

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:

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
Není štěstí bez činu
Avatar
Dominik Gavril:

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:

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
Není štěstí bez činu
Avatar
Dominik Gavril:

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
BlugW
Redaktor
Avatar
BlugW:

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
Pořiď si mac na www.appletrh.cz. Novinky a zajímavosti ze světa Apple na https://www.applemagazin.eu
Avatar
Dominik Gavril:

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:

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
Není štěstí bez činu
Avatar
Vojtěch Novák:

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  +2 8.7.2014 21:57
Avatar
ConflictBoy
Člen
Avatar
ConflictBoy:

Pravda, to mě nenapadlo :D

Nahoru Odpovědět 8.7.2014 21:59
Není štěstí bez činu
Avatar
BlugW
Redaktor
Avatar
Odpovídá na ConflictBoy
BlugW:

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
Pořiď si mac na www.appletrh.cz. Novinky a zajímavosti ze světa Apple na https://www.applemagazin.eu
Avatar
ConflictBoy
Člen
Avatar
Odpovídá na BlugW
ConflictBoy:

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
Není štěstí bez činu
Avatar
BlugW
Redaktor
Avatar
Odpovídá na ConflictBoy
BlugW:

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
Pořiď si mac na www.appletrh.cz. Novinky a zajímavosti ze světa Apple na https://www.applemagazin.eu
Avatar
ConflictBoy
Člen
Avatar
Odpovídá na BlugW
ConflictBoy:

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  +1 8.7.2014 22:55
Není štěstí bez činu
Avatar
Michal Žůrek (misaz):

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
Nesnáším {}, proto se jim vyhýbám.
Avatar
Odpovídá na BlugW
Martin Konečný (pavelco1998):

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
Avatar
BlugW
Redaktor
Avatar
Odpovídá na Martin Konečný (pavelco1998)
BlugW:

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
Pořiď si mac na www.appletrh.cz. Novinky a zajímavosti ze světa Apple na https://www.applemagazin.eu
Avatar
Ori
Člen
Avatar
Ori:

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 BlugW
Martin Konečný (pavelco1998):

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
Avatar
BlugW
Redaktor
Avatar
Odpovídá na Martin Konečný (pavelco1998)
BlugW:

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
Pořiď si mac na www.appletrh.cz. Novinky a zajímavosti ze světa Apple na https://www.applemagazin.eu
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.