Hmm,
koden ser nå slik ut:
Kode
<?php //error_reporting(0);
include ("./##/##.php");
$date = date("Y-m-d");
if(isset($_POST['submit'])){
$error = array();
//username
if(empty($_POST['username'])){
$error[] = 'Velg et brukernavn. ';
}else if(ctype_alnum($_POST['username']) ){
$username = $_POST['username'];
}else{
$error[] = 'Brukernavn kan kun inneholde tall og bokstaver.';
}
//password
if(empty($_POST['password'])) {
$error[] = 'Skriv inn et passord. ';
}else{
//repeatpassword
if (empty($_POST['repeatpassword'])) {
$error[] = 'Fyll inn begge passord feltene. ';
}else{
if ($password == $repeatpassword) {
$password = mysql_real_escape_string($_POST['password']);
}else{
$error[] = 'Passordene stemmer ikke. ';
}
}
}
//email
if(empty($_POST['email'])){
$error[] = 'Skriv inn emailen din. ';
}else if (filter_var($email, FILTER_VALIDATE_EMAIL) === false){
$email = mysql_real_escape_string($_POST['email']);
}else{
$error[] = 'Ugyldig email. ';
}
if(empty($error)) {
$result = mysql_query("SELECT * FROM ### WHERE email='$email' OR username='$username'") or die(mysql_error());
if (mysql_num_rows($result) == 0) {
$activation = md5(uniqid(rand(), true));
$password = md5($password);
$result2 = mysql_query("INSERT INTO ###VALUES ('','$username','$password','$email','$date','$activation','0','0')") or die(mysql_error());
if (!$result2) {//'','$username','$password','$email','$date','$activation','0','0'
die ('Kunne ikke sette inn i database: ' .mysql_error());
}else{
//send aktiverings email
$to = $email;
$subject = "Aktiver brukeren din!"; //subject
$headers = "From: ###.no"; //hvem det er fra
$server = "###"; //nettstedets mail server
ini_set("SMTP", $server);
$body = ("Hei $username,\n\n
Du kan aktivere brukeren din ved å trykke linken nedenfor:
http://###.com".'/aktiver.php?email='.urlencode($email)."&key=$activation \n\n
Takk for at du registrerte deg på ###.no!
Vennlig hilsen ###.no
");
//funksjon til å sende mail
mail($to, $subject, $body, $headers);
header('Location: prompt.php?x=1');
}
}else{
header('Location: prompt.php?x=2');
}
}else{
$error_message = '<span class="error">';
foreach($error as $key => $values) {
$error_message.= "$values";
}
$error_message.="</span><br /><br />";
}
}
HTML-kode
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link rel="stylesheet" href="css/register.css">
</head>
<body>
<form action="index.php?p=registrer" method="POST">
<h3>Registrer!</h3>
<?php echo $error_message; ?>
<div class="field">
<label for="username">Brukernavn:</label>
<input type="text" class="input" id="username" name="username" maxlength="20" placeholder="Brukernavn"/>
<p class="hint">Minimum 6 tegn og maks 20 tegn (kun bokstaver og tall).</p>
</div>
<div class="field">
<label for="password">Passord:</label>
<input type="password" class="input" id="password" name="password" maxlength="20" placeholder="Passord"/>
<p class="hint">Minimum 6 tegn og maks 20 tegn.</p>
</div>
<div class="field">
<label for="repeatpassword">Gjenta passord:</label>
<input type="password" class="input" id="repeatpassword" name="repeatpassword" maxlength="20" placeholder="Gjenta passord"/>
<p class="hint">Gjenta samme passord som ovenfor. Dette er kun en sjekk, for å se om du har skrevet rett.</p>
</div>
<div class="field">
<label for="email">Email:</label>
<input type="text" class="input" id="email" name="email" maxlength="80" placeholder="Email"/>
<p class="hint">Skriv inn din egen mail. Dette må være en ekte mailadresse, fordi du skal aktivere brukeren via den.</p>
</div>
<input type='submit' name='submit' value='Registrer'>
</form>
</body>
<img src="grafikk/registrer.png">
</html>
Dette er
EN fil, men deler det opp her, for å skille mellom php og html.
Problemet er at jeg forsatt får samme feil:
Warning: Cannot modify header information - headers already sent by (output started at /###/###/###/###/###.php:6) in /###/###/###/###/###/###.php on line 75
Hva er feilen? Burde vel gå nå? Tatt bort whitespaces + flytta doctypen..
-saus
Sist endret av TristSaus; 15. september 2012 kl. 09:20.