---
title: "Vad e det för fel? får error meddelande fast allt ser rätt ut :/"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/185903-vad-e-det-för-fel-får-error-meddelande-fast-allt-ser-rätt-ut"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Mycodez"
published: "2011-01-25T11:10:39.000Z"
updated: "2011-01-25T12:46:07.000Z"
replies: 5
views: 1269
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/185903-vad-e-det-för-fel-får-error-meddelande-fast-allt-ser-rätt-ut"
---

# Vad e det för fel? får error meddelande fast allt ser rätt ut :/

## #1 — Mycodez, 2011-01-25T11:10Z

Tjena igen jag har gjort ett litet registreringsformulär men när jag ska testa det får får jag ett felmeddelande som lyder

Column count doesn't match value count at row 1

Men när jag jag går in i koden och felsöker så hittar jag inte något fel, eller är det bara min nybörjar ögon som inte ser felet??

min php kod ser ut såhär

```php
<?php
//REGISTRERA//
if($_POST['submit1'])
{
	$emailr 			= strip_tags($_POST['emailr']);
	$passwordr 			= strip_tags($_POST['passwordr']);
	$repeat_passwordr 	= strip_tags($_POST['repeat_passwordr']);
	$firstnamer 		= strip_tags($_POST['firstnamer']);
	$lastnamer 			= strip_tags($_POST['lastnamer']);
	$genderr 			= $_POST['genderr'];	
	
	if($emailr&&$passwordr&&$repeat_passwordr&&$firstnamer&&$lastnamer&&$genderr)
	{
		//check for existing email
		$query = mysql_query("SELECT * FROM user WHERE email='$emailr'");
		if(mysql_num_rows($query)>=1)
			echo "Din email du angav finns redna registrerad hos oss.";
			{
				if(strlen($passwordr)<6)
					echo "Lösenordet måste vara minst 6tecken långt!";
				else 
				{
					if($passwordr==$repeat_passwordr)
					{
						//Haschar lösenordet//
						$password_db = md5($passwordr);
						//Kollar längden på förnamn och efternamnet
						if(strlen($firstnamer)<3||strlen($lastnamer)<3)
							echo "ditt förnamn måste ha minst 3tecken och ditt efternamn måste minst ha 3tecken";
						else
						{
							//Anger tecken för könet//
							switch ($gender)
							{
								case "Man":
									$gender_db = "M";
								break;
								case "Kvinna":
									$gender_db = "F";
								break;		
							}
							// Add user info into the database table, claim your fields then values 
							$sql = mysql_query("INSERT INTO user  (email, password, firstname, lastname, gender, signupdate) VALUES('','$emailr','$password_db','$firstnamer','$lastnamer','$gender_db','$email', now())") or die (mysql_error());
							// Get the inserted ID here to use in the activation email
							$id = mysql_insert_id();
							// Create directory(folder) to hold each user files(pics, MP3s, etc.) 
							mkdir("memberFiles/$id", 0755); 
							//ge medlemen en success meddelande//
							echo "Din registrering lyckades felfritt. <br> Tack för din registrering. ";
						}
					}
					else
						echo "Din lösenord du angav matchar inte varandra!";
				}
			}	
	}
	else
		echo "Snälla fyll i allt tack!";
}
?>
```

och min form som jag gjorde för att skicka datan till som är samma sida. 
som sagt min form ser ut följande

```
 <fieldset style="width: 650px;">
				<legend>Bli Medlem</legend>
                <form action='login.php' method='post'>
                	<table width="640">
  						<tr>
    						<td align="right">Din Email:</td>
    						<td><input type='text' name='emailr' /></td>
  						</tr>
                        <tr>
    						<td align="right">Lösenord:</td>
    						<td><input type='password' name='passwordr' /></td>
  						</tr>
                        <tr>
    						<td align="right">Repetera lösenordet</td>
    						<td><input type='password' name='repeat_passwordr' /></td>
  						</tr>	
                        <tr>
    						<td align="right">Förnamen</td>
    						<td><input type='text' name='firstnamer' /></td>
  						</tr>
                        <tr>
    						<td align="right">Efternamn:</td>
    						<td><input type='text' name='lastnamer' /></td>
  						</tr>
                        <tr>
    						<td align="right">Kön:</td>
    						<td>
                            	<select name='genderr'>
    								<option>Kvinna</option>
        							<option>Man</option>
    							</select>
            				</td>
  						</tr>
                        <tr>
    						<td colspan="2" align="right"><input type='submit' name='submit1' value='Registrera' /></td>
   						</tr>
					</table>
                </form>
			</fieldset>
```

 

