Autor Zpráva
Kry5
Profil
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
Kry5:
require 'inc/db.php';
Kry5
Profil
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
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
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
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
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
Kry5:
29. řádek
 }else{

odstraň zvýrazněnou závorku
Kry5
Profil
Mockrát díky. Už všechno funguje jak má. Kdyby se naskytl ještě nějaký problém ozvu se :-)
Kry5
Profil
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
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
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
Kry5:
odmítá odhlásit
Zobrazuje se nějaké chybové hlášen?. V jakém tvaru máš napsaný odkaz pro odhlášení ?
Kry5
Profil
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
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
Bohužel pořád nefunguje.
Spacebar
Profil
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"];
}
?>
perwin
Profil *
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
šimon
Profil *
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
xahoj
Profil
Diky ja to mam taky a taky mi to nefungovalo a tak ted uz jö

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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