Autor | Zpráva | ||
---|---|---|---|
Leomato Profil |
#1 · Zasláno: 1. 11. 2010, 14:20:08 · Upravil/a: Leomato
Viem že tema "Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\administration\index.php:1) in C:\xampp\htdocs\administration\index.php" tu bola neraz spomínaná ale nenašiel som tam pre chybu v
setcookie ("user", $_POST["name"], 0, "/administration"); setcookie ("log", $now, 0, "/administration"); Podotíkam že toto mi začalo vypisovať až keď som tento skript spusitil v XAMPP. cely login kod tu if(isset($_POST['prihlasit'])){ if(empty($_POST['name']) | empty($_POST['pass'])) echo '<tr><td><div class="error">Musíte vyplnit obidve pole!</div></td></tr>'; else { $getlogin = mysql_query("select name from users where (`name` = '$_POST[name]')"); if(mysql_num_rows($getlogin) != '0') { $pass = md5($_POST['pass']); $getpass = mysql_query("select name from users where (`name` = '$_POST[name]') and (`pass` = '$pass')"); if(mysql_num_rows($getpass) != '0') { $id = mysql_fetch_array($getpass); $now = strtotime("now"); setcookie ("user", $_POST[name], 0, "/administration"); setcookie ("log", $now, 0, "/administration"); $cas = strtotime("now"); mysql_query("UPDATE users SET lastlog = '$cas' where name = '$_POST[name]'"); $_COOKIE['user'] = $id; $rev_key = rev($_POST['name'].YOUR_IP.$pass.$cas); } else echo '<tr><td><div class="error">Chybné heslo!</div></td></tr>'; } else echo '<tr><td><div class="error">Chybné meno!</div></td></tr>'; } } |
||
tiso Profil |
#2 · Zasláno: 1. 11. 2010, 14:29:58 · Upravil/a: tiso
Leomato: Toto je súbor administration\index.php ? A kde máš nejaké
<?php ?
|
||
Leomato Profil |
#3 · Zasláno: 1. 11. 2010, 14:30:59
to je len výrez časti v ktorej to vyhadzuje chybu
|
||
SwimX Profil |
#4 · Zasláno: 1. 11. 2010, 14:32:14 · Upravil/a: SwimX
chyb jak máku
if(empty($_POST['name']) || empty($_POST['pass'])) echo '<tr><td><div class="error">Musíte vyplnit obidve pole!</div></td></tr>'; else { $getlogin = mysql_query("select name from users where (`name` = '$_POST[name]')"); //koukni na sql injection - ]http://php.vrana.cz/obrana-proti-sql-injection.php if(mysql_num_rows($getlogin) != '0') { //proč porovnáváš čísla v apostrofech? php si to zbytečně musí převádět zpět $pass = md5($_POST['pass']); $getpass = mysql_query("select name from users where (`name` = '$_POST[name]') and (`pass` = '$pass')"); if(mysql_num_rows($getpass) != '0') { //proč vubec nejdřív hledáš jméno a pak znovu dotazem na DB hledáš jméno a heslo? dej to do jednoho dotazu $id = mysql_fetch_array($getpass); $now = strtotime("now"); setcookie ("user", $_POST[name], 0, "/administration"); setcookie ("log", $now, 0, "/administration"); $cas = strtotime("now"); mysql_query("UPDATE users SET lastlog = '$cas' where name = '$_POST[name]'"); //jakého typu je sloupec lastlog? $_COOKIE['user'] = $id; $rev_key = rev($_POST['name'].YOUR_IP.$pass.$cas); } else echo '<tr><td><div class="error">Chybné heslo!</div></td></tr>'; } else echo '<tr><td><div class="error">Chybné meno!</div></td></tr>'; } } žádný header tady ale nevidím, zřejmě si nedal celý kód |
||
Tori Profil |
#5 · Zasláno: 1. 11. 2010, 14:32:52 · Upravil/a: Tori
tímto to není, když chybová hláška mluví o řádku č.1?
Jinak v těch sql dotazech bych doporučovala použít $_POST['name'] |
||
tiso Profil |
#6 · Zasláno: 1. 11. 2010, 14:33:35
Leomato: chybová hláška ti píše, že výstup začal v súbore administration\index.php na riadku 1.
|
||
Leomato Profil |
#7 · Zasláno: 1. 11. 2010, 14:33:54
celá chybová hlaska znie takto "Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\administration\index.php:1) in C:\xampp\htdocs\administration\index.php on line 372
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\administration\index.php:1) in C:\xampp\htdocs\administration\index.php on line 373" |
||
Leomato Profil |
#8 · Zasláno: 1. 11. 2010, 14:47:29
V celem temhle skripte nemam funkciu header ani spomenutu tak nevim.
|
||
Chamurappi Profil |
#9 · Zasláno: 1. 11. 2010, 14:51:30
Reaguji na Leomata:
Kudy myslíš, že se posílají ty sušenky? Skrz hlavičku, stejně jako jejich křupavé kolegyně. Na řádku 1 posíláš nějaký výstup, takže viz již zmíněný odkaz na FAQ. |
||
Joker Profil |
#10 · Zasláno: 1. 11. 2010, 14:52:21 · Upravil/a: Joker
Leomato:
„V celem temhle skripte nemam funkciu header ani spomenutu tak nevim.“ Nastavování cookie modifikuje hlavičky (stejně jak například session_start, kde vlastně součástí je taky nastavování cookie). „to je len výrez časti v ktorej to vyhadzuje chybu“ Píše to tam: „output started at C:\xampp\htdocs\administration\index.php:1“, co je na řádku 1? Není náhodou problém s BOMem? Viz FAQ edit, Chamurappi byl rychlejší |
||
Leomato Profil |
#11 · Zasláno: 1. 11. 2010, 14:56:46
BOM by to mohl být už preto lebo používám Notepad++.
|
||
Leomato Profil |
#12 · Zasláno: 1. 11. 2010, 14:58:34
na radku 1 je
<?php include "../core.php"; |
||
Tori Profil |
#13 · Zasláno: 1. 11. 2010, 15:00:34
takže zkontrolujte i core.php
|
||
Leomato Profil |
#14 · Zasláno: 1. 11. 2010, 15:03:12 · Upravil/a: Leomato
core.php tiež nic
|
||
SwimX Profil |
#15 · Zasláno: 1. 11. 2010, 15:05:31
Leomato:
tiež nic znamená, že začíná <?php a končí ?> a není tam prázdný řádek před ani za? ani mezera, nic? |
||
Leomato Profil |
#16 · Zasláno: 1. 11. 2010, 15:08:06
presne tak
|
||
Tori Profil |
#17 · Zasláno: 1. 11. 2010, 15:24:55
když se kouknete do zdroje té stránky s chybou - je tam před "Warning: ...." vidět ještě něco (mezera, tečka, ...) ?
|
||
AM_ Profil |
#18 · Zasláno: 1. 11. 2010, 17:35:41
SwimX:
„tiež nic znamená, že začíná <?php a končí ?> a není tam prázdný řádek před ani za? ani mezera, nic?“ Pokud je v souboru pouze PHP kód, doporučuje se konečnou značku ?> vynechávat - PHP interpret to umožňuje a předchází to přesně těmto chybám, protože na konci souboru se snadno nějaký ten konec řádku zapomene |
||
SwimX Profil |
#19 · Zasláno: 1. 11. 2010, 19:13:41
AM:
zajímavé, to sem ani netušil :-) |
||
Časová prodleva: 13 dní
|
|||
GmCZ Profil * |
#20 · Zasláno: 14. 11. 2010, 23:04:29
Tori:
> Jinak v těch sql dotazech bych doporučovala použít > 1 > $_POST['name'] no radeji bych doporucil mysql_real_escape_string($_POST['name']), ale na to casem prijde ;-) |
||
Časová prodleva: 13 let
|
0