Autor | Zpráva | ||
---|---|---|---|
Adam501 Profil |
#1 · Zasláno: 30. 10. 2010, 13:32:04
Ahoj. Na této stránce, jsou články. A já bych chtěl, aby ty články mohl psát i někdo jiný než já. Do redakčního systému se mi nechce, ale napadlo mě tohle: vstup na stránky s formulářem přes .htaccess(.htpasswd). Pak by se do fromuláře napsal článek a odeslal by se do souboru "clanky.php". Do výsledné stránky by se pomocí PHP vložil soubor "clanky.php".
Nevím jestli by to fungovalo, ale co myslíte vy? |
||
panther Profil |
#2 · Zasláno: 30. 10. 2010, 13:59:28
Adam501:
„Nevím jestli by to fungovalo, ale co myslíte vy?“ Ano, klidně to tak může fungovat. |
||
Adam501 Profil |
#3 · Zasláno: 30. 10. 2010, 14:55:06
Díky. A nevíte někdo jak to udělat, aby se článek vkládal na začátek stránky a ne nakonec?
|
||
Keeehi Profil |
#4 · Zasláno: 30. 10. 2010, 14:57:32
$fp=fopen("soubor.koncovka","r+"); fwrite($fp,$co_zapsat); fclose($fp); |
||
AM_ Profil |
#5 · Zasláno: 30. 10. 2010, 17:45:08
Keeehi:
mám takové neblahé tušení, že tohle přepíše začátek souboru. |
||
Adam501 Profil |
#6 · Zasláno: 30. 10. 2010, 18:05:49 · Upravil/a: Adam501
Chápu dobře: když udělám tenhle formulář:
Titulek: <input type="text" name="titulek"><br> Článek: <textarea rows="10" cols="40"></textarea><br> Autor: <input type="text" name="autor"><br> <input type="submit" name="ahoj" value="Odeslat"> Tak potom musí být zápis phpka takovýhle: $fp=fopen("soubor.txt","r+"); fwrite($fp,$titulek,$clanek,$autor); fclose($fp); A všechno se vloží do soubor.txt, ale vloží se na řádky pod sebou, nebo do jednoho řádku? |
||
panther Profil |
#7 · Zasláno: 30. 10. 2010, 18:09:18
Adam501:
nechápeš, ale mohl sis to vyzkoušet. Proměnné $titulek, $clanek, $autor neexistují, fwrite má 2 argumenty (a 3. nepovinný, viz Manuál), ty jí zadáváš 4 argumenty.
|
||
Adam501 Profil |
#8 · Zasláno: 30. 10. 2010, 18:21:48
A jak tedy php pozná, co má do souboru zapsat?
|
||
panther Profil |
#9 · Zasláno: 30. 10. 2010, 18:31:30 · Upravil/a: panther
Adam501:
podle toho, co funkci předáš ve druhém argumentu (za první čárkou). Přečti si, jak se v PHP spojují řetězce, čárkou to není. Jsou to základy PHP, bez kterých se psát nedá. Holt je musíš zvládnout. |
||
__construct Profil |
#10 · Zasláno: 30. 10. 2010, 18:37:57
Lepšie bude ak to budeš ukladať do napr. do XML formátu ako do txt ...
|
||
Keeehi Profil |
#11 · Zasláno: 30. 10. 2010, 18:50:34 · Upravil/a: Keeehi
__construct:
On bude rád, že tu vůbec uloží. |
||
Adam501 Profil |
#12 · Zasláno: 30. 10. 2010, 19:26:04 · Upravil/a: Adam501
Poučil jsem se: už mi funguje funkce fwrite. To co nevím je - jak dostat do fwrite něco z toho formuláře a druhá věc je - jak zalomit řádek?
Keeehi:Ano, tak by se to taky dalo říct. Edit:K maezerám jsem našel \n nebo \r\n - nefunguje mi ani jedno :( |
||
Keeehi Profil |
#13 · Zasláno: 30. 10. 2010, 19:52:20 · Upravil/a: Keeehi
Ono s tím fopen a vkládáním na začátek je problém. Jak napsal AM_ fopen s druhým parametrem r+ přepisuje dřívější soubor. Takže by bylo lepší to udělat třeba nějak takto:
<?php if(!empty($_POST['odeslat']){ $soubor = "soubor.txt"; $puvodniObsah = file_get_contents($soubor ); $novyObsah = $_POST['titulek']."<br>\n"; $novyObsah .= nl2br($_POST['clanek'])."<br>\n"; $novyObsah .= $_POST['autor']."<br>\n<br>\n"; file_put_contents($soubor ,$ovyObsah.$puvodniObsah); } ?> <form method="post"> Titulek: <input type="text" name="titulek"><br> Článek: <textarea name="clanek" rows="10" cols="40"></textarea><br> Autor: <input type="text" name="autor"><br> <input type="submit" name="odeslat" value="Odeslat"> </form> |
||
panther Profil |
#14 · Zasláno: 30. 10. 2010, 19:55:42
Keeehi:
„Takže by bylo lepší to udělat třeba nějak takto:“ … nebo použít flag „FILE_APPEND“. „If file filename already exists, append the data to the file instead of overwriting it.“ - PHP Manuál |
||
Keeehi Profil |
#15 · Zasláno: 30. 10. 2010, 20:00:33 · Upravil/a: Keeehi
panther:
Ale on to chce přidat na začátek souboru. V tom je právě ten problém. |
||
__construct Profil |
#16 · Zasláno: 30. 10. 2010, 20:01:18
SimpleXML nie je o moc zložitejšie a pridávanie nového záznamu do XML by som povedal že je jednoduchšie
|
||
panther Profil |
#17 · Zasláno: 30. 10. 2010, 20:03:39
__construct:
„a pridávanie nového záznamu do XML by som povedal že je jednoduchšie“ totéž by se dalo říci o databázi… Myslí, že pro začátečníka to není vhodná cesta, nicméně je dobře, že jjako možnost to tu zaznělo. |
||
Adam501 Profil |
#18 · Zasláno: 30. 10. 2010, 20:15:50
Já jsem to zvažoval a myslím, že by mi stačilo, kdyby se mi to připojovalo na konec(takže do prvního řádku místo r+ a).
K databázi - nemám zkušenost, myslím, že jazyk SQL není zase tak těžká věc. Akorát nevím v čem to editovat... |
||
Alphard Profil |
#19 · Zasláno: 30. 10. 2010, 20:20:37
|
||
Adam501 Profil |
#20 · Zasláno: 30. 10. 2010, 20:22:26
Ano. Akorát kam psát ty SQL příkazy?
|
||
Alphard Profil |
#21 · Zasláno: 30. 10. 2010, 20:43:10
V PHP jsou funkce, které umožňují komunikovat s databází. Na seznámení pravděpodobně použijete mysql_query() a podobné. Podívejte se na http://www.linuxsoft.cz/article.php?id_article=344 (nebrat prosím doslova, ten seriál má svá nejlepší léta za sebou).
Až získáte určité zkušenosti, je dobré pokročit trochu dál, ať už na MySQLi nebo třeba dibi. |
||
Adam501 Profil |
#22 · Zasláno: 31. 10. 2010, 18:13:33
Děkuji. Podívám se.
|
||
Časová prodleva: 13 let
|
0