2 problemer med min kodning
Hej. Jeg ved ikke om jeg fik sat det rigtigt ind i kategorierne - men da jeg har 2 spørgsmål, der rækker både PHP samt MySql, så tager jeg bare den ene, nemlig MySql! Jeg har et "opret bruger"-script, som I kan se her:<html>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<head><title>hjemmeside</title></head>
<body>
<?php
include("mysql.php");
$submit = $_POST['submit'];
$id = mysql_real_escape_string(htmlspecialchars(addslashes($_POST['id'])));
$brugernavn = addslashes(htmlspecialchars(mysql_real_escape_string($_POST['brugernavn'])));
$kodeord = addslashes(htmlspecialchars(mysql_real_escape_string($_POST['kodeord'])));
$kodeordigen = addslashes(htmlspecialchars(mysql_real_escape_string($_POST['kodeordigen'])));
$navn = addslashes(htmlspecialchars(mysql_real_escape_string($_POST['navn'])));
$email = addslashes(htmlspecialchars(mysql_real_escape_string($_POST['email'])));
$alder = addslashes(htmlspecialchars(mysql_real_escape_string($_POST['alder'])));
$habbonavn = addslashes(htmlspecialchars(mysql_real_escape_string($_POST['habbonavn'])));
$ip = $_SERVER["REMOTE_ADDR"];
if ($submit)
{
if ($brugernavn&&$kodeord&&$kodeordigen&&$navn&&$alder&&$email)
{
if ($kodeord==$kodeordigen)
{
if (strlen($brugernavn)>25||strlen($navn)>25)
{
exit ("<fieldset>
<legend>Der skete en fejl!</legend>
<span style='color:red'>Dit brugernavn eller dit fulde navn er for langt!<br><a href='register.php?=tilbage'>Tilbage</a></span>
</fieldset>");
}
if(filter_var($email, FILTER_VALIDATE_EMAIL)!=true)
{
echo "<fieldset>
<legend>Der skete en fejl!</legend>
<span style='color:red'>Den indtastede email-adresse er ikke gyldig!<br><a href='register.php?=tilbage'>Tilbage</a></span>
</fieldset>";
die();
}
if (!is_numeric($alder))
{
echo "<fieldset>
<legend>Der skete en fejl!</legend>
<span style='color:red'>Dette er ikke et tal!<br><a href='register.php?=tilbage'>Tilbage</a></span>
</fieldset>";
}
if (strlen($alder)>2)
{
echo "<fieldset>
<legend>Der skete en fejl!</legend>
<span style='color:red'>Din alder er for lang!<br><a href='register.php?=tilbage'>Tilbage</a></span>
</fieldset>";
}
$query = mysql_query("SELECT * FROM `brugere` WHERE `brugernavn` = '".$brugernavn."' LIMIT 1");
$antal = mysql_num_rows($query);
if($antal > 0) {
echo "<fieldset>
<legend>Der skete en fejl!</legend>
<span style='color:red'>Brugernavnet, <b>".$brugernavn."</b>, er allerede i brug! Prøv igen<br><a href='register.php?=tilbage'>Tilbage</a></span>
</fieldset>";
}
else
{
mysql_query("INSERT INTO brugere (`brugernavn`, `admin`, `kodeord`, `navn`, `email`, `alder`, `ip`, `online`, `habbonavn`) VALUES ('".$brugernavn."', 'nej' ,'".$kodeord."','".$navn."','".$email."','".$alder."', '".$ip."', 'nej', `$_POST['habbonavn']`)") or die(mysql_error());
die ("<fieldset> $
<legend>Tilykke!</legend><p>
<span style='color:green'><b>Tillykke</b>! Du er nu blevet registeret i vores system! Vi håber du kommer til at nyde opholdet her på sitet!</span>
<p>
<i>Din ip ($ip) er lagret - vi kan se, hvis du misbruger opret-systemet!</i>
</fieldset>");
}
}
else
echo "<fieldset>
<legend>Der skete en fejl!</legend>
<span style='color:red'>Dine kodeord matcher ikke hinanden!<br><a href='register.php?=tilbage'>Tilbage</a></span>
</fieldset>";
}
else
echo "<fieldset>
<legend>Der skete en fejl!</legend>
<span style='color:red'>Du skal udfylde alle felterne!<br><a href='register.php?=tilbage'>Tilbage</a></span>
</fieldset>";
}
?>
Okay. Når jeg så opretter mig, siger den følgende:
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/a8699776/public_html/opret_tjek.php on line 74
Og linje 74 er:
mysql_query("INSERT INTO brugere (`brugernavn`, `admin`, `kodeord`, `navn`, `email`, `alder`, `ip`, `online`, `habbonavn`) VALUES ('".$brugernavn."', 'nej' ,'".$kodeord."','".$navn."','".$email."','".$alder."', '".$ip."', 'nej', `$_POST['habbonavn']`)") or die(mysql_error());
Nogle der kan forklare mig fejlen? :s
Mit andet problem:
Den sætter ikke alle tingene rigtigt ind i min db? Gør jeg noget galt?
<?php
session_start();
include("mysql.php");
include("top.php");
$af = $_SESSION[brugernavn];
$tid = date('H:i');
$overskrift = htmlspecialchars(mysql_real_escape_string($_POST['overskrift']));
$billede = htmlspecialchars(mysql_real_escape_string($_POST['billede']));
$kategori = htmlspecialchars(mysql_real_escape_string($_POST['kategori']));
$indhold = mysql_real_escape_string($_POST['indhold']);
if($overskrift = "" OR $billede = "" OR $indhold = ""):
echo "Dine felter er tomme.";
endif;
if(!isset($_SESSION["brugernavn"])){
header("location: /index.php");
}
else
{
mysql_query("INSERT INTO `artikler` (forfatter, indhold, tid, kategori, billede, tjekket, overskrift) VALUES('".$af."', '".$indhold."', '".$tid."', '".$kategori."', '".$billede."', 'nej', '".$overskrift."')") or die(mysql_error());
echo "Din artikel er netop blevet indsendt, og den bliver tjekket inden snart af en administrator.<br><br><a href='artikel.php' class='c_link'>Tilbage til artiklerne, <b>her</b>.</a>";
}
include("bund.php");
?> .. der var kdoen. ;)