Autor | Zpráva | ||
---|---|---|---|
Kry5 Profil |
#1 · Zasláno: 8. 3. 2010, 11:57:02
Zdravím.
Udělal jsem si podle tohoto článku: http://pecan.cz/index.php?id=39&n=registrace-prakticky-priklad registraci a piřhlášení uživatelů na můj web, ale nefunguje mi, kdykoli bych se chtěl přihlásit háže mi to tenhle error: Warning: require(db.php) [function.require]: failed to open stream: No such file or directory in /home/free/ic.cz/f/fantasy-blog/root/www/gamebook/login_zpracuj.php on line 10 Fatal error: require() [function.require]: Failed opening required 'db.php' (include_path='/usr/share/php/smarty/libs:/usr/share/fpdf:/usr/share/php/:.') in /home/free/ic.cz/f/fantasy-blog/root/www/gamebook/login_zpracuj.php on line 10 Navíc si nejsem jistej jestli to orpavdu zaregistruje, protože když dám registrovat nezobrazí se mi hláška "Jste v pořádku zaregistrován". Nebo nějak tak... Celé je to nahrané na webu: www.fantasy-blog.ic.cz/gamebook/ (začít novou hru: registrace; pokračovat: přihlášení.)-můžete si zde prohlédnout soubory: index.php, login.php a registrace.php popř. style.css Soubor Login_zpracuj: <?php ob_start(); /* * Tetno soubor zjisti zda se takovy uzivatel s takovym heslem v databazi nachazi. * Pokud ano, do sessions o tom ulozime informaci. * Jinak se samozrejme presmerujeme zpet a dame uzivateli vedet, ze zadal spatne udaje */ session_start(); // Budeme pracovat se session, musĂme je nastartovat. if(isset($_POST['jmeno'])){ require 'db.php'; $name = $_POST['jmeno']; $pass = md5($_POST['heslo']); $query = MySQL_Query("SELECT * FROM `uzivatele` WHERE `jmeno` = '$name' and `heslo` = '$pass'") or die (mysql_error()); // Vybereme uĹľivatele se zadanĂ˝m jmĂnem a heslem $Vysledek = mysql_fetch_array($query); $Vysledek['jmeno']; if($Vysledek['jmeno']){ // pokud tato promÄ›nná obsahuje data, bylo zadanĂ správnĂ jmĂno a heslo // Do sessions si uloĹľĂme pár informacĂ o pĹ™ihlášenĂm $_SESSION['prihlasen'] = 1; $_SESSION['login'] = $Vysledek['jmeno']; $_SESSION['UserId'] = $Vysledek['id']; $bl="index.php"; header("location: $bl"); // pĹ™esmÄ›rujeme na index }else{ $bl="index.php?Alert=6"; header("location: $bl"); // špatnÄ› zadanĂ Ăşdaje // echo "Zadal jsi neplatné údaje"; } mysql_free_result($query); }else{ echo "Zde nic není ;-)"; } ob_end_flush(); ?> Soubor reg_zpracuj: <?php ob_start(); // cachujeme vystup if(isset($_POST['sent'])){ // pokud byl odeslan formular pokracuj timto $jmeno=trim($_POST['jmeno']); $heslo1=$_POST['heslo1']; $heslo2=$_POST['heslo2']; $mail=trim($_POST['mail']); $web=trim($_POST['web']); if($jmeno=="" or $heslo1=="" or $mail==""){ // pokud nebylo vyplnÄ›no nÄ›co z toho, co je povinnĂ, dáme vÄ›dÄ›t a skript ukonÄŤĂme $backlink="index.php?page=registrace&Alert=1"; }else{ // povinnĂ udaje vyplnÄ›ny vsechny require "db.php"; // pripojime se k databazi $PocetStejnych=mysql_result(mysql_query("SELECT COUNT(*) FROM `uzivatele` WHERE `jmeno`='$jmeno' OR `mail`='$mail'"), 0); if($PocetStejnych!=0){ // pokud v db je jiz takove jmeno nebo heslo... $backlink="index.php?page=registrace&Alert=2"; }elseif($heslo1 != $heslo2){ // pokud se hesla nerovnajĂ $backlink="index.php?page=registrace&Alert=3"; }else{ // hesla se shoduji, vlozime tedy data do databaze $heslo=md5($heslo1); // zahashujeme heslo if($web=="http://" or $web==""){ //pokud nezadal web tak dame promennou web prazdnou $web=""; } $VlozData=mysql_query("INSERT INTO uzivatele (jmeno,heslo,mail,web,prava) VALUES ('$jmeno', '$heslo')") or die (mysql_error()); // Vlozim do tabulky hodnoty - prvni je ID - nevyplnim, tvori se samo. // Jako posledni hodnota je "0", to jsou ty prava uzivatele. $backlink="index.php?Alert=4"; // presmerovani s hlaskou ze je vse OK } } }else{ $backlink="index.php?page=registrace&Alert=5"; } // pokud pouzijete HEADER LOCATION tak by pred nim nemelo byt zadne platne ECHO //echo "<a href='index.php'>index</a>"; // samozrejme zde muze byt presmerovani na jinou stranku pomoci header ("Location: $backlink"); ob_end_flush(); ?> ve složce inc ještě: db.php: <?php $spojeni = mysql_connect("mysql.ic.cz","ic_fantasy_blog","mám vyplněno!!" ) or die ('Spatne zadane udaje (asi heslo, server nebo jmeno.) v inc/db.php'); mysql_select_db("ic_fantasy_blog", $spojeni) or die ('Spatne zadana databaze v inc/db.php'); mysql_query("SET NAMES utf8"); ?> error404.php: <h1>Volaný soubor neextistuje!!!</h1> a soubor error_msg.php <?php /* * Zde jsou hlasky pro pripad ze neco budeme chtit vypsat uzivateli */ $Rvi = Array( 'Nebyly vyplněny všechny povinné údaje!', //1 'Zadané jméno nebo email je již používáno někým jiným!!', //2 'Zadaná hesla se neshodují!!!', //3 'Data byla uložena. Můžete se přihlásit!', //4 'Nebyl odeslán formulář', //5 'Zadal jsi nesprávné údaje!', //6 'Byl jsi odhlášen!' //7 ); ?> Mohl by mi tedy někdo říct co mám opravit aby mi vše fungovalo? Děkuji PS: heslo v souboru db.php mám vyplněno jen ho sem z pochopitelných důvodů nedávám...) Mockrát díky Kry5 |
||
Taps Profil |
#2 · Zasláno: 8. 3. 2010, 12:02:38
Kry5:
require 'inc/db.php'; |
||
Kry5 Profil |
#3 · Zasláno: 8. 3. 2010, 12:13:28
Taps:
Díky. Přihlášení už my funguje, ale jen za Darkry, který jsem si uložil do databáze ještě v úplně původní verzi skriptu: Odkaz. Ale když zaregistruji nový nick tak mi nejde přihlásit. Z toho vyplívá, že registrace je pořád nefunkční a navíc mi to pořád nehází ani chybové ani potvrzovací hlášky... Fakt sory...že s tim otravuju, ale jsem bezmocnej :-( |
||
Taps Profil |
#4 · Zasláno: 8. 3. 2010, 12:26:05
Kry5:
Unknown column 'mail' in 'field list'. Což znamená že v databázi není sloupeček s názvem mail. Zkontroluj si prosím názvy sloupců v databázi. |
||
Kry5 Profil |
#5 · Zasláno: 8. 3. 2010, 12:32:00
Já jsem právě vymazal v registraci i v sloupečku ty práva, mail i web. Takže pokud se tohle někde objevuje (teď nevim, kde myslíš). Snažil jsem se to všude promazat aby se to o ten mail atd. nestaralo.
|
||
Taps Profil |
#6 · Zasláno: 8. 3. 2010, 12:34:12
Kry5:
a co je toto ? $VlozData=mysql_query("INSERT INTO uzivatele (jmeno,heslo,mail,web,prava) VALUES ('$jmeno', '$heslo')") or die (mysql_error()); |
||
Kry5 Profil |
#7 · Zasláno: 8. 3. 2010, 12:43:58
OK. Upravil jsem ten reg-zpracuj.php:
<?php ob_start(); // cachujeme vystup if(isset($_POST['sent'])){ // pokud byl odeslan formular pokracuj timto $jmeno=trim($_POST['jmeno']); $heslo1=$_POST['heslo1']; $heslo2=$_POST['heslo2']; if($jmeno=="" or $heslo1==""){ // pokud nebylo vyplnÄ›no nÄ›co z toho, co je povinnĂ, dáme vÄ›dÄ›t a skript ukonÄŤĂme $backlink="index.php?page=registrace&Alert=1"; }else{ // povinnĂ udaje vyplnÄ›ny vsechny require "inc/db.php"; // pripojime se k databazi $PocetStejnych=mysql_result(mysql_query("SELECT COUNT(*) FROM `uzivatele` WHERE `jmeno`='$jmeno'"), 0); if($PocetStejnych!=0){ // pokud v db je jiz takove jmeno nebo heslo... $backlink="index.php?page=registrace&Alert=2"; }elseif($heslo1 != $heslo2){ // pokud se hesla nerovnajĂ $backlink="index.php?page=registrace&Alert=3"; }else{ // hesla se shoduji, vlozime tedy data do databaze $heslo=md5($heslo1); // zahashujeme heslo } $VlozData=mysql_query("INSERT INTO uzivatele (jmeno,heslo) VALUES ('$jmeno', '$heslo')") or die (mysql_error()); // Vlozim do tabulky hodnoty - prvni je ID - nevyplnim, tvori se samo. // Jako posledni hodnota je "0", to jsou ty prava uzivatele. $backlink="index.php?Alert=4"; // presmerovani s hlaskou ze je vse OK } } }else{ $backlink="index.php?page=registrace&Alert=5"; } // pokud pouzijete HEADER LOCATION tak by pred nim nemelo byt zadne platne ECHO //echo "<a href='index.php'>index</a>"; // samozrejme zde muze byt presmerovani na jinou stranku pomoci header ("Location: $backlink"); ob_end_flush(); ?> Ale teď mi to zase při registraci hází tohle: Parse error: syntax error, unexpected '}' in /home/free/ic.cz/f/fantasy-blog/root/www/gamebook/reg_zpracuj.php on line 29 |
||
Taps Profil |
#8 · Zasláno: 8. 3. 2010, 13:21:13
Kry5:
29. řádek }else{ odstraň zvýrazněnou závorku |
||
Kry5 Profil |
#9 · Zasláno: 8. 3. 2010, 13:30:52
Mockrát díky. Už všechno funguje jak má. Kdyby se naskytl ještě nějaký problém ozvu se :-)
|
||
Kry5 Profil |
#10 · Zasláno: 8. 3. 2010, 15:10:30
Tak mám ještě dva malý problémy:
1) U souboru http://www.fantasy-blog.ic.cz/gamebook/uvod.php jsem nastavil aby se zobrazil jen, když je uživatel přihlášen pokud není má vyskočit chybová hláška: Příběh je přístupný jen přihlášeným hráčům. Ta vyskakuje, ale pořád i když přihlášený jsem. Musí se tam nějak ztratit data o tom, že již jsem přihlášen. Co mám tedy doplnit aby se text zobrazil pokud je hráč přihlášen (můžete se přihlásit na: http://www.fantasy-blog.ic.cz/gamebook/login.php s nickem: test a heslem: test). Na soubor se pak dostanete kliknutím na !!HRAJ!! Kód souboru uvod.php: <?php /* * Pokud uĹľivatel nenĂ pĹ™ihlášenĂ˝, mĂsto obsahu se mu ukáže tato hláška. */ if(!isset($_SESSION['prihlasen']) and @$_SESSION['prihlasen']!=1){ echo "<h1>Příběh je přístupný jen přihlášeným hráčům.</h1>"; exit; } ?> <h1>Úvod</h1> <p>A tak jste se sešli v jedné malé hospůdce uprotřed vsi a diskutovali o všem možném i emožném. A pořád jste kecali dokola až vás to přestalo bavit a vzápětí jste všichni jako kouuzlem usnuli....Chrrrrrrr. Hospodská vás, ale asi za hodinu vzbudila a museli jste se přesunou do svých pokojů, kde jste konečně měly klid.</p> <h3>Co chcete udělat?</h3> <ul> <li> <a href="#">Nepozorovaně zmiznu z hospody</a></li> <li> <a href="#">Nejdříve si dám něco k jídlu a pak teprve odejdu</a></li> <li> <a href="#">Ještě tu jeden den zůstanu</a></li> </ul> Není tam celý HTML kód, protože jsem zamýšlel udělat v menu odkaz takto: <li><a href='index.php?page=uvod'> Top secret </a></li> ale to my také nefungovalo a nevím proč. No a 2) Pořád my nenaskakují chybové a potvrzovací hlášky ze souboru error_msg.php: <?php /* * Zde jsou hlasky pro pripad ze neco budeme chtit vypsat uzivateli */ $Rvi = Array( 'Nebyly vyplněny všechny povinné údaje!', //1 'Zadané jméno nebo email je již používáno někým jiným!!', //2 'Zadaná hesla se neshodují!!!', //3 'Data byla uložena. Můžete se přihlásit!', //4 'Nebyl odeslán formulář', //5 'Zadal jsi nesprávné údaje!', //6 'Byl jsi odhlášen!' //7 ); ?> Také nevím proč.. Omlouvám se že tady pořád otravuju, ale v PHP se prozatím moc nevyznám tak potřebuji poradit :-) |
||
Taps Profil |
#11 · Zasláno: 8. 3. 2010, 16:17:28
Kry5:
Toto by mohlo fungovat <?php session_start(); /* * Pokud uĹľivatel nenĂ pĹ™ihlášenĂ˝, mĂsto obsahu se mu ukáže tato hláška. */ if(!isset($_SESSION['prihlasen']) and @$_SESSION['prihlasen']!=1){ echo "<h1>Příběh je přístupný jen přihlášeným hráčům.</h1>"; } else{ echo' <h1>Úvod</h1> <p>A tak jste se sešli v jedné malé hospůdce uprotřed vsi a diskutovali o všem možném i emožném. A pořád jste kecali dokola až vás to přestalo bavit a vzápětí jste všichni jako kouuzlem usnuli....Chrrrrrrr. Hospodská vás, ale asi za hodinu vzbudila a museli jste se přesunou do svých pokojů, kde jste konečně měly klid.</p> <h3>Co chcete udělat?</h3> <ul> <li> <a href="#">Nepozorovaně zmiznu z hospody</a></li> <li> <a href="#">Nejdříve si dám něco k jídlu a pak teprve odejdu</a></li> <li> <a href="#">Ještě tu jeden den zůstanu</a></li> </ul>'; } ?> |
||
Kry5 Profil |
#12 · Zasláno: 9. 3. 2010, 09:46:01
Díky mockrát.
Ještě cjestli by mi někdo mohl vysvětlit ty chybové hlášky. Jo a abych nezapomněl v Google Chrome i Firefox mi odlhášení uživatele funguje bez problému, ale v IE a v Opeře se to odmítá odhlásit: logout.php: <?php ob_start(); // odhlaseni autora if(IsSet($_GET['logout']) and $_GET['logout']=="yes") { Session_Start(); Session_Destroy(); } header ("location: index.php?Alert=7"); ob_end_flush(); ?> Díky |
||
Taps Profil |
#13 · Zasláno: 9. 3. 2010, 21:28:37 · Upravil/a: Taps
Kry5:
„odmítá odhlásit“ Zobrazuje se nějaké chybové hlášen?. V jakém tvaru máš napsaný odkaz pro odhlášení ? |
||
Kry5 Profil |
#14 · Zasláno: 10. 3. 2010, 08:02:59
Odkaz:
<a href='logout.php?logout=yes'>Odhlásit se | </a> Ne žádnou chybovou hlášku to nehlásí prostě se to jenom neodhlásí. Vlastně spíš se to odlásí tak napůl. Na indexu totiž zmizne odkaz hraj, ale dole lišta "Přihlášený hráč: XXXX ; Odhlásit" zůstane. Když jsem ve hře a kliknu na odhlásit se tak bych se mněl vrátit na index.php (v Firefoxu i Chrome to tak funguje), ale v Opeře a v IE se nestane vůbec nic. |
||
Taps Profil |
#15 · Zasláno: 11. 3. 2010, 17:43:19
Kry5:
zkus kod upravit jen takto <?php ob_start(); // odhlaseni autora if($_GET['logout']=="yes") { Session_Start(); Session_Destroy(); } header ("location: index.php?Alert=7"); ob_end_flush(); ?> |
||
Kry5 Profil |
#16 · Zasláno: 11. 3. 2010, 21:37:47
Bohužel pořád nefunguje.
|
||
Spacebar Profil |
#17 · Zasláno: 12. 3. 2010, 08:04:20 · Upravil/a: Spacebar
Zkus oddělat to bufferování výstupu a dát session_start(); na začátek, třeba ti to vyhodí nějakou chybovku. O tom session_start() jsem někde četl, že to má být na začátku.
<?php session_start(); // odhlaseni autora if($_GET['logout']=="yes") { Session_Start(); Session_Destroy(); header ("location: index.php?Alert=7"); } else { echo "logout=".$_GET["logout"]; } ?> |
||
Časová prodleva: 6 měsíců
|
|||
perwin Profil * |
#18 · Zasláno: 26. 8. 2010, 11:31:47
ahoj, já jsem zkousel tadytu opravenou registraci, ale vyskytl se problem v souboru inc/db.php:
<?php $spojeni = mysql_connect("mysql.webzdarma.cz","mojephps","mám vyplněno!!" ) or die ('Spatne zadane udaje (asi heslo, server nebo jmeno.) v inc/db.php'); mysql_select_db("mojephps", $spojeni) or die ('Spatne zadana databaze v inc/db.php'); mysql_query("SET NAMES utf8"); ?> vzdy to hlasi: Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'mojephps'@'192.168.12.6' (using password: YES) in /3w/wz.cz/m/mojephps/inc/db.php on line 2 Spatne zadane udaje (asi heslo, server nebo jmeno.) v inc/db.php prosim poradte, dekuji za odpovedi |
||
Časová prodleva: 1 rok
|
|||
šimon Profil * |
#19 · Zasláno: 14. 9. 2011, 18:50:39
Dobrý den
skusil sem si tu registraci dat na svuj web (neni hotovej) http://r0yal.g6.cz/ ale kdyz se prihlasim nenapise mi ze nejsem prihlasenej ale tady jo http://r0yal.g6.cz/reg/index.php mam totiz i tu püvodni verzi ktera mi normalne funguje ale kdyz to dam do tohohle webu uz to nejde Prosím o radu a sry sem zacatecnik |
||
Časová prodleva: 8 měsíců
|
|||
xahoj Profil |
#20 · Zasláno: 18. 5. 2012, 15:02:21
Diky ja to mam taky a taky mi to nefungovalo a tak ted uz jö
|
||
Časová prodleva: 12 let
|
0