Stránka 1 z 1
jak vytvorit support na webu?
Napsal: pát 1. úno 2008, 09:01
od myom
zdravim, potreboval bych udelat na statiskem webu udelat nejakou uzivatelskou podporu. neco naprosto jednoducheho, jenom policka, kde navstevnik zada jmeno, email a vlastni dotaz na ktery bude moct odpovedet jenom "admin" ne dalsi navstevnik. existuje nejaky hotovy projekt/webova sluzba nebo neco podobneho? sam si to v php nedokazu naprogramovat.

Napsal: pát 1. úno 2008, 14:54
od MajdyM
Takže jednoduchej formulář, kterej ti dotaz odešle na mail?
Napsal: pát 1. úno 2008, 15:13
od myom
ee to je jako posledni moznost. rad bych prave, aby se dotazy a odpovedi zobrazovaly na webu. neco jako navstevni kniha.
Napsal: pát 1. úno 2008, 15:39
od Dzin
Napsal: pát 1. úno 2008, 15:45
od myom
blueboard nechci, nehodi se moc na to. primarne bych radsi vlastni reseni na webu.
Napsal: pát 1. úno 2008, 16:54
od Caderom
Zkusil jsem rychle zbastlit něco bez použití databáze, zkus to, ale nic nezaručuju, kvalita odpovídá době bastlení.
form.php
Kód: Vybrat vše
<form method="post" action="add.php">
<table>
<tr>
<td>Jméno</td><td><input type="text" name="user"></td>
</tr>
<tr>
<td>Text</td><td><input type="text" name="text"></td>
</tr>
<tr>
<td>Odeslat</td><td><input type="submit"></td>
</tr>
</table><br>
<br>
<?
$file=file("data.txt");
$ad_file=file("ad_data.txt");
$ad_date=array();
for($i=0;$i<sizeof($ad_file)-1;$i++)
{
$ad_date[$i+1]=substr($ad_file[$i],strpos($ad_file[$i],"##")+2,12);
}
for($i=0;$i<sizeof($file)-1;$i++)
{
$date=substr($file[$i],strpos($file[$i],"##")+2,12);
$user_1=substr($file[$i],strpos($file[$i],"{{")+2);
$user=substr($user_1,0,strrpos($user_1,"}}")-1);
$text=substr($file[$i],strpos($file[$i],"}}")+2,12);
$answer='';
$key=array_search($date,$ad_date);
if($key)
{
$key=$key-1;
$ad_user_1=substr($ad_file[$key],strpos($ad_file[$key],"{{")+2);
$ad_user=substr($ad_user_1,0,strrpos($ad_user_1,"}}")-1);
$ad_text=substr($ad_file[$key],strpos($ad_file[$key],"}}")+2,12);
$answer='<div style="background-color:#0000FF">
<div style="padding-left:40px">'.$ad_user.'</div>
<div style="padding-left:60px">'.$ad_text.'</div>
</div><br>';
}
echo '<div>
<div style="padding-left:20px">'.substr($date,4,2).'.'.substr($date,2,2).'.'.substr($date,0,2).' '.substr($date,6,2).':'.substr($date,8,2).':'.substr($date,10,2).'</div>
<div style="padding-left:40px">'.$user.'</div>
<div style="padding-left:60px">'.$text.'</div>
</div><br>'.$answer;
}
?>
</form>
ad_form.php
Kód: Vybrat vše
<form method="post" action="ad_add.php">
<table>
<tr>
<td>Heslo</td><td><input type="text" name="pass"></td>
</tr>
<tr>
<td>Odpověď</td><td>
<select name="date" style="width:146px">
<?
$file=file("data.txt");
for($i=0;$i<sizeof($file)-1;$i++)
{
$date=substr($file[$i],strpos($file[$i],"##")+2,12);
$user_1=substr($file[$i],strpos($file[$i],"{{")+2);
$user=substr($user_1,0,strrpos($user_1,"}}")-1);
$text=substr($file[$i],strpos($file[$i],"}}")+2);
echo '<option value="'.$date.'">'.$text.'</option>';
}
?>
</select>
</td>
</tr>
<tr>
<td>Text</td><td><input type="text" name="text"></td>
</tr>
<tr>
<td>Odeslat</td><td><input type="submit"></td>
</tr>
</table>
</form>
add.php
Kód: Vybrat vše
<?
$user=$_POST["user"];
$text=$_POST["text"];
$date=date(ymdHis);
$fp=fopen("data.txt","a");
fwrite($fp,"##".$date."##"."{{".$user."}}".$text."
");
fclose($fp);
Header("Location: form.php");
?>
ad_add.php
Kód: Vybrat vše
<?
$pass=$_POST["pass"];
$text=$_POST["text"];
$date=$_POST["date"];
if($pass=="password")
{
$fp=fopen("ad_data.txt","a");
fwrite($fp,"##".$date."##{{Admin}}".$text."
");
fclose($fp);
}
Header("Location: form.php");
?>
data.txt
ad_data.txt
Pro pro uživatele slouží form.php, pro admina ad_form.php, heslo je "password" (najdeš to v kódu).
Napsal: pát 1. úno 2008, 17:13
od myom
Caderom: dekuju moc, ale v prvnim formulari form.php je chyba, pry je tam navic uzavreny div, ale zadny jsem tam nenasel...
Kód: Vybrat vše
$answer='<div style="background-color:#0000FF">
<div style="padding-left:40px">'.$ad_user.'</div>
<div style="padding-left:60px">'.$ad_text.'</div>
</div><br>';
}
echo '<div>
<div style="padding-left:20px">'.substr($date,4,2).'.'.substr($date,2,2).'.'.substr($date,0,2).' '.substr($date,6,2).':'.substr($date,8,2).':'.substr($date,10,2).'</div>
<div style="padding-left:40px">'.$user.'</div>
<div style="padding-left:60px">'.$text.'</div>
</div><br>'.$answer;
}
v teto casti se hodnoty vypisou jako text.
mohl by jsi to jeste jednou projet, moc by mi to pomohlo. dekuju.
Napsal: pát 1. úno 2008, 17:24
od Caderom
Já tam nijak nic nevidím ...
BTW: Vždy lze odeslat pouze jednu odpověď k jedné otázce, bere sw první odpověď. Pro úpravy je potřeba změnit ručně ad_form.txt (přes FTP).
Stylování je jen základní, uprav si to jak chceš ...
Napsal: pát 1. úno 2008, 19:13
od Caderom
Pokud budeš ty textové soubory vytvářet ručně nezapomeň jim přiřadit příslušné atributy (777) (nejsem si jistý jestli je to potřeba, ale kdyby byly problémy bude to tímto). V Total Commanderu je to Soubor / Změna atributů ...
Napsal: pát 1. úno 2008, 19:19
od Onecar
http://pecan.cz/index.php?id=46&n=gbook-v4
Akorát budeš muset editovat zdroják toho guestbooku - mi osobně se v tom hrabat nechce, tak ti jen řeknu, co musíš udělat:
V souboru, který zpracovává odesílaná data, přidat podmínku, aby když je vyplněno políčko pro reakci, zadané jméno musí být "admin" (a pokud ne, tak exit;), ideálně "admin+heslo", kteréžto "+heslo" potom (před vložením do DB) odmažeš přes substr();.
Zkrátka:
Kód: Vybrat vše
if (isset ($_POST['reakce']) {
if ($_POST['odesilane_jmeno'] == "admin+heslo") {
substr ($_POST['odesilane_jmeno'], 0, -6); // deletes "+heslo"
// a včil vkládáme data do DB a odesíláme z5 na gbook
}
else die ('Nepovolanym vstup zakazan, tahni odkud jsi prisel.');
}
A soubor to bude
gbook_zpracuj.php.
Napsal: pát 1. úno 2008, 19:27
od myom
dekuju moc chlapi, dneska uz s tim nic delat neubu, zitra se do toho pustim. jeste jednou diky a urcite se tu jeste ozvu

Napsal: sob 2. úno 2008, 11:16
od myom
Onecar: tak jsem si stahl ten guestbook, uz jse se s nim szil, upravil podle sebe, ale ten tvuj figl mi nejak hapruje.
nevim totiz presne, co mam dosadit za hodnoty do te podminky. kdyz tam dam "OdpovedNaPrispevek", tak nenapisu do te knihy nic, pokud nedam za nick "admin+heslo". pak ale stejne nefunguje to odmazani hesla. normalne se to cele zobrazi.
kdyz dam "OdpovedetNa", tak tam zas pisu jak se mi zlibi.
prosim te, nemohl by jses na to kuknout?
Napsal: sob 2. úno 2008, 12:28
od Onecar
http://rapidshare.com/files/88549985/gb ... j.php.html
Jak to sosneš, přejmenuj to na
gbook_zpracuj.php. Následně si najdi část
// EDITED BY ONECAR, NA VLASTNI NEBEZPECI!!! // a pod tím jsu úpravy.
Do proměnné $delka_hesla vlož číselnou hodnotu délky tvého hesla bez onoho spojovacího "+". Třeba když budeš mít "login" jako admin+pes, doplň tam 3. O víc se starat nemusíš.
Kdyby byly nějaké problémy, piš. Testoval jsem to a vypadá to, že to funguje.
Napsal: sob 2. úno 2008, 13:09
od myom
funguje to skvele, ale musel jsem nastavit 6 pismen, protoze to + tam zustava. a jeste v radku
$nick = substr ($nick, 0, -$delka_hesla+0); // deletes "+heslo"
u delky hesla byla jednicka, a to + tam zustavalo taky...
jeste se zeptam na bezpecnost tohoto reseni? vzdyt staci si zobrazit zdrojak a mam heslo, ne?
a jeste se zeptat, jestli te nenapada, jak nejsnaze to dostat na ty staticke stranky. pres framy se mi to moc nechce delat :/
Napsal: sob 2. úno 2008, 13:13
od Onecar
Zobrazit zdroják PHP souboru není technicky možné (za normálních podmínek), navíc tvé "heslo" se nikde nevypisuje, je jenom v onom .php souboru a do toho se podíváš jenom ty. Bezpečnost je tedy zaručena, mohli bychom to ještě řešit MD5 otiskem, ale to je podle mě zbytečné.
A s druhým dotazem neporadím, já vždy pracoval s PHP a se statickými fígly nemám zkušenosti

.