Autor Zpráva
dragon124
Profil
dobrý den,
potřebuji udělat že když se někdo zaregistruje tak se údaje zapíšou to souboru .txt.
když se někdo chce přihlásit tak se pak kontrolují všechny řádky.

registrace:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<form action="registrace_send.php" method="GET">
<input type="text" name="prom3" />
<input type="text" name="prom4" />
<input type="submit" />
</form>
<body>
</body>
</html>

registrace_send:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<?php
$prom1 = $_GET["prom1"];
$prom2 = $_GET["prom2"];

$soubor = fopen("text.txt", "a"); 
fwrite($soubor, $prom1.";".$prom2."\r\n"); 
fclose($soubor);

?>
<body>
</body>
</html>


prihlaseni:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<form action="prihlaseni_send.php" method="GET">
<input type="text" name="prom3" />
<input type="text" name="prom4" />
<input type="submit" />
</form>
<body>
</body>
</html>

prihlaseni_send:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<?php
$prom3 = $_GET["prom3"];
$prom4 = $_GET["prom4"];


$soubor = fopen("text.txt", "r"); 
while($prom5 != " "){
$prom5=fgets($soubor);
if($prom5 == $prom3.";".$prom4){
$login = $prom3.";".$prom4;
goto konec;
}}
konec:
fclose($soubor);

?>
<body>
</body>
</html>
prosím poraďte proč to píše:
Notice: Undefined variable: prom5 in C:\Program Files\EasyPHP-5.3.8.0\www\netcopy\login.php on line 13

Fatal error: Maximum execution time of 30 seconds exceeded in C:\Program Files\EasyPHP-5.3.8.0\www\netcopy\login.php on line 15

sem si vědom OBROVITÁNSKÝCH děr v bezpečnosti a vim co s tim. toto je jen pro vizkoušení. prosím neupozorňujte mě na ně
Alphard
Profil
dragon124:
Notice: Undefined variable
Protože ta proměnná v té chvíli neexistuje.

Fatal error: Maximum execution time of 30 seconds exceeded
Pravděpodobně se vám to podařilo zacyklit. Proč pro ukončení cyklu hledáte zrovna mezeru?

Použití goto tam, kde by stačilo break je, je nevhodné, mírně řečeno.

Ještě podotýkám, že pojmenovávat proměnné tak, jak to děláte není do budoucna rozumné. Ve FAQ je datobázová verze přihlášení.
Bertram
Profil
Ahoj, na řádku 13 se ptáš na neexistující proměnou viz chybová hláška že ano.
mohlo by fungovat:
    while (!feof($soubor))
A také bych to zkoušel už bez toho, na co tě nemáme upozorňovat a místo txt použil databázi.
dragon124
Profil
děkuji moc,
opravdu to hodně pomůže.
Fisak
Profil
Jen moc nechápu proč používáš $_GET když jde o formuláře a nikde se do adresy nic neodesílá... proč nepoužiješ $_POST ??


jo už to vidím neni tam method="POST" ale method="GET" což stejně moc nechápu .. neni lepší a bezpečnější POST ??

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: