Avatar billede raan Nybegynder
10. april 2007 - 20:26 Der er 15 kommentarer og
1 løsning

opret bruger

jeg skal lave en opret bruger funktion, men den skal indeholde nogle ting, som fx. hvis brugernavnet findes skal den sige det, også skal den sige hvis man ikke udfylder det felt, og det felt eller et helt 3. felt?

en der vil hjælpe?
Avatar billede dkfire Nybegynder
10. april 2007 - 20:31 #1
Hvis du starter selv med noget kode, så er jeg sikker på der er flere som vil hjælpe dig videre.
Start med at lave din form til indtastning af bruger info.
Avatar billede raan Nybegynder
10. april 2007 - 21:17 #2
havde prøvet og lavet lidt, men ja kunne ikke få det til at virke :-)
- får denne fejl i acton_op.php/fil2:
Invalid query: Column count doesn't match value count at row 1


fil 1..
<form action="action_op.php" method="post">
<table border="0">
<tr><td><p align="left"><font color="#FF0000">*</font>Brugernavn:</td><td><input type="text" name="username" size="29"></td></tr>

<tr><td><font color="#FF0000"></font>Fornavn:</td><td><input type="text" name="Fornavn" size="29"></td></tr>

<tr><td><font color="#FF0000"></font>Efternavn:</td><td><input type="text" name="Efternavn" size="29"></td></tr>

<tr><td><font color="#FF0000">*</font>Mail:</td><td><input type="text" name="email" size="29"></td></tr>

<tr><td><font color="#FF0000">*</font>Pasword:</td><td><input type="password" name="password" size="29"></td></tr>

<tr><td colspan="2">
                <p align="center"><input type="submit" value="Opret bruger"></td></tr>
           
        </table>
</form>
Alt med * skal udfyldes !
        </center>           
    </body>
</html>


fil 2..

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

$username = mysql_escape_string($_POST["username"]);
$fornavn = mysql_escape_string($_POST["fornavn"]);
$efternavn = mysql_escape_string($_POST["efternavn"]);
$password = mysql_escape_string($_POST["password"]);
$email = mysql_escape_string($_POST["email"]);
$oprettid = date("j. M. Y - H:i:s");

$errorMsg = "";
if ($username == "") $errorMsg .= "Feltet username er ikke udfyldt. </br>";
if ($email == "") $errorMsg .= "Feltet email er ikke udfyldt. </br>";
if ($password == "") $errorMsg .= "Feltet password er ikke udfyldt. </br>";

if ($errorMsg == "")
{
$sql = "SELECT count(*) AS antal FROM bbn_profil WHERE LOWER(username)='" . strtolower($username) . "'";
$result = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_assoc($result);

if ($row["antal"] > 0)
{
$errorMsg = "Brugernavnet er allerede valgt. Du må vælge et andet. ";
}
else
{
mysql_query("INSERT INTO bbn_profil (username, fornavn, efternavn, password, email, oprettid) VALUES ('" . $username . "', '". $fornavn . "', '". $efternavn . "', '" . $password . "', '". $email . "' '". $oprettid . "')") or die("Invalid query: " . mysql_error());
echo "Din bruger er nu oprettet, og du kan logge ind.";
}
}
else
echo "<b>Der var desværre fejl i det indtastede: </br></b>" . $errorMsg;
?>
Avatar billede dkfire Nybegynder
10. april 2007 - 21:20 #3
Du kan ikke skrive count(*), du skal angive et felt i count, count(id) f.eks.
Avatar billede dkfire Nybegynder
10. april 2007 - 21:23 #4
og så mangler du lige et , i din insert query:
INSERT INTO bbn_profil (username, fornavn, efternavn, password, email, oprettid) VALUES ('$username', '$fornavn', '$efternavn', '$password', '$email', '$oprettid')"
Avatar billede raan Nybegynder
10. april 2007 - 21:36 #5
Så har jeg rettet den ene fil, vist hernede..
men hvordan kan jeg så lave den med brugetnavnet?
<?php
include("sql.php");

$username = mysql_escape_string($_POST["username"]);
$fornavn = mysql_escape_string($_POST["fornavn"]);
$efternavn = mysql_escape_string($_POST["efternavn"]);
$password = mysql_escape_string($_POST["password"]);
$email = mysql_escape_string($_POST["email"]);
$oprettid = date("j. M. Y - H:i:s");

$errorMsg = "";
if ($username == "") $errorMsg .= "Feltet username er ikke udfyldt. </br>";
if ($email == "") $errorMsg .= "Feltet email er ikke udfyldt. </br>";
if ($password == "") $errorMsg .= "Feltet password er ikke udfyldt. </br>";

if ($errorMsg == "")
{
$sql = "SELECT count(*) AS antal FROM bbn_profil WHERE LOWER(username)='" . strtolower($username) . "'";
$result = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_assoc($result);

if ($row["antal"] > 0)
{
$errorMsg = "Brugernavnet er allerede valgt. Du må vælge et andet. ";
}
else
{
mysql_query("INSERT INTO bbn_profil (username, fornavn, efternavn, password, email, oprettid) VALUES ('$username', '$fornavn', '$efternavn', '$password', '$email', '$oprettid')") or die("Invalid query: " . mysql_error());
echo "Din bruger er nu oprettet, og du kan logge ind.";
}
}
else
echo "<b>Der var desværre fejl i det indtastede: </br></b>" . $errorMsg;
?>
Avatar billede dkfire Nybegynder
10. april 2007 - 22:55 #6
'men hvordan kan jeg så lave den med brugetnavnet?'
Jeg er ikke lige med hvad du mener ?
Avatar billede dkfire Nybegynder
10. april 2007 - 22:58 #7
du kan ændre lidt:
$sql = "SELECT * FROM bbn_profil WHERE LOWER(username)='".strtolower($username)."'";
$result = mysql_query($sql) or die(mysql_error());

if (mysql_num_rows($result) > 0)
{
Avatar billede raan Nybegynder
10. april 2007 - 23:04 #8
nu kan jeg godt oprette.

men hvis jeg så prøver at oprette en bruger med et brugernavn som er der i forvejen viser den bare en blank side?
Avatar billede dkfire Nybegynder
10. april 2007 - 23:27 #9
Det er klart, da du ikke udskriver $errorMsg = "Brugernavnet er allerede valgt. Du må vælge et andet. ";
Avatar billede dkfire Nybegynder
10. april 2007 - 23:28 #10
echo "<b>Der var desværre fejl i det indtastede: </br></b>" . $errorMsg; bliver kun kørt hvis ikke alle felter er udfyldt.
Avatar billede raan Nybegynder
10. april 2007 - 23:32 #11
hvad skal jeg så gøre, for at få den til at udskrive den?
Avatar billede dkfire Nybegynder
10. april 2007 - 23:48 #12
du kan slette den sidste else og så istedetv skrive noget ala:

if( strlen($errorMsg) > 0)
echo "<b>Der var desværre fejl i det indtastede: </br></b>" . $errorMsg;
Avatar billede raan Nybegynder
10. april 2007 - 23:54 #13
se nu skete der noget :-)

tak for hjælpen, giver du et svar?
Avatar billede dkfire Nybegynder
10. april 2007 - 23:58 #14
selvfølgelig :-)
Avatar billede dkfire Nybegynder
10. april 2007 - 23:58 #15
Nu blev klokken vist også mange :-)
Avatar billede raan Nybegynder
11. april 2007 - 13:34 #16
Ja, den blev så :-)
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