[quote] Hey udviklere!
Den skriver følgende, når jeg kalder header:
Fejlen:
Warning: Cannot modify header information - headers already sent by (output started at c:\\apache\\apache\\htdocs\\hp'er\\fazez\\func\\design-func.php:9) in c:\\apache\\apache\\htdocs\\hp'er\\fazez\\ressourcer\\brugersys\\create_user.php on line 19
create_user.php
<?
$postpass1 = $_POST['postpass1'];
$postpass2 = $_POST['postpass2'];
$postnick = $_POST['postnick'];
if($postpass1 == $postpass2) {
$conn = mysql_connect("$hostname","$brugernavn","$password");
mysql_select_db("$database");
$result = mysql_query("select * from members where nick = '$postnick' AND password = '$postpass1'");
$number = mysql_num_rows($result);
if($number == 0) {
mysql_query("insert into members (nick, password) values ('$postnick', '$postpass1')");
header("location: index.php;");
} else {
echo "Nick er optaget 8|<a href='index.php?page=new_user'>Tilbage</a>";
}
} else {
echo "De to passwords passer ikke sammen!<a href='index.php?page=new_user'>Tilbage</a>";
}
?>
design_func.php
<?
function top($title) {
echo "
<html>
<head>
<link rel='stylesheet' style='text/css' href='norm.css'>
<title>$title</title>
</head>
";
}
?>
Mvh. Per Rødgaard
Du skal ændre i create_user, der er en ny linie i toppen...
Fejlen er at dit skript starter med output...
---------
<--- denne linie er outputtet i create_user, fjern den,
<?php
din kode
---------
så det kommer til at se sådan ud:
---------
<php
din kode
---------
den rettede version:
<?
$postpass1 = $_POST['postpass1'];
$postpass2 = $_POST['postpass2'];
$postnick = $_POST['postnick'];
if($postpass1 == $postpass2) {
$conn = mysql_connect("$hostname","$brugernavn","$password");
mysql_select_db("$database");
$result = mysql_query("select * from members where nick = '$postnick' AND password = '$postpass1'");
$number = mysql_num_rows($result);
if($number == 0) {
mysql_query("insert into members (nick, password) values ('$postnick', '$postpass1')");
header("location: index.php;");
} else {
echo "Nick er optaget 8|<a href='index.php?page=new_user'>Tilbage</a>";
}
} else {
echo "De to passwords passer ikke sammen!<a href='index.php?page=new_user'>Tilbage</a>";
}
?>
[/pre]
Nå ok... det er mærkeligt...
I så fald kunne du prøve at lave lidt ombygning i koden...
ex:
<?
$postpass1 = $_POST['postpass1'];
$postpass2 = $_POST['postpass2'];
$postnick = $_POST['postnick'];
if($postpass1 != $postpass2) die("De to passwords passer ikke sammen!<a href='index.php?page=new_user'>Tilbage</a>");
/* Det fjerner dette stk. kode og den stopper koden fuldstændig hvis de to pass ikke er ens.
} else {
echo "De to passwords passer ikke sammen!<a href='index.php?page=new_user'>Tilbage</a>";
}*/
mysql_connect($hostname,$brugernavn,$password);
mysql_select_db($database);
$result = mysql_query("select * from members where nick = '$postnick' AND password = '$postpass1'");
$number = mysql_num_rows($result);
if($number == 0) {
mysql_query("insert into members (nick, password) values ('$postnick', '$postpass1')");
$redirect = TRUE;
} else {
$redirect = FALSE;
}
if($redirect == TRUE) header("location: index.php;");
elseif($redirect == FALSE) echo "Nick er optaget 8|<a href='index.php?page=new_user'>Tilbage</a>";
?>
se om det virker... det er utestet
//Krille