Autor Zpráva
z1993denek
Profil *
chci si udelat zaheslovane stranky, takze jsem si vytvoril nekolik souboru: index.php, autorizace.php, registrace.php. To mi běhá normálně, ale kdyz chci vytvorit novou stranku tak hodim 2.php a at.php a hodi mi to error. Jak mam kod upravit aby to behalo?

registrace.php:
<?
Header("Pragma: No-cache");
Header("Cache-Control: No-cache, Must-revalidate");
Header("Expires: ".GMDate("D, d M Y H:i:s")." GMT");

$MC = MySQL_Connect("mysql.webovka.eu", "we_blood_knight", "******");
$MS = MySQL_Select_DB("we_blood_knight");

If (($email != "") AND ($password != "") AND ($login != "") AND ($name != "")):
$MSQ = MySQL_Query("SELECT * FROM users WHERE login LIKE '$login'");
If (MySQL_Num_Rows($MSQ) > 0):
$login = "";
$password = "";
$error = "<h4>Login již existuje!!!</h4>";
$f = "true";
Else:
$p = MD5($password);
$MSQ = MySQL_Query("INSERT INTO users VALUES (NULL, '$login', '$p', '$name', '$email')");
$m = "true";
$x = StrLen($password);
Endif;

Elseif (IsSet($send)):
$error = "<h4>Chybí povinné údaje!!!</h4>";
Endif;
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>Registrace nového uživatele</title>
</head>

<body>
<h3 align="center">Registrace nového uživatele</h3>
<?
If ((IsSet($error)) OR (!IsSet($send))):
echo $error;
?>
<form method="post" action="registrace.php">
<input type="Hidden" name="send" value="true">
<table>
<tr>
<td>Login:</td>
<td><input type="Text" name="login" size="40" maxlength="20" value="<?echo $login;?>"></td>
</tr>
<tr>
<td>Heslo:</td>
<td><input type="Password" name="password" size="40" maxlength="20" value=""></td>
</tr>
<tr>
<td>Emailová adresa:</td>
<td><input type="Text" name="email" size="40" maxlength="80" value="<?echo $email;?>"></td>
</tr>
<tr>
<td>Jméno:</td>
<td><input type="Text" name="name" size="40" maxlength="80" value="<?echo $name;?>"></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="Submit" value="Zaregistrovat">
</td>
</tr>
</table>
</form>

