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 |
#2 · Zasláno: 10. 8. 2009, 15:46:06
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 |
#3 · Zasláno: 10. 8. 2009, 15:53:25
Je to rozbite. S tim nic neudelas.
|
||
z1993denek Profil * |
#4 · Zasláno: 10. 8. 2009, 16:22:59
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 |
#5 · Zasláno: 10. 8. 2009, 16:38:57
začni od znova, jak řekl fuckin, máš to rozbité
|
||
z1993denek Profil * |
#6 · Zasláno: 10. 8. 2009, 16:44:58
a neznate nekdo nejaky script na toto? tohle jsem vymejslel cely 2 tydny
|
||
Joker Profil |
#7 · Zasláno: 10. 8. 2009, 16:48:55
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 * |
#8 · Zasláno: 10. 8. 2009, 16:55:15
[#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 * |
#9 · Zasláno: 10. 8. 2009, 16:59:14
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 * |
#10 · Zasláno: 10. 8. 2009, 17:00:24
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 |
#11 · Zasláno: 10. 8. 2009, 17:04:18
u datetime nedávej délku
|
||
z1993denek Profil * |
#12 · Zasláno: 10. 8. 2009, 17:07:17
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 |
#13 · Zasláno: 10. 8. 2009, 17:17:13
z1993denek:
> MySQL hlásí: Dokumentace > #1067 - Invalid default value for 'date' ...prázdný řetězec překvapivě není platné datum s časem. |
||
z1993denek Profil * |
#14 · Zasláno: 10. 8. 2009, 17:19:56
„..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 |
#15 · Zasláno: 10. 8. 2009, 17:53:19
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 * |
#16 · Zasláno: 10. 8. 2009, 17:54:16
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 * |
#17 · Zasláno: 10. 8. 2009, 18:20:27
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 * |
#18 · Zasláno: 10. 8. 2009, 18:41:17
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 * |
#19 · Zasláno: 10. 8. 2009, 19:03:20
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 |
#20 · Zasláno: 11. 8. 2009, 03:25:03
z1993denek
„(kdyz opustí stránku, že to smaže zaznam v tabulce)“ Teoreticky i prakticky je to nemožné podchytit. |
||
Časová prodleva: 26 dní
|
|||
ExisteR Profil |
#21 · Zasláno: 6. 9. 2009, 15:17:36
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 |
#22 · Zasláno: 6. 9. 2009, 15:23:42
ExisteR
chybí ti tam název tabulky. |
||
ExisteR Profil |
#23 · Zasláno: 6. 9. 2009, 16:45:25 · Upravil/a: ExisteR
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 |
||
Časová prodleva: 1 rok
|
|||
meteos Profil * |
#24 · Zasláno: 5. 11. 2010, 16:24:07
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 |
#25 · Zasláno: 5. 11. 2010, 17:15:57
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 |
#26 · Zasláno: 6. 11. 2010, 12:42:48
tu registraciu si si mal spravit normalne cez formular a pouzit GET alebo POST... ten ked by bol lachsi a jednoduchsi
|
||
meteos Profil * |
#27 · Zasláno: 6. 11. 2010, 20:13:17
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 |
#28 · Zasláno: 6. 11. 2010, 21:12:32
K PHP existuje manuál, konkrétně session_start() a z uvedených příkladů a popisu je vše potřebné evidentní.
|
||
Časová prodleva: 13 let
|
0