Autor Zpráva
Leomato
Profil
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");
neviete čo s tym mam robiť?
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
Leomato: Toto je súbor administration\index.php ? A kde máš nejaké <?php ?
Leomato
Profil
to je len výrez časti v ktorej to vyhadzuje chybu
SwimX
Profil
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
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']
, tohle vám může fungovat jen díky tomu, že není nikde definována konstanta toho jména.
tiso
Profil
Leomato: chybová hláška ti píše, že výstup začal v súbore administration\index.php na riadku 1.
Leomato
Profil
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
V celem temhle skripte nemam funkciu header ani spomenutu tak nevim.
Chamurappi
Profil
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
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
BOM by to mohl být už preto lebo používám Notepad++.
Leomato
Profil
na radku 1 je
<?php include "../core.php";
Tori
Profil
takže zkontrolujte i core.php
Leomato
Profil
core.php tiež nic
SwimX
Profil
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
presne tak
Tori
Profil
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
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
AM:
zajímavé, to sem ani netušil :-)
GmCZ
Profil *
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 ;-)

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: