Zdravím všeci, mám na webzdarma stránky chtěl bych tam dát forum kde by registrovaný uživatel mohl dávat příspěvky soubory a mohl je i stahovat. Mám to napsat v php, registrování už mám v phpmyadmin ale nevím jak mám vytvořit tabulku která by zvalidovala jméno registrovaného aby mohl ukládat a stahovat data. Všem děkuji
Fórum › PHP
Ukládání dat na foru
Nedava to prilis smysl.
Pro forum se obvykle stahne a nainstaluje cms pro forum. MiniBB, phpBB...
google = cms forum php
Mas neco vlastniho, co mas? Zkus predlozit nejaky kod.
Registrovat uzivatele primo pres phpadmina je takove divne, ale lze to tak delat. Nicmene, mel bys pro heslo pouzit hash a nedrzet hesla jako text v databazi.
Sql prikazy, ktere by se pouzil je:
SELECT id, name FROM users where name = 'lojza' AND psw = 'heslo'
A potom tam musis mit samotny ten pseudo-program, ktery by mohl vypadat:
// vyresit post
user = isset($_POST['user']) ? $_POST['user'] : ''
psw = isset($_POST['psw']) ? $_POST['psw'] : ''
// vyresit session
if (user='' && psw='')
{
user = isset($_SESSION['user']) ? $_SESSION['user'] : ''
psw = isset($_SESSION['psw']) ? $_SESSION['psw'] : ''
}
sql->connect('server', 'user', 'psw', 'db')
sql->query('SET NAMES UTF-8')
result = sql->query('SELECT user, psw...')
sql->disConnect()
// vytahnout data z db
user = sql->fetch(result,0,'user')
psw = sql->fetch(result,0,'psw')
// vyresis session
$_SESSION['user'] = user
$_SESSION['psw'] = psw
if (user!='' && psw!='') { ...zbytek programu... }
To je samozrejme velice, velice spatne, vytahovat z db hesla uzivatelu. Ale principialne by to takhle mohlo fungovat
#2 peter
Mám to docela rozkouskované jsem v tom začátečník všechno web :)
Vše co zatím k tomu mám.
https://uloz.to/!KByzCX6jPCux/poslat-rar
Tady je ta registrace + přihlášení je o stránky renegades.wz.cz no a musím v rámci školy aspon nějak základně, potom kdo ví.
Zadání zní takto:
Vyberte si, jakou aplikaci chcete dělat. Musí obsahovat:
- databázi, minimálně jedna vazba 1:N
- přihlašování uživatelů
- administrační rozhraní pro databázi, formuláře
- RSS výstup
Chybí mě 2 docela zásadní věci a to propojení tabulky mám jenom tabulku kde se mi registrují uživatelé a já nevím jak mám vytvořit a propojit tyto dvě tabulky aby registrovaný uživatel mohl ukládat či mazat. Jinak děkuji moc za veškerou pomoc.
Jsi odnekud kopiroval bez premysleni, ze?
<?php
$spojeni=mysql_connect('185.64.219.6','renegadeswzc8368', '*************' );
Mysql_Select_DB("renegadeswzc8368");
MySQL_Query ("SET Names 'utf-8'") ;
// Pokud te ta prvni cast pripoji k databazi, pak ta druha je nesmysl, ktery pripojeni zas zrusi.
//$spojeni = @MySQL_Connect($db_server ,$db_login, $db_password);
//MySQL_Select_DB("renegadeswzc8368")or die('<p style="color: red">Nastala chyba v pripojeni k databazi');
//mysql_query("set names utf8");
?>
login.html - html stranka se ihned posila uzivateli, neprochazi pres server-apache, takze php kod se nezpracuje
<?php
include "./connect.php";
$login = mysql_real_escape_string($_POST["nick"]);
$heslo = mysql_real_escape_string($_POST["heslo"]);
$md5heslo = md5($heslo);
$dotaz = mysql_query("select * from uzivatele where login = '$login' and heslo = '$md5heslo'");
$overeni = mysql_num_rows($dotaz);
$row = mysql_fetch_array($dotaz);
echo '<pre>'; var_dump('$_POST', $_POST, '$row', $row, '$_SESSION', $_SESSION);// to bych tam pridal
if($overeni == 1) {
session_start();
$_SESSION['login'] = stripslashes($login);
$_SESSION['id'] = $row["id"];
echo '<pre>'; var_dump('$_POST', $_POST, '$row', $row, '$_SESSION', $_SESSION);// to bych tam pridal
// header("Location: admin.php"); to bych zatim vyradil
die();
} else {
echo"Zadal jsi špatný login nebo heslo!";
}
?>
admin.html - opet, nemelo by to byt php? Ostatne, v predchozim kodu mas preci header("Location: admin.php");, ne?
Podle toho kodu mi prijde, ze ti unika to zasadni :)
pc uzivatel - Www prohlizec umi pracovat se soubory typu html, css, js, image, file, ...
pc server - Program apache, umi pracovat se soubory *.php. Jakykoliv jiny soubor posila jako soubor.
Kdyz zpracovava php, generuje soubor. Defaultne jej posila jako text/html. Ale pomoci header() funkce je mozne to zmenit na file, text/css, text/javascript, image/jpeg a pod. Cili, pomoci php programu generujes html stranku, obvykle. (Nebo v pripade captcha je to obrazek, proste, co potrebujes).
Kdyz mu ale das priponu html, tak to ignoruje, posila uzivateli, jako by to byl soubor.txt.
Ostatne, na ulozto mas stahnout rar. Rar soubory umi precist jen winrar.exe. Pripadne jiny program, ktery ma k tomu plugin. Ale necekas, ze ti zobrazi obsah raru html prohlizec, ne?
$dotaz = mysql_query("select * from uzivatele where login = '$login' and heslo = '$md5heslo'");
// To oznaceni neni uplne presne. Ale je to jen detail. Na php.net najdes
// toto oznacovani:
$query = "select * from uzivatele where login = '$login' and heslo = '$md5heslo'"
$result = mysql_query($query);
Dotaz je ten samotny string.
Funkce mysql_query = zpracovani dotazu.
$result = vysledek funkce
Ale, samozrejme, oznacuj si to, jak chces, kdyz se v tom budes orientovat, je to ok.
---
Nemas tam nikde error_reporting(E_ALL);
Neresis pro dotazy mysql error.
$result = mysql_query($query) or die( 'Error: ' . mysql_error() );
#6 Kit
Stahni si ten rar balicek z ulozto. Kopiruji jeho kod.
Ano, dobre zminit, ze aktualne pouzivane php 7 pouziva pdo_funkce() ne mysql_funkce(). Ze, jako skolni priklad dobry, ale ten ucitel uci neco, co uz ani neexistuje. Neco, jako parni lokomotiva :)
#8 peter
Ani nevím, čím bych si ten rar rozbalil a popravdě se mi nechce to stahovat odněkud, kde mi v tom brání CAPTCHA. Raději si vždy počkám, až dotyčný ukáže tu nefunkční část kódu a teprve pak se tím začnu zabývat.
By ses taky nemusel dockat :) Proto jsem zkopiroval aspon neco. Jako, mohl pouzit neco jako jsfiddle.net nebo neco podobne pro php.
Kazdy ten soubor je necim zvlastni. Uz jen, kdyz mrknes na nazev a uvnitr najdes php kod. Vypada to na copy-paste z ruznych zdroju. Ti to klidne cele vykopiruji, ale prijde mi, ze by si to mel spravit sam. V 'code' je primo plain-text :)
admin.html Aplikace.docx connect.php index.html login.html logout.html registrace.html RSS.rss
Edit admin.php
<?php
session_start();
?>
<head>
</head>
<body>
<h2>Forum</h2>
<?php
if($_SESSION['login']!=""){
echo'Vítej!!!<br>
<a href="/logout.php">Odhlásit se</a>';
} else {
echo'Tato stránka je pøístupná pouze pøihlášeným uživatelùm. Pokud nemáš úèet, <a href="/registrace.php">zaregistruj se</a>!<br>
<h2>Pøihlásit se:</h2>
<form action="login.php" method="post">
<table>
<tr>
<td>Pøezdívka: </td>
<td><input type="text" name="nick" value="" size="17" tabindex="1" /></td>
</tr>
<tr>
<td>Heslo: </td>
<td><input type="password" name="heslo" value="" size="17" tabindex="2" /></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="submit" value="Pøihlásit se" /></td>
</tr>
</table>
</form>';
}
?>
---
<?php
$spojeni=mysql_connect('185.64.219.6','renegadeswzc8368', '*************' );
Mysql_Select_DB("renegadeswzc8368");
MySQL_Query ("SET Names 'utf-8'") ;
$spojeni = @MySQL_Connect($db_server ,$db_login, $db_password);
MySQL_Select_DB("renegadeswzc8368")or die('<p style="color: red">Nastala chyba v pripojeni k databazi');
mysql_query("set names utf8");
?>
---
<form action="login.php" method="post">
<table>
<tr>
<td>Pøezdívka: </td>
<td><input type="text" name="nick" value="" size="17" tabindex="1" /></td>
</tr>
<tr>
<td>Heslo: </td>
<td><input type="password" name="heslo" value="" size="17" tabindex="2" /></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="submit" value="Pøihlásit se" /></td>
</tr>
<tr>
<td colspan="2" align="right">Pokud nemáte úèet, <a href="/registrace.php">registrujte se</a></td>
</tr>
</table>
</form>
---
<?php
include "./connect.php";
$login = mysql_real_escape_string($_POST["nick"]);
$heslo = mysql_real_escape_string($_POST["heslo"]);
$md5heslo = md5($heslo);
$dotaz = mysql_query("select * from uzivatele where login = '$login' and heslo = '$md5heslo'");
$overeni = mysql_num_rows($dotaz);
$row = mysql_fetch_array($dotaz);
if($overeni == 1) {
session_start();
$_SESSION['login'] = stripslashes($login);
$_SESSION['id'] = $row["id"];
header("Location: admin.php");
die();
} else {
echo"Zadal jsi špatný login nebo heslo!";
}
?>
---
<?php
session_start();
session_destroy();
header("location: index.php");
?>
---
<?php
include "connect.php";
if(isset($_POST['submit'])) {
$nick = mysql_real_escape_string($_POST['nick']);
$heslo = mysql_real_escape_string($_POST['heslo']);
$over_heslo = mysql_real_escape_string($_POST['over_heslo']);
$md5_heslo = md5($heslo);
$email = mysql_real_escape_string($_POST['email']);
$user_check = mysql_query("SELECT login FROM uzivatele WHERE login='".$nick."'");
if($nick==""){echo"Nebyl vyplnìn nick!";}
else if(mysql_num_rows($user_check)){echo"Tento nick používá již jiný uživatel.";}
else if($heslo==""){echo"Nebylo vyplnìno heslo";}
else if($over_heslo==""){echo"Nebylo vyplnìno ovìøovací heslo";}
else if($heslo!=$over_heslo){echo"Vyplnìná hesla se neshodují";}
else if($email==""){echo"Nebyl vyplnìn email";}
else{
$sql= mysql_query("INSERT INTO uzivatele VALUES ('','$nick','$md5_heslo','$email')") or die(mysql_error());
echo"Registrace byla úspìšnì dokonèena!";
}
}
?>
<form action="#" method="post">
<table>
<tr> <td>Pøezdívka: </td> <td><input type="text" name="nick" value="<?php if(isset($_POST["nick"])){echo $_POST["nick"];}?>" size="25" tabindex="1" /></td> </tr>
<tr> <td>Heslo: </td> <td><input type="password" name="heslo" value="" size="25" tabindex="2" /></td> </tr>
<tr> <td>Ovìøení hesla: </td> <td><input type="password" name="over_heslo" value="" size="25" tabindex="3" /></td> </tr>
<tr> <td>Email: </td> <td><input type="text" name="email" value="<?php if(isset($_POST["email"])){echo $_POST["email"];}?>" size="25" tabindex="4" /></td> </tr>
<tr> <td colspan="2"><input type="submit" name="submit" value="Registrovat se" /></td> </tr>
</table>
</form>
---
<?php
$db = new mysql ('185.64.219.6','renegadeswzc8368', 'Monty236') ;
$query = $db->query( " SELECT 'articles' 'id'
'articles' 'title '
'articles' 'timeline'
FROM 'articles'
ORDER BY 'articles' 'timestamp'
DESC
limit 10
");
if ($db->effected_rows >= 1)
{
echo'<?xml version="1.0" encoding="UTF-8" ?>
echo>
<?xml version="1.0"?>
<rss version="2.0">
<channel>
<title>Airsoft</title>
<ttl>10</ttl>
<link>www.renegdes.wz.cz/</link>
<description>Web o airsoft týmu.</description>
<language>cs</language>
<generator>Webtea RSS Generator 1.0</generator>
<?php
while ($row = squery-> fetch_assoc ())
?>
<item>
<title> <?php echo $row{'Title'}?>
<description>Web o airsoft týmu.</description>
<link>www.renegdes.wz.cz/article/ <?php echo $row{'id
<pubDate><?php echo date ('r',$row{'timestamp'} ) ?> </pubDate>
</item>
</channel>
</rss>
#11 peter
Také existuje Pastebin, GitHub, Bitbucket a další úložiště, která se na zdrojáky přímo specializují. Navíc se u některých dá uložit komentář přímo k pochybnému řádku. Vůbec by nebylo od věci, kdyby je učitelé naučili pracovat s verzovacími systémy (zejména Git), neboť bez nich si v praxi ani nevrznou.
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Ukladani dat — založil Earl Cash
C# Ukladani dat do .ini — založil nevimjakejmeno
C# : Ukládání dat ve WForms — založil Hoffik
AS - ukladaní a načitaní dat — založil Borisek
Ukládání dat na disk — založil sh00ter
Moderátoři diskuze