VLASTNÍ DISKUZE

Zdarec lidi!
Potřeboval bych poradit.
Chci vytvořit jakýsi fan klub jedný zpěvačky:o) do kterého by se každý pomocí formůláře registroval. Současně by na jedný stránce byl výpis všech už zaregistrovaných. A tou registrací by se zároveň zaregistroval do diskuzního fóra, do kterého mohou přispívat jen členové.
doufám, že mě chápete a předem díky!

pumqpkin
A s čím chceš valstně poradit? Přímo hotový kód ti tu nikdo asi nehodí!!!

Najdi si na webu nějaký článek o registraci, pak o autorizaci a zkus na to přijít (doporučuji např. www.interval.cz - podívej se i do starších článků nebo dej hledat klíčová slova). Pokud nebudeš něčemu rozumět, pak se teprve obrať sem a někdo ti poradí. Když sem dáš třeba své pokusy a nebudeš vědět jak dál, každý ti milerád odpoví a pomůže.

Ale takto?

PAVEL
no..nebo mi dej pjeto a já ti to udělám :)
Kdyz jsem zacal delat PHP tak jsem mnel taky takovy dotazy jak udelat cely web takze to chapu.

Moje rada je venm si priklady manual a par mnesicu se uc pak sem prid a rekni konkretny problem.

Mimochodem tohle jsem tuhle radu jsem dostal pred pulrokem ja a tet si v php udelam co chci opcas mam taky problemy a nezvladnu neco ale to kazdy.
tak díky. Vím, můj dostal byl tak trochu triviální..přemýšlel jsem, že bych si na intervalu podle jednoho článku udělal diskuzní fórum s registrací.
Přidal bych tam nějaký položky a na tý stránce se seznamem fanoušků bych jen vypsal data z databáze. Co vy na to? Šlo by to tak?
to musis vedet sam jestli by to pro tebe bylo prijatelne cisteteoreticky by to slo a prakticky taky tzed zalezi na tobe jak stim budes valcit
Praci zdar
Tak jsem to podle článku na Intervalu, která je na adrese http://www.interval.cz/clanek.asp?id=792 udělal, ale potřeboval bych ještě k registraci na vyplnění pár dalších věcí. Nevíte někdo, jak na to?
co presne potrebujes z tim poradit ?
tam je tech veci vicerao a kdybych mnel vymajslet vsechny eventuality tak bych si mohl rovnau napsat vlastni verzi tohoto clanku


pokud nevis jak polozit dotaz vykopiruj sem tu cast clanku ktere nerozumis
Zdenek>já jsem tu registraci do diskuzního fóra použil zároveň jako registraci do fan klubu. Jenže jméno a email nestačí a proto bych potřeboval poradit, jak k registraci jména, emailu a hesla přidat ještě kolonky pro vyplnění webové stránky a nějakého vzkazu. To všechno se už nemusí zobrazovat u příspěvků, ale jen aby se to zapisovalo do databáze.
Prostě nějak poupravit skript pro vytvoření tabulky a ve skriptu s formůlářem to nějak zfunkčnit.

díky!
create_table = MySQL_Query("CREATE TABLE users (
name varchar(50),
password varchar(20),
email varchar(50),
web varchar(20) NULL , //tyto dva radky by mohly
poznamka_vzkas text NULL, // posluzit k vypneni techto udaju
)") or die($query_error);
toto jeprovytvoreni te tve tabulky

pak bude mirne upraven i skript pro vkladani novych prispevku
Zdenek>strasne ti dekuju, ale ja sem uplny tele, takze jsem v tom skriptu a formulari udelal jen tyto změny, což je asi blbě, protože tam můžou přispívat i neregistrovaný a při dokončení registrace se mi nic nezobrazí ani nepřesměruje..
todle jsem změnil já:

$add = MySQL_Query("INSERT INTO users VALUES ('$name', '$password', '$email', '$link', '$web')") or die($query_error);

a

<tr><td class="table">Váš web:</td><td><input type="text" name="web" value="<?echo $web?>" size="30" maxlength="50" class="input" style="WIDTH: 250px"></td></tr>

a toto je celá skript reg.php:

<?
if(IsSet($sent)): //byl odeslán formulář?
require("db.php"); //otevřeme databázi
$write = true; //předpokládáme úspěšný zápis