<?Elseif (IsSet($m)):?>
Byl(a) jste úspěšně zaregistrován(a) s těmito údaji:<br><br>
<b>Přihlašovací jméno</b>: <?echo $login;?><br>
<b>Heslo</b>: <?For ($i = 1; $i <= $x; $i++): echo "*"; Endfor;?><br>
<b>Jméno</b>: <?echo $name;?><br>
<b>Emailová adresa</b>: <?echo $email;?>
<?mail("$email", "Blood Knight", "děkujeme za registraci na Blood Knight, vase údaje jsou:
login: $login
heslo: $password
S pozdravem Blood Knight", "From: krejzdenek93@seznam.cz\nReply-To: krejzdenek93@seznam.cz\nX-Mailer: Thunderbird");?>
<p></p>
<a href="index.php"> Úvodní stránka </a>
<?Endif;?>
</body>
</html>
<?MySQL_Close($MC);?>



index.php:
<? include "autorizace.php"; ?>
<a href="registrace.php"> registrace </a>


autorizace.php:
<?
Header("Pragma: No-cache");
Header("Cache-Control: No-cache, Must-revalidate");
Header("Expires: ".GMDate("D, d M Y H:i:s")." GMT");

$MC = MySQL_Connect("mysql.webovka.eu", "we_blood_knight", "******");
$MS = MySQL_Select_DB("we_blood_knight");

If ((IsSet($login)) AND (IsSet($password))):
$p = MD5($password);
$MSQ = MySQL_Query("SELECT * FROM users WHERE (login LIKE '$login') AND (password LIKE '$p')");

If (MySQL_Num_Rows($MSQ) <> 1):
echo "Neautorizovaný přístup";
Exit;

Else:
$SN = "autorizace";
Session_name("$SN");
Session_start();
$sid = Session_id();
$time = Date("U");
$at = Date("U") - 1800;


$MSQ = MySQL_Query("INSERT INTO autorizace VALUES ('$sid', $time)");
$MSQ = MySQL_Query("DELETE FROM autorizace WHERE time < $at");
Endif;
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>Autorizace</title>
</head>

<body>
A hele: vůdce <? echo $login ?><p>
Vítej ve světě Blood Knighta
<p><a href="2.php"> 2. stranka </a>
<?
Elseif (IsSet($lo)):

$SN = "autorizace";
Session_name("$SN");
Session_start();
$sid = Session_id();

$MSQ = MySQL_Query("DELETE FROM autorizace WHERE id = '$sid'");
echo "Byl(a) jste odhlášen(a)!";
Else:
?>
<form action="autorizace.php" method="post">
<input type="Text" name="login">
<br>
<input type="Password" name="password">
<br>
<input type="Submit" value="Vstup">
</form>
<?Endif;?>
</body>
</html>
<?MySQL_Close($MC);?>



at.php

<?
$MC = MySQL_Connect("mysql.webovka.eu", "we_blood_knight", "******");
$MS = MySQL_Select_DB("we_blood_knight");\

$SN = "autorizace";
Session_name("$SN");
Session_start();
$sid = Session_id();
$date = Date("U");
$ad = Date("U") - 300;

$MSQ = MySQL_Query("SELECT * FROM autorizace WHERE (id = '$sid') AND (date >= $ad)");

If (MySQL_Num_Rows($MSQ) <> 1):
echo "Neautorizovaný přístup";
Exit;
Else:
$MSQ = MySQL_Query("UPDATE autorizace SET date = $date WHERE id = '$sid'");
Endif;
MySQL_Close($MC);
?>



2.php:

<? include "at.php"; ?>
2. stranka
panther
Profil
z1993denek
a hodi mi to error.
Jaký error? Kdy, kde, jak a proč?

Ne, vážně si myslíš, že tady bude někdo procházet ten tvůj kilometrový kód a hledat v něm chybu? U chyby máš popis, řádek, v jehož okolí se tak děje, tak se snaž.
fuckin
Profil
Je to rozbite. S tim nic neudelas.
z1993denek
Profil *
soubor at.php, rádek 16: /--phpecho "Neautorizovaný přístup";\--
možná jestli to nebude tim, ze jsem dal:
CREATE TABLE autorizace
(
id varchar(80) NOT NULL default '',
date varchar(10) NOT NULL default '',
PRIMARY KEY (id),
UNIQUE KEY id (id)
);


místo:
CREATE TABLE autorizace
(
id varchar(80) NOT NULL default '',
date int(10) NOT NULL default '',
PRIMARY KEY (id),
UNIQUE KEY id (id)
);
dan55
Profil
začni od znova, jak řekl fuckin, máš to rozbité
z1993denek
Profil *
a neznate nekdo nejaky script na toto? tohle jsem vymejslel cely 2 tydny
Joker
Profil
z1993denek:
možná jestli to nebude tim, ze jsem dal:
...
date varchar(10) NOT NULL default '',
...
místo:
...
date int(10) NOT NULL default '',

No to jsou teda SQL dotazy, oba dva. Fuj! Prošlo to vůbec? Vytvořila se ta tabulka?
1. Ten druhý dotaz cpe do číselného sloupce jako výchozí hodnotu řetězec, takže se ani nedivím, jestli databáze řvala.
2. "date" je vyhrazené slovo, takže jestli to není napsané jako `date`, taky bych se nedivil, kdyby databáze řvala.
3. Podle názvu bych řekl, že "date" je datum, proč to proboha je jednou typu VARCHAR a podruhé INT?! Od čeho asi máme typ datum (DATE, resp. DATETIME)?
4. Primární klíč typu VARCHAR?!
5. K čemu je dobré definovat unikátní klíč na sloupci, který už je primární klíč?
z1993denek
Profil *
[#7]
njn zrovna tohle jsem nasel na netu, protoze jsem hledal automatické odhlášení po určité době
takže když dam :

date datetime(10) NOT NULL default '',

P.S: du to zkusit
z1993denek
Profil *
SQL-dotaz:
/--php
CREATE TABLE autorizace(
id varchar( 80 ) NOT NULL default '',
date DATETIME( 10 ) NOT NULL default '',
PRIMARY KEY ( id ) ,
UNIQUE KEY id( id )
)
\--

MySQL hlásí: Dokumentace
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(10) NOT NULL default '',
PRIMARY KEY (id),
UNIQUE KEY id (id)
)' at line 4
z1993denek
Profil *
SQL-dotaz:

/--php
CREATE TABLE autorizace(
id varchar( 80 ) NOT NULL default '',
date DATETIME( 10 ) NOT NULL default '',
PRIMARY KEY ( id ) ,
UNIQUE KEY id( id )
)
\--

MySQL hlásí: Dokumentace
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(10) NOT NULL default '',
PRIMARY KEY (id),
UNIQUE KEY id (id)
)' at line 4
KGW
Profil
u datetime nedávej délku
z1993denek
Profil *
SQL-dotaz:

CREATE TABLE autorizace(
id varchar( 80 ) NOT NULL default '',
date DATETIME NOT NULL default '',
PRIMARY KEY ( id ) ,
UNIQUE KEY id( id )
)

MySQL hlásí: Dokumentace
#1067 - Invalid default value for 'date'
Joker
Profil
z1993denek:
MySQL hlásí: Dokumentace
#1067 - Invalid default value for 'date'
...prázdný řetězec překvapivě není platné datum s časem.
z1993denek
Profil *
..prázdný řetězec překvapivě není platné datum s časem.

tak co tam mám dát?
si ze me jen utahujete to vypada
Joker
Profil
Něco ke studiu: http://www.abclinuxu.cz/serialy/tvorba-databazi-v-mysql

Není potřeba zadávat výchozí hodnoty ani u jednoho sloupce.
Krom toho stále platí můj původní bod 5: Proč je unikátní klíč na sloupci, který už je primární klíč?

No a když jsem na to blíže kouknul, není vlastně celá tahle tabulka jen jeden další sloupec k údajům o relaci (jestli se někde drží)?
Čili že místo téhle tabulky by stačilo přidat k tabulce session (pokud existuje) sloupec třeba: datum_autorizace typu DATETIME, kde NULL by znamenalo neautorizováno.
z1993denek
Profil *
Díky moc za rady, trochu jsem to zkoušel a nakonec jsem tu tabulku vytvořil.
Ale:
zase to neběhalo
tak jsem nastavil hodnotu date na 1970-01-01 00:00:01
a už 2.php naskočilo
Tak jsem nastavil výchozí pro date 1970-01-01 00:00:01 ale ono si to nevezme a nahodí si to 0000-00-00 00:00:00
co s tím??
z1993denek
Profil *
Tak to nwm proč tam davam obojí, ale zatim mi to nepřekáželo.
Já teprve začínám s PHP, MySQL, do nedávna jsem si delal stranky spíš v HTML
z1993denek
Profil *
Tak se mi to podařilo!! Hurá!!
Vložil jsem do PHP :

$MSQ = MySQL_Query("update autorizace set date='1970-01-01 00:00:01' WHERE id = '$sid'");
z1993denek
Profil *
další dotaz:
jak lze napsat:

if exit delete from autorizace WHERE id = '$sid'
(kdyz opustí stránku, že to smaže zaznam v tabulce)
BetaCam
Profil
z1993denek
(kdyz opustí stránku, že to smaže zaznam v tabulce)

Teoreticky i prakticky je to nemožné podchytit.
ExisteR
Profil
Zdar, mužete mi plz nekdo napsat na ICQ 569151985 co s tim mam? kde je chyba a naco to mam prepsat? predem dik :)


Chyba
SQL-dotaz:

#
# Table structure for table 'Kurtadamlar'
#
CREATE TABLE (

id INT( 10 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
yourid INT( 10 ) DEFAULT NULL ,
fid INT( 10 ) DEFAULT NULL ,
PRIMARY KEY ( id ) ,
UNIQUE KEY id( id ) ,
KEY id_2( id )
);

MySQL hlásí:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(
id int(10) unsigned NOT NULL auto_increment,
yourid int(10) default NULL' at line 1
panther
Profil
ExisteR
chybí ti tam název tabulky.
ExisteR
Profil
ok diky vyskocila mi dalsi chyba :

Chyba
SQL-dotaz:

#
# Dumping data for table 'Server'
#
INSERT INTO avlanma süpesi
VALUES (

"2", "3", "1"
);

MySQL hlásí:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'süpesi VALUES("2", "3", "1")' at line 1
meteos
Profil *
Mám s tímto loginem problém. Přihlásil jsem se a zobrazila se mě stránka s odkazama (které jsem sám vytvořil), ovšem po kliknutí na odkaz to po mě znovu chce abych se lognul. Neznáte prosím něco co bude udržovat spojení? Předem děkuji.
Tori
Profil
session_start() musí být na všech stránkách, kde vám má to přihlášení fungovat. Nezapomněl jste ho někde použít?
aifel
Profil
tu registraciu si si mal spravit normalne cez formular a pouzit GET alebo POST... ten ked by bol lachsi a jednoduchsi
meteos
Profil *
Omlouvám se, ale jsem ještě zelenáč. Nemohly byste mi poradit kam mám dát to session_start(), popř. do jakých zvorek, ...
Alphard
Profil
K PHP existuje manuál, konkrétně session_start() a z uvedených příkladů a popisu je vše potřebné evidentní.

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: