Autor Zpráva
hladis
Profil
Dobrý den. Je to sice drobnost, ale nevím co s tím. V souboru index.php mám kód:

<html>
<head>
<title>fasdfasd</title>
</head>
<body>
<form action="index.php" method="post">
<input type="password" name="heslo">
<input type="submit" value="odeslat">
</form>

<?php
$heslo = $_POST['heslo'];
if($heslo != "nivnice"){
header("Location: http://fajni.9x.cz/skript.php");
}else{
echo "Špatné heslo!";
}
?>
</body>
</html>


Nevíte někdo, co s tím? Soubor skript.php normálně existuje, jeho obsah:
<?php 
echo"text";
?>

Díky za každou odpověď.
Majkl578
Profil
a kde ma byt problem?
Aesir
Profil
Možná v té podmínce
!=
je nerovnost.
Nox
Profil
Neměla by v tom skript.php být mezi echem a uvozovkama mezera?
alteaffe
Profil *

if (isset($heslo)=="pivnice"){
blablabla
}else{
blebleble
}
Aesir
Profil
edit: nic, jsem slepý
Majkl578
Profil
alteaffe
??? co to je za nesmysl?
alteaffe
Profil *
misto != pouzij ==
alteaffe
Profil *
Majkl578 kde vydis nesmysl ? v tom blabla bla ? za blablabla si dosadi co chce ne , to je jen priklad
Nox
Profil
alteaffe
Přečti si k čemu je isset ;)
panther
Profil
alteaffe
Majkl578 kde vydis nesmysl ?
v tvém zápise [#5] ;-)
hladis
Profil
panther
To máš jedno ne?
hladis
Profil
alteaffe
Upravil jsem to, jak jsi řekl:
<html>
<head>
 <title>fasdfasd</title>
</head>
<body>
<form action="index.php" method="post">
<input type="password" name="heslo">
<input type="submit" value="odeslat">
</form>
<?php
if (isset($heslo)=="nivnice"){
header("Location: http://fajni.9x.cz/skript.php"); 
}else{
echo "Špatné heslo!";
}
?>
</body>
</html>


Kde pořád píši chybu? Vše si klidně vyzkoušejte.

Jo a chybu to píše
Warning: Cannot modify header information - headers already sent by (output started at /users/zalohovane/9x.cz/fajni/index.php:11) in /users/zalohovane/9x.cz/fajni/index.php on line 13
Mastodont
Profil
http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=9&topic=2111
hladis
Profil
Mastodont
A co přesně?
bohyn
Profil
hladis
Zkopiroval si presne to co si nemel :)
isset($heslo)=="nivnice"
Tento zapis je naprosto nelogicky, isset() vraci true/false. "nivnice" se vyhodnoti jako true takze pokazde kdyz existuje promena $heslo tak podminka plati. Misto toho pouzij:
if(isset($_POST['heslo'])) {
  if($_POST['heslo'] == "nivnice") {
    echo "spravne heslo";
  }
  else {
    echo "spatne heslo";
  }
}


Edit: Upraveno podle navrhu nightfishe

Warning: Cannot modify header information - headers already sent by (output started at /users/zalohovane/9x.cz/fajni/index.php:11) in /users/zalohovane/9x.cz/fajni/index.php on line 13
Na zacatek scriptu dej
ob_start();
nightfish
Profil
hladis
A co přesně?
část nadepsanou "headers already sent..."

ad bohyn
bude ještě potřeba to trochu upravit, protože v tomto případě ti první přístup na stránky vypíše "špatné heslo", což zřejmě není zamýšlené chování
hladis
Profil
Takže teď mám
<html>
<head>
 <title>fasdfasd</title>
</head>
<body>
<form action="index.php" method="post">
<input type="password" name="heslo">
<input type="submit" value="odeslat">
</form>
<?php
ob_start();
$heslo = $_POST['heslo'];
if(isset($_POST['heslo'])) {
  if($_POST['heslo'] == "nivnice") {
    header("Location: http://fajni.9x.cz/skript.php");
  }
  else {
    echo "spatne heslo";
  }
} 
?>
</body>
</html>

a pořád to nejde :( Čím to je?
nightfish
Profil
a pořád to nejde :( Čím to je?
ob_start() musíš volal před prvním výstupem skriptu...
takže správnější řešení je
<?php ob_start(); ?>
<html>
<head>
...
<?php
$heslo = $_POST['heslo'];
...
hladis
Profil
nightfish
Super už to jde díky.

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: