Autor Zpráva
david2097
Profil
Dobrý den,
Promiňte že zas otravuju ale potřebuju zase radu.
celý týden jsem se učil PHP scripty jen kvůli tomu abych si splnil takový velký sen a to vytvořit internetovou hru typu:
travia..
darkorbit
ikariam
no a další.
tak se teda učím jak z vašeho webu tak z různých jiných ale to co jsem potřeboval to jsem nenašel:
návod na spolehlivou registraci a login uživatele + nevím jak zajistit aby přihlášenému uživateli se zobrazila jen jeho stránka
jak jeho bod na mapě automaticky náhodně umístit
kliknu na stavbu něčeho spustí se časomíra a po uplynutí časomíry se stránka znovu načte + se změní lvl dané budovy o 1

pěkně prosím poraďte mi

a jestli nemáte jen tak čirou náhodou v PC uložený zdrojový kód nějaké online hry tak bych také prosil o propůjčení abych měl nějakou inspiraci

ať mi vyhovíte nebo ne tak vám stejně děkuji
Nox
Profil
"Celý týden" není takové terno, "roky" už je úctyhodnější ;)

1) Tohle jsou dost základy, je fakt potřeba aby ses na to trochu koukl sám (taky je třeba kouknout na databáze, hledej mysql)
2) Po zadání "PHP registrace" do googlu ti vyjede spousta českých odkazů
3) Pro začátek doporučuji tahovku, ne real-time
david2097
Profil
tak mi napiš pls nějaky odkazy protože ty registrace buď nefungovaly nebo nešli spustit
weroro
Profil
david2097:
návod na spolehlivou registraci
Nejčastější potíže s PHP (FAQ) » Registrace uživatelů
david2097
Profil
Jo a ještě jedna poznámka ty si neviděl jak se já učím já si sednu a čtu a čtu a čtu chvíli spím a zase. je to taková smyčka
final
Profil *
nič v zlom..ale len čítaním si nič nepomôžeš.treba to aj testovať v praxi..a keď máš také otázky tak evidentne vieš php na 0%
david2097
Profil
jedna rada jak mam vložit tohle

INSERT INTO users (id, username, password)
VALUES (
NULL, 'admin', SHA1('secret')
);

do ty tabulky když použivam phpmyadmin


no na 0% rozhodně ne vim tak 30-40% víc ne jelikož jsem těch zbylejch 40% ztratil někde v paměti a 20% neneaučil
David1256
Profil
Myslím, že tento kód budeš volat v nějakém registračním formuláři. Udělej si ten formulář a do action si dej ten soubor, ve kterém budeš mít právě to tvoje
INSERT INTO users (id, username, password) 
VALUES ( 
NULL, 'admin', SHA1('secret') 
);
až na to, že v upravenějším tvaru. Např. se budeš muset před vkládáním hodnot do databáze k databázi přes php připojit. Pozn. ve formuláři si pojmenuj inputy s username jako admin a s passwordem jako secret a jejich GET hodnoty přetáhni do proměnných admin a secret. Také budeš muset dotaz "obklopit" funkcí mysql_query(). Je toho opravdu dost...


