Autor Zpráva
Suchla
Profil
Zdravím,
chtěl bych na strankach rozjet novou funkci. Jde o to, ze by byl na nejaky strance formular (jedno policko staci) kam by kdokoli mohl pridat nejakou webovou adresu. Dal by odeslat a ta adresa by se zapsala do nejakeho .txt souboru. adresy by se oddelovali napriklad znakem "#". Ja bych potom (jeste nevim poradne jakou) funkci vytahnnul vzdy nahodne jednu z adres a zobrazil ji na strankach.

uz jsem podle navodu na internetu zkousel asi 3 ruzny kody ale nikdy mi to nefungovalo.. Diky za help
mckay
Profil
Suchla:
Bylo by ideální, kdyby si aspoň pro ukázku ukázal o co si se snažil.
Werewolf
Profil
Formulář, předpokládám, sestavit umíš.
Ukládat do souboru, předpokládám, také umíš.

Jedna náhodná adresa:
$nahodna_adresa = $adresy[rand(0, (count($adresy)-1)]];


Tak pro jistotu to ukládání do souboru:
$soubor = "adresy.txt";
$adresy = file_get_contents($soubor);
$otevreni_souboru = fopen($soubor, "w");
$zapis = fwrite($adresy.'#'.$_POST['nova_adresa_kterou_jsi_napsal_do_formulare']);
fclose($otevreni_souboru);


Tak co je za problém? Jde jen o to mít nějaká menší hotová řešení (třeba jenom ten formulář, jenom to ukládání do souboru) a umět je propojit.

mckay:
Aspoň jsem poradil. Když nemáš co říct, neříkej nic.
Suchla
Profil
to už jsem smazal...ale nebylo to nic jinyho net skript fopen,fwrite,fclose a k tomu <input type="text" name="odkaz"> atd.... fakt jednoduchy, moc to neumim
Werewolf
Profil
Suchla:
Ale přesně o tom to je. Vymyslet triviální řešení složité věci.
Suchla
Profil
jo, chtel jsem se zeptat....kdyz mam ve formulari name="odkaz" tak potom ve skriptu to je promněnna $odkaz ..?
dan55
Profil
<form method="post">
<input name="odkaz" type="text">
<button name="ok">Přidej</button>
</form>
<?php
if (isset($_POST['ok'])){ 
$url = htmlspecialchars($_POST['odkaz']);
$url .= "#";
$soubor = fopen("./odkazy.txt", "a+");
fwrite($soubor, $url);
fclose($soubor);
}  
?>



<!-- soubor kde to vypíšeš -->


<?php
$data = file_get_contents("./odkazy.txt");
$data = explode("#",$data);
$adresa = $data[rand(0, (count($data)-1))];
echo "<a href='".$adresa."'>".$adresa."</a>";
?>


edit// Opraveno
Suchla
Profil
diky, s timhle uz si snad nejak poradim :)
Werewolf
Profil
Suchla:
Ve skriptu je to $_POST['odkaz'].

dan55:
Diskuse je o tom něco nováčky naučit. Taky jsem mohl napsat hotové řešení, ale takhle to Suchla může zkopírovat a má vystaráno. Získané vědomosti se rovnají nule.
dan55
Profil
Suchla:
Nejlepší je
$_POST['odkaz'];

nebo pro get
$_GET['odkaz'];
dan55
Profil
Werewolf:
Aha, já jsem ten script kdysi měl skoro hotový, teď jsem ho dodělal, a řekl jsem si že to sem dám i pro ostatní
Promiň. Aspoň jsem já chytřejší
Werewolf
Profil
Suchla:
$_GET['odkaz'] je hodnota získaná z URL (soubor.php?odkaz=djpw.cz).

dan55:
Mimochodem, na řádku 24 máš chybu. Odečítej jen 1:
$adresa = $data[rand(0, (count($data)-1))];
dan55
Profil
Werewolf:
Díky za upozornění
Suchla
Profil
tak jsem dal ten kod od dan55 a hodilo mi to tuhle chybu (kdyz jsem se pokousel pridat nejakou adresu)

Warning: fopen(odkazy.txt) [function.fopen]: failed to open stream: Permission denied in /home/free/hu.cz/s/suchla/root/www/nahodnyodkaz/pridatodkaz.php on line 10

Warning: fwrite(): supplied argument is not a valid stream resource in /home/free/hu.cz/s/suchla/root/www/nahodnyodkaz/pridatodkaz.php on line 11

Warning: fclose(): supplied argument is not a valid stream resource in /home/free/hu.cz/s/suchla/root/www/nahodnyodkaz/pridatodkaz.php on line 12
Přidáno
dan55
Profil
Suchla:
Vytvoř ten soubor a nastav mu práva na 777
Suchla
Profil
jezis ja jsem ***** :D ja jsem na to zapomel :D
Suchla
Profil
kdyz dam ted stranku, kde by se mel zobrazit nahodny odkaz tak se tam napise
Array ( [0] => http://www.suchla.hu.cz [1] => )
takhle to ma byt, nebo tam to Array ( .....nema co delat?
mckay
Profil
Suchla:
Pokud to vypisuješ přes echo, tak by to tam nemělo co dělat.

Werewolf:
Škoda mluvit.
Suchla
Profil
vypisuju to prez echo....a dela to...muzete zkusit na
http://suchla.hu.cz/nahodnyodkaz/ukazodkaz.php
http://suchla.hu.cz/nahodnyodkaz/pridatodkaz.php
Suchla
Profil
me se tam v tom zobrazovani nejak nelibi radek
print_r($data);

ten vypisuje vsechno co je v souboru ne? a ne jenom jeden nahodnej? nebo melu hovadiny ?:D
mckay
Profil
Suchla:
print_r($data); vypisuje vše co je v proměnné data. Odmažte ho, a všechno bude pěkně chodit.
Suchla
Profil
a posledni problem (snad) ted kdyz pridam odkaz www.suchla.hu.cz a zobrazi se mi na ty strance se zobrazovanim....kliknu na nej (je to odkaz) ale misto aby me to hodilo na http://www.suchla.hu.cz tak me to hodi na http://suchla.hu.cz/nahodnyodkaz/www.suchla.hu.cz
mckay
Profil
Suchla:
Nesmíš ten odkaz zadávat jako www.neco.cz, ale jako http://www.neco.cz -> můžeš to otestovat skriptem, jestli to tam je, pokud ne, tak to doplnit.
Suchla
Profil
aha, pravda...diky...ted jeste jak vypsani toho nahodnyho odkazu dostanu do postranniho panelu v PHP-Fusion ... :D s tim mi asi neporadite co ?? :D:D
ale i tak bych vam chtel opravdu moc podekovat..moc jste mi pomohli
někdo
Profil *
Suchla:
- bohužel neznám editační možnosti administrace "PHP-Fusion",
teď na < http://www.phpfusion.cz/news.php > koukám poprvé,
ale například podle "WebGarden.cz" (starý) nebylo možné vložit libovolně vlastní odkaz, než vytvořením nové stránky, nebo pomocí bloku "HTML-KOD" a už vůbec ne pomocí vlastního PHP-kódu !!!
- DOTAZ: dá se na "PHP-Fusion" VOLNĚ editovat v podstatě KDEKOLIV na prostoru stránky, nebo zase jen prostřednictvím přednastavených SKRYTÝCH šablon bloků ?
- na první pohled mi to připadá podobné jako "JOOMLA" ... tedy zase bez možnosti "volné působnosti a tvůrčí kreativity" ... :-)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: