Godt igang med Bruger script mangler lige det sidste.
Jeg har været ved at lave et script, så bruger kan oprette sig til en side.Dette er mest for at lære PHP så derfor vil det være rart med beskrivelser af hvad koderne betyder og hvorfor de skal være der.
Jeg har lavet en standart form i en fil der hedder add_user:
[code]<form action="user_create.php" method="post">
Username: <input type="text" name="username" maxlength="100" value=""><br>
Email: <input type="text" name="email" maxlength="100" value""><br>
Password: <input type="password" name="password1" maxlength="100"><br>
Gentag Password: <input type="password" name="adgangskode2" maxlength="100"><br>
<input type="submit" value="Opret">
</form>[/code]
Den sender, som i nok kan se, data til user_create.php
[code]
<?php
require("db_connect.php");
$username = &$HTTP_POST_VARS['username'];
$email = &$HTTP_POST_VARS['email'];
$password1 = &$HTTP_POST_VARS['password1'];
$password2 = &$HTTP_POST_VARS['passwrod2'];
$adminlvl = '0';
if(empty($username)) {
echo 'Du skal skrive et brugernavn';}
if(empty($email)) {
echo 'Du skal skrive en email';}
mysql_connect($mysql_host, $mysql_user, $mysql_pw);
mysql_select_db($mysql_db);
$result = mysql_query("select username from DWO_Users where username = '$username'")
or die (mysql_error());
$number = mysql_num_rows($result);
if ($number > 0) {
print 'Desværre er Brugernavnet optaget';
} else {
mysql_query("insert into DWO_Users (username, email, adminlvl) values ('$username', '$email', '$adminlvl')")
or die(mysql_error());
print "Brugeren $brugernavn er nu oprettet. Afvent godkendelse af Adminstartor";
}
?>
[/code]
Som i kan se har jeg lavet user_creat.php fil:
[code]
<?php
require("db_connect.php");
$username = &$HTTP_POST_VARS['username'];
$email = &$HTTP_POST_VARS['email'];
$password1 = &$HTTP_POST_VARS['password1'];
$password2 = &$HTTP_POST_VARS['passwrod2'];
$adminlvl = '0';
if(empty($username)) {
echo '<font color="red">Du skal skrive et brugernavn</font>';}
if(empty($email)) {
echo '<font color="red">Du skal skrive en email</font>';}
mysql_connect($mysql_host, $mysql_user, $mysql_pw);
mysql_select_db($mysql_db);
$result = mysql_query("select username from DWO_Users where username = '$username'")
or die (mysql_error());
$number = mysql_num_rows($result);
if ($number > 0) {
print '<font color="red">Desværre er Brugernavnet optaget</font>';
} else {
mysql_query("insert into DWO_Users (username, email, adminlvl) values ('$username', '$email', '$adminlvl')")
or die(mysql_error());
print "Brugeren $brugernavn er nu oprettet. Afvent godkendelse af Adminstartor";
}
?>
[/code]
Mit problem er nu:
1. At selvom jeg har lavet funktionen med at Brugernavn ikke må være på 0 tegn. Så oprettede den allgevel en bruger (uden bruger navn) Den hoppede simpelthen det over uden at stoppe. Og så skriver den. Du skal skrive et brugernavnBrugen er nu oprettet.....
Hvorfor gør den det?
Jeg vil gerne have det sådan, at når jeg opretter en bruger.
Så må den ikke forsætte oprettelsen, hvis Brugernavn, email eller noget andet felt er på 0 tegn. Eller hvis Brugernavn eller email er brugt. Og fejl beskederne skal komme hver for sig. Ikke bare hvor begge bliver skrevet ind i samme fejl besked: "Dit brugernavn eller email er brugt."
2. Jeg vil gerne have at den siger. Hvis brugernavnet er optaget. Hvilket den fint gør. Men hvis så Emailen er brugt, vil jeg gerne have at den udskriver en fejl tekst på den også.
Har prøvet at sætte den ind. Men det virker ikke, og er ikke så stiv til det endnu.
3. Jeg ville også gerne have at den tjekkede om password1 og
Password2 er ens. Og hvis de er det så skal den den sende passwordet til feltet "password" i databasen.
4. Jeg vil gerne at den også kan se hvis der ikke er "@" og ".2-3bogstaver" i emailen. at så siger den også det.
Har kigget her: http://www.phpartikler.dk/artikler/regexp.php men kan ikke lige dreje hvordan det skal sættes ind.
5. Jeg ville gerne have at alle fejl beskeder kom i filen user_add.php ved siden af inputfelterne. Og så at alle data (pånær password) stadig vil stå i felterne.
6. Sidst vil jeg gerne have at man ryger tilbage til user_add.php når brugeren er oprettet. Og at Teksten med brugeren er oprettet kommer til at stå øverst i den fil.
Giver 15 point for svar på spørgsmålene.
Og please vær sød at skære det helt ud i pap for mig :)
