---
title: "Vart ligger felet?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/163730-vart-ligger-felet"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "jwradhe"
published: "2007-08-22T10:18:38.000Z"
updated: "2007-08-22T11:34:53.000Z"
replies: 8
views: 490
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/163730-vart-ligger-felet"
---

# Vart ligger felet?

## #1 — jwradhe, 2007-08-22T10:18Z

Halloj!
Har suttit och försökt få detta att fungera nu men inge vidare resultat.
När man registrerar sig så kan man regga sig som user test om den redan finns, vilket är min tanke att scriptet ska se till att detinte går. Men fungerar inte riktigt. Tror fan jag är blind, för kan inte se va ja slarvat med i koden..

```php
<?php
include("data.php");

$db = mysql_connect($server, $user, $pwd); 
mysql_select_db($dbname, $db); 

$username = $_POST["user"];
$pass = $_POST["pass"];
$kon = $_POST["kon"];
$fornamn = $_POST["fornamn"];
$efternamn = $_POST["efternamn"];
$personnr = $_POST["personnr"];
$postort = $_POST["postort"];
$mail = $_POST["mail"];
$datum = date("Y-m-d H:i:s");

$query = mysql_query("SELECT user FROM users WHERE user = '".$username."'") or die(mysql_error());
if (mysql_num_rows($query) == false)  
{

	mysql_query("INSERT INTO users (user,pass,kon,fornamn,efternamn,personnr,postort,email,datum) VALUES ('$username','$pass','$kon','$fornamn','$efternamn','$personnr','$postort','$mail','$datum')"); 
	
	$mess = "Hej $fornamn! ";
	$mess .= "Du är nu registerad som medlem på RockBridge.se!";
	$mess .= "<br><br>Dina inloggningsuppgifter:";
	$mess .= "<br><br>Användare: $user";
	$mess .= "<br>Lösenord: $pass";
	$mess .= "<br><br>Du kan när som helst avsluta ditt medlemskap genom att logga in på hemsidan och avregisrera dig.";
	$mess .= "<br><br>MVH RockBridge Crew!";
	
	mail ("$mail", "Medlem i RockBridge", "$mess", "Content-Type: text/html\nFrom: RockBridge <Info@RockBridge.se>");

	echo "<script Language='JavaScript'>location.href=('?p=regga_klart');</script>";
	
} else {

	$errormsg = "Användarnamnet är upptaget.";
	echo "<script Language='JavaScript'>location.href=('?p=regga_ny&errormsg=$errormsg');</script>"; 

}

mysql_close($db);
?>
```

 

Uppskattar hjälp snarast :) TC!

Permalänk: https://www.webforum.nu/p/163730

## #2 — Pedda, 2007-08-22T10:31Z

mysql_num_rows returnerar false, inte 0, om inget hittas.

Permalänk: https://www.webforum.nu/p/2018901

## #3 — fiddler, 2007-08-22T10:34Z

Prova om trim() på username gör någon skillnad.

RED/ Pedda is the king.

Permalänk: https://www.webforum.nu/p/2018902

## #4 — jwradhe, 2007-08-22T11:06Z

så det bör vara?:

```php

if (mysql_num_rows($query) == false)
```

Permalänk: https://www.webforum.nu/p/2018909

## #5 — Pedda, 2007-08-22T11:09Z

ja, det borde funka

Permalänk: https://www.webforum.nu/p/2018911

## #6 — Tulork, 2007-08-22T11:11Z

Annars gör du en SELECT COUNT (id) WHERE username='$username'

Om det blir 1 så finns det användarnamnet redan.. Nu har jag antagit att du har id i din tabell.

Permalänk: https://www.webforum.nu/p/2018912

## #7 — jwradhe, 2007-08-22T11:14Z

använder jag false istället för 0, så blir samma resultat.

Edit:

Testade denna oxå:

```php

<?php
include("data.php");

$db = mysql_connect($server, $user, $pwd); 
mysql_select_db($dbname, $db); 

$username = $_POST["user"];
$pass = $_POST["pass"];
$kon = $_POST["kon"];
$fornamn = $_POST["fornamn"];
$efternamn = $_POST["efternamn"];
$personnr = $_POST["personnr"];
$postort = $_POST["postort"];
$mail = $_POST["mail"];
$datum = date("Y-m-d H:i:s");

$sql = "select count(*) from users where user = '".$username."'";
$result = mysql_query($sql) or die(mysql_error());
if (mysql_result($result, 0) > 0) {

	$errormsg = "Användarnamnet är upptaget.";
	echo "<script Language='JavaScript'>location.href=('?p=regga_ny&errormsg=$errormsg');</script>"; 

 } else {

	mysql_query("INSERT INTO users (user,pass,kon,fornamn,efternamn,personnr,postort,email,datum) VALUES ('$username','$pass','$kon','$fornamn','$efternamn','$personnr','$postort','$mail','$datum')"); 
	
	$mess = "Hej $fornamn! ";
	$mess .= "Du är nu registerad som medlem på RockBridge.se!";
	$mess .= "<br><br>Dina inloggningsuppgifter:";
	$mess .= "<br><br>Användare: $user";
	$mess .= "<br>Lösenord: $pass";
	$mess .= "<br><br>Du kan när som helst avsluta ditt medlemskap genom att logga in på hemsidan och avregisrera dig.";
	$mess .= "<br><br>MVH RockBridge Crew!";
	
	mail ("$mail", "Medlem i RockBridge", "$mess", "Content-Type: text/html\nFrom: RockBridge <Info@RockBridge.se>");

	echo "<script Language='JavaScript'>location.href=('?p=regga_klart');</script>";
	
}

mysql_close($db);
?>
```

Även här samma resultat..

Permalänk: https://www.webforum.nu/p/2018913

## #8 — colione, 2007-08-22T11:31Z

Jag hade valt att sätta user till en unique key, låta mysql trigga ett fel på inserten istället och hantera det.

Exempelvis:

```php
	$sql="INSERT INTO brev (email) VALUES ('$email')";
	mysql_query($sql);
	if (mysql_errno()==1062) {....
```

Helst av allt ska du ju också byta grännsnitt att kommunicera med databasen med.

Permalänk: https://www.webforum.nu/p/2018918

## #9 — jwradhe, 2007-08-22T11:34Z

haha, dumfan som jag är funkade det nu, kanske även den från början. Fanns en user vid namn test2 kvar i DB som ja glömt ta bort... aja. :) Nån annan kanske har nytta av koden  iaf.... hmm Tack alla ändå! :)

Permalänk: https://www.webforum.nu/p/2018924

---

Tråden på webben: https://www.webforum.nu/amne/php/163730-vart-ligger-felet
