webForumDet fria alternativet

Två headers?

9 svar · 332 visningar · startad av Ann-Sofie

Ann-SofieMedlem sedan mars 2003136 inlägg
#1

Jag har gjort en sida med lösen. Skriver användaren in rätt lösenord som finns i databasen skickas han/hon vidare till en sida med header:location. Jag vill att han/hon ska skickas till en annan sida om dom skriver in fel lösenord.
Jag har försökt med två headers efter varandra men det är "självklart" att det inte funkar. Hur ska man lösa det istället?

$session_passw=$row[1];
header("location:correct.php");
}
else{
header("location:wrong.html");
{
mysql_close($connection)or die (mysql_error());
?>

mvh
ann-sofie

UrMeMedlem sedan apr. 2001797 inlägg
#2
<?php
if($session_passw == $row[1])
{
header("location:correct.php");
}
else{
header("location:wrong.html");
{
mysql_close($connection)or die (mysql_error());
?>

Nåt sådant borde kanske fungera? eller du kanske inte visade hela koden du hade :)

Ann-SofieMedlem sedan mars 2003136 inlägg
#3

här är hela koden!

..du har rätt.. jag skrev inte hela koden...
Testade ditt förslag men det ger mig felmeddelande på sista raden:" unexpected $end".

Hela koden är följande:

<?php
session_start();
$connection=mysql_connect("localhost","", "") or die ('kunde inte ansluta till mysql');
$db=mysql_select_db("jimmy") or die ('kunde inte hitta databasen');
$sql="SELECT * FROM users WHERE passw='".$_POST['passw']."'";
$result=mysql_query($sql) or die ("kunde inte hitta data");
while($row=mysql_fetch_row($result))
{
$session_passw=$row[1];
header("location:correct.php");
}
else{
header("location:wrong.html");
{
mysql_close($connection)or die (mysql_error());
?>

//ann-sofie

UrMeMedlem sedan apr. 2001797 inlägg
#4

gör så här:

<?php
session_start();
$connection=mysql_connect("localhost","", "") or die ('kunde inte ansluta till mysql');
$db=mysql_select_db("jimmy") or die ('kunde inte hitta databasen');
$sql="SELECT * FROM users WHERE passw='".$_POST['passw']."'";
$result=mysql_query($sql) or die ("kunde inte hitta data");

$numrows = mysql_num_rows($sgl);

if($numrows > 0)
{
header("location:correct.php");
}
else
{
header("location:wrong.html");
}

mysql_close($connection)or die (mysql_error());
?>

Prova det

Ann-SofieMedlem sedan mars 2003136 inlägg
#5

funkar inte ändå

Har provat nu men det funkar inte ändå... hakar fortfarande upp mig på att den redan skickat en header.

det här är felen:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\xxxxxx on line 8

Warning: Cannot modify header information - headers already sent by (output started at c:\xxxxxxx:8) in c:\xxxxxxxxxon line 16

Det borde ju finnas nåt sätt att göra för att kunna skicka två header.....

/ann-sofie

UrMeMedlem sedan apr. 2001797 inlägg
#6

Nåt fel på sql frågan då.
prova detta:

<?php
session_start();
$connection=mysql_connect("localhost","", "") or die ('kunde inte ansluta till mysql');
$db=mysql_select_db("jimmy") or die ('kunde inte hitta databasen');
$passordet = $_POST["passw"];
$sql="SELECT * FROM users WHERE passw='$passordet'";
$result=mysql_query($sql) or die ("kunde inte hitta data");

$numrows = mysql_num_rows($sql);

if($numrows > 0)
{
header("location:correct.php");
}
else
{
header("location:wrong.html");
}

mysql_close($connection)or die (mysql_error());
?>

Kom ihåg att du får inte ha nåt som skrivs till webbläsaren innan denna kod.

FlashXMedlem sedan nov. 1999992 inlägg
#7

I så fall tyckts det ju fungera.

headers already sent by (output started at c:\xxxxxxx:8) in c:\xxxxxxxxxon line 16

talar ju om att den redan skickat en header.

Tar mig friheten att citera Matte

Matte skrev:

Före en header får man inte skicka något till webbläsaren. Ingen HTML, ingen echo eller print. Ej heller någon tomrad eller mellanslag före PHP-taggen.

UrMeMedlem sedan apr. 2001797 inlägg
#8

Precis som FlashX citerade..

Men du skickar ju inte 2 headers samtidigt.. utan scriptet väljer ju ut en av dem.

Ops såg ett litet fel som smygit sig in i min senaste kod.. ny redigerad kod:

<?php
session_start();
$connection=mysql_connect("localhost","", "") or die ('kunde inte ansluta till mysql');
$db=mysql_select_db("jimmy") or die ('kunde inte hitta databasen');
$passordet = $_POST["passw"];
$sql="SELECT * FROM users WHERE passw='$passordet'";
$result=mysql_query($sql) or die ("kunde inte hitta data");

$numrows = mysql_num_rows($sql);

if($numrows > 0)
{
header("location:correct.php");
}
else
{
header("location:wrong.html");
}

mysql_close($connection)or die (mysql_error());
?>
FlashXMedlem sedan nov. 1999992 inlägg
#9

Men det blir ju två om man skickar en av dem eftersom det har skickats en tidigare :)

FuelMedlem sedan okt. 20001 325 inlägg
#10

Glöm inte exit

<?php
session_start();
$connection=mysql_connect("localhost","", "") or die ('kunde inte ansluta till mysql');
$db=mysql_select_db("jimmy") or die ('kunde inte hitta databasen');
$passordet = $_POST["passw"];
$sql="SELECT * FROM users WHERE passw='$passordet'";
$result=mysql_query($sql) or die ("kunde inte hitta data");

$numrows = mysql_num_rows($sql);

if ($numrows > 0) {
header("location:correct.php");
exit;
} else {
header("location:wrong.html");
exit;
}

mysql_close($connection)or die (mysql_error());
?>
483 ms totalt · 5 externa anrop · cache AV · v20260730165559-full.0b955084
118 ms — hämta statistik (db)
120 ms — slå upp tråd (db)
124 ms — hämta inlägg (db)
126 ms — hämta forumlista (db)
116 ms — hämta bilagor (db)