Tady jsem ti ještě vyhrabal kód z jedné hry, co jsem kdysi dělal, snad ti to pomůže.
 <form method="post">
             <tr><td>Váš nick: &nbsp;</td>
             <td><input type=text name="regusername"  size=18 ></td></tr>
             <tr><td>Vaše heslo:&nbsp; </td>
             <td><input type=password name="regpassword"  size=18></td></tr>
             <tr><td>Heslo pro kontrolu:&nbsp; </td>
               <td><input type=password name="password2"  size=18></td></tr>
               <tr><td>E-mail:&nbsp; </td>
               <td><input type=text name="email"  size=18 value="@"></td></tr>
               <tr><td>Pohlaví:&nbsp; </td>
               <td><input type=radio name=pohlavi value=muz checked> Muž <input class="zena" type=radio name=pohlavi value=zena> Žena</td></tr>
             <tr><th colspan=2><input type=submit value="Zaregistrovat se" class="tlacitkoreg"></th></tr>
             <?php
             $spojeni = MySQL_connect("databaze","jmenodb","pass");
             mysql_select_db('jmenodb', $spojeni);
             if(isset($_POST["regpassword"]))
             {if(empty($_POST["regpassword"])or empty($_POST["password2"]) or empty($_POST["email"]) or empty($_POST["regusername"]) )
             echo "<span class=\"nevyplneno\">Nevyplnili jste všechny potřebné údaje.<br></span>";
             else
             {if($regpassword!=$password2)
             echo "<span class=\"nevyplneno2\">Vámi zadaná hesla se neshodují.</span>"; 
             else
              {
           $ert = $_POST['regusername'] ;
               $result = mysql_query("SELECT username FROM users WHERE username = '$ert'");
               if (mysql_result($result, 0))
             echo "<span class=\"nevyplneno2\">Zadané jméno je již v databázi.</span>";
             else
             {mysql_query("INSERT INTO users (id, username, password, pohlavi, email)VALUES (  NULL, '$regusername', SHA1('$regpassword'), '$pohlavi', '$email')");
          header("HTTP/1.1 301 Moved Permanently");
          header("Location: http://www.mafiani.wu.cz/index.php?str=1");
          header("Connection: close");
             }}} }

             ?> 
     
            </form>
david2097
Profil
odkaz by byl?


pripojeni_db.php
co do toho mam napsat?
David Klouček
Profil
david2097:
Hele, timhle lepenim kódu se nikam nedostaneš. Nejde si stáhnout několik různejch kódů a nějak univerzálně je dát dohromady, nebude to fungovat. Měl by ses začít učit PHP od základů a dávat si jen reálný cíle. Sice jde poměrně brzo naučit se základy a něco spatlat, ale ne zas tak rychle.

Pokud nemáš základy PHP (proměnný, práce s řetezci a počítání, podmínky, cykly) a povědomí o funkcích, session a cookies, tak bych radši na práci s databází ani nemyslel. Třeba já se k databázi dostal až po 3 měsících učení PHP.
David1256
Profil
 $spojeni = MySQL_connect("databaze","jmenodb","pass");
             mysql_select_db('jmenodb', $spojeni);
akorát s údaji k tvé db
odkaz - http://www.mafiani.wu.cz/ ale je to silně nedokončené
david2097
Profil
dik a pěkna hra :)


$spojeni = MySQL_connect("jméno tý databáze v který je ta tabulka"," to nevim"," a to bude heslo ale když nemam heslo jsem přihlášen jak root@localhost");
             mysql_select_db('ta zas nevim', $spojeni);
