Avatar billede superdreng Nybegynder
29. december 2007 - 16:41 Der er 9 kommentarer og
1 løsning

Brugeroprettelse - fejl i script

Hej alle sammen på experten

Jeg har prøvet at bikse en side op hvor brugerne kan oprette sig på min side. Jeg tjekker på brugerens indput for at være sikker på at de ikke laver noget som kan ødelægge min side.

Men desværre kommer der en fejl når brugernavnet skal tjekkes om det indeholder ulovlige tegn, men kan simpelt hen ikke finde fejlen.

Hvad er det der er galt?

<?php
ob_start();
session_start();
include('connect.php');
$query = mysql_query("SELECT bruger FROM user WHERE bruger = '$_POST[navn]'");
$antal = mysql_num_rows($query);
$querye = mysql_query("SELECT email FROM user WHERE bruger = '$_POST[email]'");
$antale = mysql_num_rows($querye);
$email = $_POST['email'];
$navn = $_POST['navn'];
if(($antal == 1)) {
header('location: opret.php?fejl=optaget&email=$email');
exit;
}
if(($antale == 1)) {
header('location: opret.php?fejl=emailbrugt&navn=$navn');
exit;
}
if (eregi('^([_a-z0-9-]){1,25}$',$_POST['navn']))
{
header('Location: opret.php?fejl=navn&email=.$email.');
exit;
}
$eMail = $_POST['email'];
$eMailPattern = "^[^@]+@(?:[\w-]+\.)+[a-z]{2,}$";
if (!preg_match("/$eMailPattern/i", $eMail)) {

} else {
header('location: opret.php?fejl=email&navn=$navn');
exit;
}

$opretquery = mysql_query("INSERT INTO user (bruger, password, email, create, ip)" . "VALUES ('$_POST[navn]','$_POST[pass]','$_POST[email]', NOW(), '$_SERVER[REMOTE_ADDR]')") OR DIE(mysql_error());

mail("$_POST[email]", "Ny bruger på www.*********.dk", "Hej og velkommen! \n\n  Her er dine login oplysninger til www.*******.dk :\n\n Brugernavn: $_POST[navn]\n Adgangskode: $_POST[pass]\n\n Vi ses!", "From:support@******.dk");

header("location: tak.php");
ob_end_flush();
?>
Avatar billede w13 Novice
29. december 2007 - 17:04 #1
Fejlmeddelelser er din ven! :) Skriv den her.
Avatar billede erikjacobsen Ekspert
29. december 2007 - 17:27 #2
Sku'
  if (eregi('^([_a-z0-9-]){1,25}$',$_POST['navn']))
ikke være
  if (!eregi('^([_a-z0-9-]){1,25}$',$_POST['navn']))

(iøvrigt bør man bruge preg-gerne i stedet for ereg-gerne)
Avatar billede superdreng Nybegynder
29. december 2007 - 18:45 #3
w13:
Desværre kommer der ingen fejl meddelse. Jeg bliver bare videresent der ved $_POST['navn'];

Erikjacobsen:
Det vil jeg lige prøve!
Avatar billede superdreng Nybegynder
29. december 2007 - 19:01 #4
erikjacobsen:
Hvad er forskellen? Noget der har nogen betydning?

$navn = $_POST['navn'];
header('location: opret.php?fejl=email&navn=$navn');  <-- Hvorfor får jeg ikke variablen når jeg skriver sådan? Den udskriver kun '$navn'.

Nu har jeg fået denne fejl meddelse:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'create, ip)VALUES ('hejsa1','hej','hejsadulugter@lortemail.dk', NOW(), '83.95.10' at line 1

Jeg tror det er fordi jeg bruger NOW(), men det burde da virke.
Avatar billede erikjacobsen Ekspert
29. december 2007 - 19:11 #5
create er et reserveret ord. Du kan skrive:  `create`  - eller finde på et andet navn
Avatar billede erikjacobsen Ekspert
29. december 2007 - 19:18 #6
I stedet for
  header('location: opret.php?fejl=email&navn=$navn');
kan du skrive
  header("location: opret.php?fejl=email&navn=$navn");
Avatar billede superdreng Nybegynder
30. december 2007 - 00:07 #7
Det virker bare nu, tak! Tak for hjælpen!

Smid et svar erikjacobsen!
Avatar billede erikjacobsen Ekspert
30. december 2007 - 00:27 #8
Jeg samler slet ikke på point, tak.
Avatar billede superdreng Nybegynder
30. december 2007 - 16:12 #9
Okay, men jeg synes alligevel, at du skal have dine point! Du har været en stor hjælp!
Avatar billede superdreng Nybegynder
01. januar 2008 - 21:55 #10
Lukker, tak for hjælpen erikjacobsen!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester