| Autor | Zpráva | ||
|---|---|---|---|
| hitny14 Profil * |
#1 · Zasláno: 3. 6. 2013, 22:25:30
Dobrý den, Vytvořil sem si jednoduchou administraci přidávání článků na stránky, která obsahuje formulář pro nadpis a text článku pomocí php scriptu se zapíše do db. Já bych ale potřeboval aby se mi rovnou při vložení stránku na web vytvořil automaticky nový odkaz např: example.cz/novy-clanek.php Poradil by mi prosím vás někdo jak na to?
|
||
| nounejm Profil * |
#2 · Zasláno: 3. 6. 2013, 22:44:41 · Upravil/a: nounejm
prostě bude nový odkaz třeba example.cz/index?clanek=2 a z toho se pomocí .htaccess udělají pěkné url - např. example.cz/clanky/nove-povidani-o-rikani.html
viz třeba: tady jinak hledat .htaccess pěkné url mod_rewrite oprava: example.cz/index.php?clanek=2 |
||
| Hitny14 Profil * |
#3 · Zasláno: 3. 6. 2013, 23:09:58
A jak dcílím toho example.cz/index.php?clanek=2? Já mám totiž pak ještě script který mi vypisuje všechny články pod sebe na adrese třeba example.cz/clanky.php.
|
||
| nounejm Profil * |
#4 · Zasláno: 3. 6. 2013, 23:18:09
Tak to je chyba - musí být skript, který vypíše jeden článek.
Pokud se vypisují všechny články na jednu stránku, tak přece ani nemusí být víc odkazů - stačí jeden, ale to je špatné řešení - co když bude článků časem sto? Prostě to nejde obejít. Ten skript na výpis konkrétního článku tam být musí. A pod článkem nebo vedle mohou být odkazy na další články. Pokud někdo umí vypsat z databáze všechny články, nemůže být pro něj problém vypsat pouze jeden. |
||
| hitny14 Profil * |
#5 · Zasláno: 4. 6. 2013, 11:29:50
Už mám skript který mi vytvoří dovou url třeba example.cz/clanek.php. ale když ten odkaz vytvořím tak mi to jako by stránku neodevře a potřebovak bych vědět jak vytvořit stránku clanek.php se vzhledem jako je na každé stránce?
|
||
| nounejm Profil * |
#6 · Zasláno: 4. 6. 2013, 13:02:58
weby se dělají tak, že se skládají ze třeba hlavičky, menu, těla a patičky
volá se vždy jeden soubor třeba index.php a v něm se to skládá - např.: include('hlavicka.php'); include('telo.php'); include('paticka.php'); example.cz/index.php?clanek=2 example.cz/index.php?clanek=13 example.cz/index.php?clanek=25 volá vždycky ten stejný soubor - pouze s jiným parametrem, takže vzhled bude vždy stejný ten parametr clanek předaný v url v php zjistím pomocí $_GET['clanek'] musí teda existovat nějaký soubor telo.php nebo clanek.php a ten podle toho parametru předaného v url zobrazí správný obsah - např. vybere z databáze požadovaný článek "SELECT * FROM clanky WHERE id='".addslashes($_GET['clanek']) ."'" a ten potom zobrazí - tudíž vzhled bude vždy stejný
Už mám skript který mi vytvoří dovou url - jakým způsobem vytvoří novou url? když ten odkaz vytvořím tak mi to jako by stránku neodevře - ta stránka asi neexistuje |
||
| hitny14 Profil * |
#7 · Zasláno: 4. 6. 2013, 22:17:11
Celý kod pro přidání článku a vytvoření url vypadá takto:
<?php
include 'config.php';
if (isset($_POST['uloz']))
{
$nadpis = $_POST['nadpis'];
$clanek = $_POST['text'];
$datum = date("d.m.Y");
$autor = $_SESSION['UserLogin'];
$url = $_POST['url'];
$sql = "INSERT INTO clanky (nadpis, clanek, datum, autor) VALUES ('$nadpis', '$clanek', '$datum', '$autor')";
if (mysql_query($sql))
{
echo "<strong>Článek byl uspěšně nahrán! Pro další editaci máčkněte <a href=".$url.'.php'">zde</a>.</strong>";
}
else
{
echo "<strong>Článek se nepovedlo nahrát zkuste to prosím později nebo kontaktujde správce!</strong>";
}
}
?>Jestli je to nějak špatně mohl by jsi mi prosím poradit už si nevím rady =( |
||
| abc Profil |
#8 · Zasláno: 4. 6. 2013, 22:25:30
1) sloupec datum rychle změň na typ datetime, dokud je čas
2) „Jestli je to nějak špatně mohl by jsi mi prosím poradit už si nevím rady =(“ není popís problému 2) co nefunguje? nějaká chybová hláška? |
||
| Hitny14 Profil * |
#9 · Zasláno: 4. 6. 2013, 23:02:56
Nahoře je to popsaný co potřebuju. Tímto kodem vložímk článek do db a vytvořím si nový okdkaz např: example.cz/clanek1.php. A já bych potrěboval aby se mi vytvořila na serveru stránka clanek1.php se stejným vzhledem jako mím trěba na indexu.
|
||
| nounejm Profil * |
#10 · Zasláno: 4. 6. 2013, 23:31:25
Hitny14:
takto se to dělá: [#6] nounejm nejdřív udělej soubor třeba test.php, který dokáže vypsat 1 článek z databáze (a je jedno jestli vypíše článek s id=1 nebo id=5) potom změň databázový dotaz tak, aby uměl zobrazit článek s id v url example.cz/test.php?clanek=2 - to id se z url předá do php pomocí $_GET['clanek'] Neustále na to jdeš tvrdohlavě odzadu - nejřív si vymyslíš nějaké url a potom chceš něco vytvářet. Nejdřív vytvoř soubor, který umí zobrazit 1 článek podle parametru z url a potom lehce vytvoříš odkazy |
||
| hitny14 Profil * |
#11 · Zasláno: 5. 6. 2013, 12:42:56 · Upravil/a: hitny14
kod pro zápis vypadá takto:
<?php
include 'config.php';
if (isset($_POST['uloz']))
{
$nadpis = $_POST['nadpis'];
$clanek = $_POST['text'];
$datum = date("d.m.Y");
$autor = $_SESSION['UserLogin'];
$sql = "INSERT INTO clanky (nadpis, clanek, datum, autor) VALUES ('$nadpis', '$clanek', '$datum', '$autor')";
if (mysql_query($sql))
{
echo '<strong>Článek byl uspěšně nahrán! Pro další editaci máčkněte <a href="clanky.php?clanek=">zde</a>.</strong>';
}
else
{
echo "<strong>Článek se nepovedlo nahrát zkuste to prosím později nebo kontaktujde správce!</strong>";
}
}
?>a kod pro zobrazení: <?php
include 'config.php';
//$sql = "SELECT * FROM clanky order by id desc";
$sql = "SELECT * FROM clanky WHERE id=" . (int) $_GET["idClanek"];
$query = mysql_query($sql);
while($row = mysql_fetch_array($query))
{
echo "<h3>".$row["nadpis"]."</h3>";
echo "<p>".$row["clanek"]."</p>";
echo "<p>".$row['datum']."</p><p class='autor'>".$row['autor']."</p>";
echo "<p><a href='?smazat=1&idClanek=".$row["id"]."'>Smazat článek</a> <a href='uprava_clanku.php?edit=1&idClanek=".$row["id"]."'>Uprav článek</a></p>";
echo "<hr>";
}
if ($_GET["smazat"] && $_GET["idClanek"])
{
mysql_query("DELETE FROM clanky WHERE id = " . (int) $_GET["idClanek"]);
}
mysql_close();
?>Už nevím jak na to =( |
||
| nounejm Profil * |
#12 · Zasláno: 5. 6. 2013, 14:41:27
vidím, že jsem to asi špatně pochopil :-)
jinak pozor na example.cz/admin.php?smazat=1&idClanek=2 - toto by mohl někdo zavolat z prohlížeče (ale možná je před tím kontrola, jestli je přihlášený admin) |
||
| hitny14 Profil * |
#13 · Zasláno: 5. 6. 2013, 15:31:58
Je tam kontrola to mam vyzkouseny. A jak by jsi mi stim poradil?
|
||
|
Časová prodleva: 13 let
|
|||
0