jwradheMedlem sedan juni 2002711 inlägg 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
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!
PeddaMedlem sedan juni 20006 032 inlägg mysql_num_rows returnerar false, inte 0, om inget hittas.
fiddlerMedlem sedan juli 20023 617 inlägg Prova om trim() på username gör någon skillnad.
RED/ Pedda is the king.
jwradheMedlem sedan juni 2002711 inlägg så det bör vara?:
if (mysql_num_rows($query) == false)
TulorkMedlem sedan aug. 2004903 inlägg 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.
jwradheMedlem sedan juni 2002711 inlägg använder jag false istället för 0, så blir samma resultat.
Edit:
Testade denna oxå:
<?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..
colioneMedlem sedan juni 20014 421 inlägg 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:
$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.
jwradheMedlem sedan juni 2002711 inlägg 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å! :)