David Klouček
Profil
david2097:
www.linuxsoft.cz/article.php?id_article=336
david2097
Profil
menší chyba není tam registrace
Nejčastější potíže s PHP (FAQ) » Registrace uživatelů
david2097
Profil
<?php
require ("handle/config.php"); // zavést nastavení
require ("handle/login.php"); // ověřit přístup uživatele
?>
<html>
<head>
<meta http-equiv="Cache-control" content="no-cache">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
<title>Upravit registraci</title>
</head>
<body bgcolor="tomato">
<script language="JavaScript" type="text/javascript" src="handle/cookies.js"></script>
<script language="JavaScript" type="text/javascript">
<!--
function logout()
{
  if (navigator.appName=='Microsoft Internet Explorer')
    document.body.style.filter='gray(enabled=1)';
  logoutyes=confirm('Chcete se odhlásit?')
  if (logoutyes)
  {
    MyCookie.Write('loggedout',1);
    if (navigator.appName=='Microsoft Internet Explorer')
      top.opener="interval";
    top.window.close();
  }
  else
    if (navigator.appName=='Microsoft Internet Explorer')
      document.body.style.filter='gray(enabled=0)';
}
// -->
</script>
<?php
if ($_POST['update']==1) // byl odeslán formulář
{
  $_POST['email'] = htmlspecialchars(StrToLower($_POST['email'])); // vyčistit předané údaje
  $_POST['url'] = htmlspecialchars(StrToLower($_POST['url']));
  $_POST['title'] = htmlspecialchars(StrToLower($_POST['title']));
  if (!empty($_POST['email']) && !empty($_POST['url']) && !empty($_POST['title'])) // ověřit, zda byly zadány povinné údaje
  {
    if (!empty($_POST['passw1']) || !empty($_POST['passw2'])) // pokud bylo zadáno alespoň jedno z hesel, ověřit, zda se shodují a přípFadně je očistit pro uložení
    {
      $_POST['passw1']=htmlspecialchars($_POST['passw1']);
      $_POST['passw2']=htmlspecialchars($_POST['passw2']);
      unset($passwupdate); // zničit SQL dotaz na změnu hesla
      if ($_POST['passw1']!=$_POST['passw2'])
        echo "<b>Zadaná hesla si neodpovídají, heslo nebude změněno!</b><br />";
      else
        $passwupdate=", password = '".md5($_POST['passw1'])."'"; // připravit část SQL dotazu pro změnu hesla
    } 
    if (StrToUpper($_POST['cloak']) == 'N')
      $cloak_stat= 'N';
    else
      $cloak_stat= 'Y';
    if (@mysql_query("UPDATE redirect SET email = '".$_POST['email']."', url = '".$_POST['url']."', title = '".$_POST['title']."', cloak = '$cloak_stat'$passwupdate WHERE id = '$uid' LIMIT 1")) // aktualizovat údaje v databázi
    {
      echo '<b>Údaje byly uloženy.<b><br />';
      if (!empty($passwupdate))
        echo '<b>Heslo bylo změněno.<b><br />'; // pokud bylo měněno i heslo, vypsat hlášení
    }
    else
      echo '<b>Chyba při ukládání údajů!</b><br />';
  }
  else
    echo '<b>Nebyly zadány potřebné údaje!</b><br />';
?>
<form>
<input type="button" class="tlac" value="opravit údaje" onclick="window.location='regedit.php'" /> // tlačítko pro vstup do formuláře po uložení údajů
</form>
<?php
}
else
{ // formulář nebyl odeslán, vyzvednout údaje z databáze a připravit do formuláře k editaci
$data = @mysql_fetch_row(@mysql_query("SELECT user, email, url, title, cloak FROM redirect WHERE id = '$uid' LIMIT 1"));
?>
<script language="JavaScript" type="text/javascript" src="handle/formcheck.js"></script>
<fieldset>
<legend> registrovat vlastní doménu <br /></legend>
<form name="regform" action="regedit.php" method="POST" onSubmit="return zkontroluj_formular(this);">
<table border="0" cellspacing="5" cellpadding="0">
<tr>
<td align="right"><input type="hidden" name="update" value="1" />titulek stránek:</td>
<td><input type="text" class="sform" name="title" value="<?PHP echo StripSlashes($data[3]) ?>" size="30" autocomplete="off" /></td>
</tr>
<tr> 
<td align="right">URL:</td>
<td><input type="text" class="sform" name="url" value="<?PHP echo StripSlashes($data[2]) ?>" size="30" autocomplete="off" /></td>
</tr>
<tr> 
<td align="right">e-mail:</td>
<td><input type="text" class="sform" value="<?PHP echo StripSlashes($data[1]) ?>" name="email" size="30" /></td>
</tr>
<tr> 
<td align="right">&nbsp;</td>
<td><input type="checkbox" class="sform" value="N" name="cloak" <?PHP echo ($data[4] == "N") ? "checked" : "" ?> />neskrývat skutečnou adresu</td>
</tr>
</table>
<br />
<table border="0" cellspacing="5" cellpadding="0">
<tr> 
<td align="right">uživatelské jméno (doména)*:</td>
<td><?PHP echo StripSlashes($data[0]) ?></td>
</tr>
<tr> 
<td align="right">heslo:</td>
<td><input type="password" class="sform" name="passw1" size="20" autocomplete="off" /></td>
</tr>
<tr> 
<td align="right">ověření hesla:</td>
<td><input type="password" class="sform" name="passw2" size="20" autocomplete="off" /></td>
</tr>
<tr> 
<td colspan="2" align="right">
<input type="submit" class="tlac" value="uložit nastavení" />
</td>
</tr>
</table>
</form>
&nbsp;* pouze alfanumerické znaky bez diakritiky, bez mezer, podržítek a speciálních znaků
</fieldset>
<?php
}
?>
<form>
<input type="button" class="tlac" value="odhlásit se" onclick="logout()" />
<!--[if IE]>
<input type="button" class="tlac" value="jiný uživatel" onclick="document.body.style.filter='gray(enabled=1)'; window.location='http://nov%FD%20u%9Eivatel:XXX@<?php echo $_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME'] ?>?logout=1'" />
<![endif]-->
</form>
</body>
</html>



