Gå til innhold

Få ip på registrerte


Anbefalte innlegg

now() er ingen php funksjon, legg den inn i sql'en, det samme kan man gjøre med standard verdier. Hvis user_level er integer så endre '0' til 0

Litt modifisert

$query = sprintf("INSERT INTO `users` (`user_name`, `user_Pass`, `user_email`, `user_date`, `user_level`, `user_ip`) VALUES ('%s', '%s', '%s', NOW(), '0', '%s')",
mysql_real_escape_string($_POST['user_name']),
sha1($_POST['user_pass']),
mysql_real_escape_string($_POST['user_email']),
$_SERVER['REMOTE_ADDR']);

//debug
echo $query."<br />"; // sjekk at sql'en ser riktig ut

mysql_query($query);

 

Nå kan jeg ikke registrere:

 

Dette er PHPen:

<?php

//signup.php
include 'connect.php';

echo '<h3>Registrer deg</h3><br />';

if($_SERVER['REQUEST_METHOD'] != 'POST')
{
   /*the form hasn't been posted yet, display it
  note that the action="" will cause the form to post to the same page it is on */
   echo '<form method="post" action="">
	 	Brukernavn: <input type="text" name="user_name" /><br />
		Passord: <input type="password" name="user_pass"><br />
	Bekreft Passord: <input type="password" name="user_pass_check"><br />
	Email: <input type="email" name="user_email"><br />
		<input type="submit" value="Registrer deg" />
	 </form>';
}
else
{
   /* so, the form has been posted, we'll process the data in three steps:
	1.	Check the data
	2.	Let the user refill the wrong fields (if necessary)
	3.	Save the data 
*/
$errors = array(); /* declare the array for later use */

if(isset($_POST['user_name']))
{
	//the user name exists
                                  $userName = $_POST['user_name'];
	if(strlen($_POST['user_name']) > 30)
	{
		$errors[] = 'Viss du har symboler og tegn i navnet ditt som "_" eller "/", osv. Send en mail til meg: 

[email protected], da legger jeg inn allt manuelt i systemet til vi fikser denne feilen.  :-D';
	}
	if(strlen($_POST['user_name']) > 30)
	{
		$errors[] = 'Brukernavnet kan ikke inneholde mer enn 30 bokstaver og tall.';
	}
}
else
{
	$errors[] = 'Brukernavn feltet er tomt, DUH!.';
}


if(isset($_POST['user_pass']))
{
	if($_POST['user_pass'] != $_POST['user_pass_check'])
	{
		$errors[] = 'Passordene matcher ikke, fiks det!';
	}
}
else
{
	$errors[] = 'Passord feltet kan jo ikke være tomt, er du helt tett i pappen eller?';
}

if(!empty($errors)) /*check for an empty array, if there are errors, they're in this array (note the ! operator)*/
{
	echo 'Uh-oh.. a couple of fields are not filled in correctly..<br /><br />';
	echo '<ul>';
	foreach($errors as $key => $value) /* walk through the array so all the errors get displayed */
	{
		echo '<li>' . $value . '</li>'; /* this generates a nice error list */
	}
	echo '</ul>';
}
else
{
	//the form has been posted without, so save it
	//notice the use of mysql_real_escape_string, keep everything safe!
	//also notice the sha1 function which hashes the password
	$query = sprintf("INSERT INTO `users` (`user_name`, `user_pass`, `user_email`, `user_date`, `last_online`, `user_level`, 		

	`user_ip`) VALUES 
	('%s', '%s', '%s', NOW(), NOW(), '%s', '%s')",
 		mysql_real_escape_string($_POST['user_name']),
 		sha1($_POST['user_pass']),
  		mysql_real_escape_string($_POST['user_email']),
   		$_SERVER['REMOTE_ADDR']);

	//debug
	echo $query."<br />"; // sjekk at sql'en ser riktig ut

	$result = mysql_query($sql);
	if(!$result)
	{
		//something went wrong, display the error
		echo 'Something went wrong while registering. Please try again later.';
		//echo mysql_error(); //debugging purposes, uncomment when needed
	}
	else
	{
		echo 'Din registrering er nå fullført,  <a href="signin.php">logg inn</a> og start postinga :-)';
	}
}
}
?>

 

Erroren er: Warning: sprintf() [function.sprintf]: Too few arguments

 

Altså med insert into...

Lenke til kommentar
Videoannonse
Annonse

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...