Förklara lite enkelt vad felet kan vara. Jag är lite ny fortfarande jag försöker lära mig själv men nu hittar jag inte felet så jag vänder mig hit :) 

// Robin K
<http://www.mycodez.se> \--- Min blogg  :)

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

## #2 — @nders, 2011-01-25T11:14Z

Felmeddelandet säger vad som är fel - Du har angett fler värden än kolumner i din INSERT.

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

## #3 — fiddler, 2011-01-25T11:32Z

Som @nders säger: Du försöker fördela åtta värden på sex kolumner...

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

## #4 — nitro2k01, 2011-01-25T12:32Z

Som två personer har sagt tidigare...

```php
$sql = mysql_query("INSERT INTO user  (email, password, firstname, lastname, gender, signupdate) VALUES('','$emailr','$password_db','$firstnamer','$lastnamer','$gender_db','$email', now())")
```

I VALUES så är '' (först) och $email (näst sist) överflödiga. 
För öfvrigt, ta och escapea det du petar ni i databasen, annars kan folk göra osnälla saker genom att avsluta strängen genom att stoppa in en extra enkelfnutt. Jag låter följande stripp förklara konceptet:
![](http://imgs.xkcd.com/comics/exploits_of_a_mom.png)

```php
    $emailr             = mysql_real_escape_string(strip_tags($_POST['emailr']));
    $passwordr             = mysql_real_escape_string(strip_tags($_POST['passwordr']));
    $repeat_passwordr     = mysql_real_escape_string(strip_tags($_POST['repeat_passwordr']));
    $firstnamer         = mysql_real_escape_string(strip_tags($_POST['firstnamer']));
    $lastnamer             = mysql_real_escape_string(strip_tags($_POST['lastnamer']));
    $genderr             = mysql_real_escape_string($_POST['genderr']);
```

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

## #5 — Mycodez, 2011-01-25T12:42Z

tack jag såg det lite  tack alla(A)

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

## #6 — Mycodez, 2011-01-25T12:46Z

> **[nitro2k01 skrev:](https://www.webforum.nu/p/1527955)**
>
> Som två personer har sagt tidigare...
>
> ```php
> $sql = mysql_query("INSERT INTO user  (email, password, firstname, lastname, gender, signupdate) VALUES('','$emailr','$password_db','$firstnamer','$lastnamer','$gender_db','$email', now())")
> ```
>
> I VALUES så är '' (först) och $email (näst sist) överflödiga. 
> För öfvrigt, ta och escapea det du petar ni i databasen, annars kan folk göra osnälla saker genom att avsluta strängen genom att stoppa in en extra enkelfnutt. Jag låter följande stripp förklara konceptet:
> ![](http://imgs.xkcd.com/comics/exploits_of_a_mom.png)
> 
>
>
> ```php
>     $emailr             = mysql_real_escape_string(strip_tags($_POST['emailr']));
>     $passwordr             = mysql_real_escape_string(strip_tags($_POST['passwordr']));
>     $repeat_passwordr     = mysql_real_escape_string(strip_tags($_POST['repeat_passwordr']));
>     $firstnamer         = mysql_real_escape_string(strip_tags($_POST['firstnamer']));
>     $lastnamer             = mysql_real_escape_string(strip_tags($_POST['lastnamer']));
>     $genderr             = mysql_real_escape_string($_POST['genderr']);
> ```

Tack får fixa det man vill ju inte att någon gör något dumt:)

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

---

Tråden på webben: https://www.webforum.nu/amne/php/185903-vad-e-det-för-fel-får-error-meddelande-fast-allt-ser-rätt-ut