<
<?php
require ("handle/config.php"); // zavést nastavení
require ("handle/login.php"); // ověřit přístup uživatele
?>
<html>
<head>
<meta http-equiv="Cache-control" content="no-cache">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
<title>Upravit registraci</title>
</head>
<body bgcolor="tomato">
<script language="JavaScript" type="text/javascript" src="handle/cookies.js"></script>
<script language="JavaScript" type="text/javascript">
<!--
function logout()
{
  if (navigator.appName=='Microsoft Internet Explorer')
    document.body.style.filter='gray(enabled=1)';
  logoutyes=confirm('Chcete se odhlásit?')
  if (logoutyes)
  {
    MyCookie.Write('loggedout',1);
    if (navigator.appName=='Microsoft Internet Explorer')
      top.opener="interval";
    top.window.close();
  }
  else
    if (navigator.appName=='Microsoft Internet Explorer')
      document.body.style.filter='gray(enabled=0)';
}
// -->
</script>
<?php
if ($_POST['update']==1) // byl odeslán formulář
{
  $_POST['email'] = htmlspecialchars(StrToLower($_POST['email'])); // vyčistit předané údaje
  $_POST['url'] = htmlspecialchars(StrToLower($_POST['url']));
  $_POST['title'] = htmlspecialchars(StrToLower($_POST['title']));
  if (!empty($_POST['email']) && !empty($_POST['url']) && !empty($_POST['title'])) // ověřit, zda byly zadány povinné údaje
  {
    if (!empty($_POST['passw1']) || !empty($_POST['passw2'])) // pokud bylo zadáno alespoň jedno z hesel, ověřit, zda se shodují a přípFadně je očistit pro uložení
    {
      $_POST['passw1']=htmlspecialchars($_POST['passw1']);
      $_POST['passw2']=htmlspecialchars($_POST['passw2']);
      unset($passwupdate); // zničit SQL dotaz na změnu hesla
      if ($_POST['passw1']!=$_POST['passw2'])
        echo "<b>Zadaná hesla si neodpovídají, heslo nebude změněno!</b><br />";
      else
        $passwupdate=", password = '".md5($_POST['passw1'])."'"; // připravit část SQL dotazu pro změnu hesla
    } 
    if (StrToUpper($_POST['cloak']) == 'N')
      $cloak_stat= 'N';
    else
      $cloak_stat= 'Y';
    if (@mysql_query("UPDATE redirect SET email = '".$_POST['email']."', url = '".$_POST['url']."', title = '".$_POST['title']."', cloak = '$cloak_stat'$passwupdate WHERE id = '$uid' LIMIT 1")) // aktualizovat údaje v databázi
    {
      echo '<b>Údaje byly uloženy.<b><br />';
      if (!empty($passwupdate))
        echo '<b>Heslo bylo změněno.<b><br />'; // pokud bylo měněno i heslo, vypsat hlášení
    }
    else
      echo '<b>Chyba při ukládání údajů!</b><br />';
  }
  else
    echo '<b>Nebyly zadány potřebné údaje!</b><br />';
?>
<form>
<input type="button" class="tlac" value="opravit údaje" onclick="window.location='regedit.php'" /> // tlačítko pro vstup do formuláře po uložení údajů
</form>
<?php
}
else
{ // formulář nebyl odeslán, vyzvednout údaje z databáze a připravit do formuláře k editaci
$data = @mysql_fetch_row(@mysql_query("SELECT user, email, url, title, cloak FROM redirect WHERE id = '$uid' LIMIT 1"));
?>
<script language="JavaScript" type="text/javascript" src="handle/formcheck.js"></script>
<fieldset>
<legend> registrovat vlastní doménu <br /></legend>
<form name="regform" action="regedit.php" method="POST" onSubmit="return zkontroluj_formular(this);">
<table border="0" cellspacing="5" cellpadding="0">
<tr>
<td align="right"><input type="hidden" name="update" value="1" />titulek stránek:</td>
<td><input type="text" class="sform" name="title" value="<?PHP echo StripSlashes($data[3]) ?>" size="30" autocomplete="off" /></td>
</tr>
<tr> 
<td align="right">URL:</td>
<td><input type="text" class="sform" name="url" value="<?PHP echo StripSlashes($data[2]) ?>" size="30" autocomplete="off" /></td>
</tr>
<tr> 
<td align="right">e-mail:</td>
<td><input type="text" class="sform" value="<?PHP echo StripSlashes($data[1]) ?>" name="email" size="30" /></td>
</tr>
<tr> 
<td align="right">&nbsp;</td>
<td><input type="checkbox" class="sform" value="N" name="cloak" <?PHP echo ($data[4] == "N") ? "checked" : "" ?> />neskrývat skutečnou adresu</td>
</tr>
</table>
<br />
<table border="0" cellspacing="5" cellpadding="0">
<tr> 
<td align="right">uživatelské jméno (doména)*:</td>
<td><?PHP echo StripSlashes($data[0]) ?></td>
</tr>
<tr> 
<td align="right">heslo:</td>
<td><input type="password" class="sform" name="passw1" size="20" autocomplete="off" /></td>
</tr>
<tr> 
<td align="right">ověření hesla:</td>
<td><input type="password" class="sform" name="passw2" size="20" autocomplete="off" /></td>
</tr>
<tr> 
<td colspan="2" align="right">
<input type="submit" class="tlac" value="uložit nastavení" />
</td>
</tr>
</table>
</form>
&nbsp;* pouze alfanumerické znaky bez diakritiky, bez mezer, podržítek a speciálních znaků
</fieldset>
<?php
}
?>
<form>
<input type="button" class="tlac" value="odhlásit se" onclick="logout()" />
<!--[if IE]>
<input type="button" class="tlac" value="jiný uživatel" onclick="document.body.style.filter='gray(enabled=1)'; window.location='http://nov%FD%20u%9Eivatel:XXX@<?php echo $_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME'] ?>?logout=1'" />
<!--[endif]-->
</form>
</body>
</html
Oli
Profil *
[#12] david2097 Jestli to mas na webu tak si to zmen v phpmyadmin. Na produkčním serveru se přes root nepřipojuje. v phpmyadmin si uděláš uživatele a přiřadíš mu databázi.

Pokud to je na tvém počítači (localhostu) tak přihlašování by mělo být
$spojeni = MySQL_connect("localhost","root","");
mysql_select_db('tvoje_databaze', $spojeni);
peta
Profil
http://peter-mlich.wz.cz/web/mysql/pr/minix.php
Soubory nahore jsou zdrojak. minix.php minix.sql

Pokud si to spoustis u sebe, tak prihlaseni k databazi je
$SQL['host']   = "localhost";    //server (host)
$SQL['user']   = "root";    //MySQL user
$SQL['psw']    = "";        //MySQL password
$SQL['dbname'] = "minichat";    //MySQL DB name
$SQL['prefix'] = "m_";
Na wu nevim, jake udaje pouzit.
Pres http://localhost/ je nutne pustit si phpmyadmina, vytvorit databazi "minichat" a do ni pridat tabulky pro chat. Staci otevrit soubor "minix.sql", vyklikat v phpmyadminovi tvoji databazi minichat, kliknout na zalozku SQL, vlozit obsah souboru minix.sql a dat proved. Melo by to napsat Uspesne vytvoreno. Po te staci spustit minix.php a melo by to fungovat.
Do phpmyadmina se dostanes, pokud mas nainstalovany wamp server, pomoci adresy http://localhost/phpmyadmin/, prihlasovaci udaje jsou obvykle root, zadne heslo, ok.

Registrace v tom teda neni, nemam prilis registraci rad :) , ale da se to pouzit na testovani.
Martin02
Profil
david2097:
Tebou uvedený Travia.. se dá stáhnout na netu (nelegální ho provozovat). Napiš do googlu Travia.. Clone download a zkus hledat... :)
david2097
Profil
takle ono to je T r a v i a n ale když to napíšu tak se mu to nelíb a píše at to mam odstranit jelikož to asi považuje za nevhodné slovo a tak skracuju na travia..
Nox
Profil
Martin02:
To bych teda moc nepropagoval, jednak morálně, druhak pravidlo 5 a dotřetice pro david2097ovy lepící tendence
Martin02
Profil
Nox:
lepící tendence“ ???
jenikkozak
Profil
Martin02:
‚lepící tendence‘ ???
Lepicí tendence je stav, kdy člověk má zájem pouze mnohdy chybným způsobem spojovat cizí kódy, aniž by chápal jejich význam.
david2097
Profil
no nic já tedy s PHP scripty končím (alespoň na dobu neurčitou) jsou velice těžké a zároveň nemám čas ani náladu se je učit ani zkoušet je v pokusech. Asi tak za 2- 3 roky zase budu otravovat to se bát nemusíte. Je mi teprve 14 a doopravdy učit se do školy a zároveň php tak to doopravdy nejde!!! Tak se s Vámi loučím a zase na viděnou. :D
S pozdravem David Vlasák


Tak už asi chápete proč sem tomu tolik nerozuměl. Ne tedy že bych byl naprosto ..... spíše naopak já jsem jedničkář a někdy dvojkař ale HTML mě naprosto zaujalo a tak jsem se začal učit doma CSS, Java scripty, PHP, a zkoušel jsem i C,C++ ale nenašel jsem knihovny (qcc asi)
Han
Profil
david2097:
Len dodám, že robím weby od 11 rokov, od 13 (teraz mám 14) robím PHP a pritom mám jednotky na osemročnom gymnáziu, de sa učím o rok menej :) Takže, dá sa to :) Treba xcieť
Someone
Profil
david2097:
Je mi teprve 14 a doopravdy učit se do školy a zároveň php
Mimo programování webových stránek jsem také studentem střední školy (gymnázia) a troufám si říci, že mám více učení než-li ty. Programováním si nejen krátím čas, ale také vydělávám tudíž zkombinovat školu a "práci" pro mě není tak jednoduché jako když si ty můžeš dát týden dva pauzu a nic se nestane. Proto si myslím, že argumentovat tím, že se musíš učit do školy je irelevantní. Když už nic tak se můžeš učit v pátek a sobotu. Tímto ti samozřejmě nesděluji ať necháš školy a jdeš radši programovat. Jen je to takové "všechno jde, když se chce.".
david2097
Profil
jak si řek asi si budu muset dát pausu a ty PHP udělam treba o prazdninach


a ta hra to jsem chtěl nejdřív rozchodit:
registrace
odpočítávání
mapa
no prostě jsem to chtěl
nejak zhruba rozchodit

až by to fakčilo tak bych teprve makal na grafice atd...


a bohužel maminka mi pořád říká at nevisedávám u PC ale né né né

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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

0