if($name=="" || $password=="" || $password_2==""): //byly vyplněny všechny povinné údaje?
$error = 'Musíte vyplnit všechny povinné údaje - označeny tučným písmem.';
$write = false;
elseif($password!=$password_2): //rovnají se hesla?
$error = 'Heslo nebylo zadáno správně.';
$write = false;
else:
//existuje zadané jméno?
$user = MySQL_Query("SELECT name FROM users") or die($query_error);
while($entry = MySQL_Fetch_Array($user)):
if(StrToLower($name)==StrToLower($entry["name"])):
$error = 'Toto uživ. jméno již existuje, vyberte si prosím jiné.';
$write = false;
break;
endif;
endwhile;
endif;

if($write): //vše zatím proběhlo v pořádku
if($picture_name!=""): //byl odeslán obrázek?
if($picture_type=="image/gif" || $picture_type== "image/pjpeg" || $picture_type=="image/jpeg"): //jedná se o námi akceptovatelný obrázek?
if($picture_size>10240): //je velikost obrázku do 10 kB
$error = 'Příliš velký obrázek - vložte prosím jiný (do 10 kB).';
$write=false;
else:
//do proměnných uložíme jména funkcí a koncovky v závislosti na typu obrázku
if($picture_type=="image/gif"):
$ext = "gif";
$src_function = "ImageCreateFromGIF";
$dst_function = "ImageGIF";
else:
$ext = "jpg";
$src_function = "ImageCreateFromJPEG";
$dst_function = "ImageJPEG";
endif;

$picture = StripSlashes($picture); //odstraníme escape sekvence z názvu souboru
$unique = UniqID(""); //vytvoříme unikátní ID obrázku
dl("php_gd.dll"); //načteme knihovnu pro práci s obrázky

//zvětšení/zmenšení obrázku
$src = $src_function($picture); //načteme obrázek ze souboru
$ratio = ImageSX($src)/70; //poměr zmenšení/zvětšení obrázku na šířku 70 px
$height = Round(ImageSY($src)/$ratio); //výška obrázku při daném poměru
$dst = ImageCreate(70,$height); //vytvoříme prostor pro cílový obrázek
ImageCopyResized($dst,$src,0,0,0,0,70,$height,ImageSX($src),ImageSY($src)); //zmenšíme obrázek
$dst_function($dst,"images/" . $unique . "." .$ext); //zapíšeme nový obrázek do souboru
ImageDestroy($src); //uvolníme paměť zdrojového obrázku
ImageDestroy($dst); //uvolníme paměť cílového obrázku
endif;
else: //nejedná se obrázek gif, ani jpg
$error = 'Nejedná se o obrázek typu GIF, ani JPG, vložte prosím jiný.';
$write=false;
endif;
endif;

if(IsSet($unique)) $link = $unique . "." . $ext; //vytvoříme cestu k obrázku

//vše proběhlo v pořádku - provedeme zápis do databáze
if($write):
$add = MySQL_Query("INSERT INTO users VALUES ('$name', '$password', '$email', '$link', '$web')") or die($query_error);
//odešleme cookies
SetCookie("cookie_author", $name);
SetCookie("cookie_email", $email);
//vypíšeme hlášku o úspěšné registraci a po 5s se vrátíme na úvodní stránku
echo '<head><META HTTP-EQUIV="Refresh" CONTENT="5; URL=index.php">
<body>
<b>Registrace proběhla úspěšně</b>:<br><br>
Jméno:' . $name . '<br>
Email:' . $email . '<br>
Obrázek: <img src="images/' . $link . '" border="0" alt=""><br><br><br>
Za 5 vteřin budete přesměrováni.
</body></head>';
endif;
endif;
MySQL_Close(); //zavřeme databázi
endif;

if(!$write): //neproběhl zápis?
$width=50;
require ("header.php"); //vložíme hlavičku
?>

<table width="50%" border="0" cellspacing="0" cellpadding="1" align="center" bgcolor="Black"><tr><td>
<table width="100%" border="0" cellspacing="0" cellpadding="3" align="center" bgcolor="white">
<tr bgcolor="#4A4A4A"><td colspan="2" class="tableheading">Registrace nového uživatele </td></tr>
<form method="post" enctype="multipart/form-data">
<tr><td class="table">Obrázek:</td><td><input type="file" name="picture" size="30" class="input" style="WIDTH: 250px"></td></tr>
<tr><td class="table"><b>Vaše jméno (přezdívka):</b></td><td><input type="text" name="name" value="<?echo $name?>" size="30" maxlength="50" class="input" style="WIDTH: 250px"></td></tr>
<tr><td class="table"><b>Heslo:</b></td><td><input type="password" name="password" size="30" maxlength="20" class="input" style="WIDTH: 250px"></td></tr>
<tr><td class="table"><b>Heslo znovu:</b></td><td><input type="password" name="password_2" size="30" maxlength="20" class="input" style="WIDTH: 250px"></td></tr>
<tr><td class="table">Váš email:</td><td><input type="text" name="email" value="<?echo $email?>" size="30" maxlength="50" class="input" style="WIDTH: 250px"></td></tr>
<tr><td class="table">Váš web:</td><td><input type="text" name="web" value="<?echo $web?>" size="30" maxlength="50" class="input" style="WIDTH: 250px"></td></tr>
<input type="hidden" name="sent" value="">
<tr><td colspan="2" align="center"><input type="submit" name="send" value="Odeslat" class="input"></td></tr>
</table></td></tr></table>
</form>
<?if (IsSet($error)) echo '<center><font class="error">' . $error . '</font></center>'; //chybová hláška?>
</body>
<?endif;?>

<?
/*

--> Nasledujici Javascript umozni kontrolu zadanych udaju jeste pred odeslanim.
--> Staci pridat do tagu <form> toto onSubmit="return check(this)"

<SCRIPT LANGUAGE="JavaScript"><!--
function check(form)
{
if (form.name.value=="")
{
alert("Vaše jméno (přezdívku) musíte vyplnit!");
form.name.focus();
return false;
}
else if (form.password.value=="")
{
alert("Vaše heslo musíte vyplnit!");
form.password.focus();
return false;
}
else if (form.password_2.value=="")
{
alert("Vyplňte heslo ještě jednou!");
form.password_2.focus();
return false;
}
else if (form.email.value!="")
{
re = new RegExp("^[^.]+(\.[^.]+)*@([^.]+[.])+[a-z]{2,3}$");
if (!re.test(form.email.value))
{
alert("Zadaná adresa není správnou adresou elektronické pošty!");
form.email.focus();
return false;
}
}
else
return true;
}
// -->
</SCRIPT>
*/
?>
to ze tam muze prispivat kazdy je v poradku to forum bylo tak napsano
to mysli ze v souboru new.php upravit ze ma ma pokracovat jen kdyz heslo v databazy jeshodne zue zadanym
Promiň, že tě tak obtěžuju. Máš pravdu. Nějak mě zmátl ten nadpis toho článku.
A kdyby se v souboru new.php neco zmenilo tak, ze ma pokracovat, jen kdyz je vyplnene jmeno shodne s jménem v datábázi, tak by to zabránilo neregistrovaným přispívat?
Víš co, já bych třeba zkusil ze začátku udělat to fórum a ten fanklub bez autorizace (tzn. ověřování identity prohlížeče).
Lepší máš dělat to postupně a složitější věci přidávat časem, tak tomu určitě i lépe porozumíš.

1) navrhl bych si databázovou tabulku
2) udělal bych skript pro registraci uživatelů
3) např. naučit se ten výpis uživatelů

4) pokusit se vytvořit to fórum, zatím bez přihlašování a naučit se, jak to vlastně funguje.
5) až nakonec bych tam přidal tu autorizaci. Je to podle mě ta nejsložitější část.

Opravdu je lepší postupovat krok po kroku, mluvím z vlastní zkušenosti. Taky jsem si vymylsel hned ze začátku šíleně složitý "redakční systém", ale příliš se mi to nedařilo. Nejvíce mi pomohly pokusy právě s vlastním fórem, s databází a rozebírání některých skriptů.

Když se nad neěčím zasekneš, pak je super poradit se právě v takovémto fóru.

Hodně zdaru,
PAVEL
Pavel>já vím:o) jenže já mám problém s časem..dělám takový stránky, který by už měli být hotový co nevidět..a tohle je jediný, co to prodlužuje, tak bych alespoň potřeboval vědět, jak tomhletom skriptu zabránit vkládání příspěvků bez registrace. Zřejmě stačí něco změnit v new.php jak tady řekl Zdenek, jenže já fakt ani nemám páru co:o)
Ale jinak se zamozřejmě snažím učit..
Víš, ono se takhle špatně radí.
Celé zdrojáky tady dát nemůžeš a bez alespoň základní znalosti tvého problému to témeř nejde. Je nutné znát strukturu tvé databáze, jak by měla výsledná aplikace fungovat, co máš už napsané, atd.

Takže si budeš víceméně muset poradit sám :-(

Osobně doporučuji si pořídit nějakou knížku, alespoň mě se z nich nejlépe učí.
Např. tu "PHP tvorba interakt. intern. aplikací" od Koska, je už starší, ale hodí se na základní pochopení php.
Pak je super (!!!) "PHP & MySQL rozvoj webových aplikací" (ale cca 700 Kč).

Zkus se v těch zdrojácích pohrabat a pochopit je. Tady ti poradíme spíš s nějakým konkrétním problémem, než s předěláním celého skriptu.

PAVEL