Avatar billede mikze Nybegynder
31. maj 2004 - 17:12 Der er 15 kommentarer og
1 løsning

Fejl med opret?

Jeg er igang med at lave et community men jeg vil lige vide en ting. Når jeg vil have ligesom her på Eksperten at den viser de fejl der er. Så skal den fx skrive:

Fejl:
Du har glemt at skrive et brugernavn
Du har glemt at skrive en kode
De to koder var ikke ens
Du har glemt at skrive en e-mail

Altså ikke KUN du har glemt at skrive din kode.. Men hvordan gør man sådan at den skrive alle fejlene?

Mine POST's hedder BRUGERNAVN, KODE1, KODE2, EMAIL
Avatar billede thb Nybegynder
31. maj 2004 - 17:15 #1
Hvordan validere du ? eller det måske det du vil vide ?? :D

Thomas
Avatar billede j_jorgensen Nybegynder
31. maj 2004 - 17:15 #2
Du kan eventuelt lave en variabel som indeholder alle fejlene på listeform, eg:

$error = "<ul>";

if ($username=="") $error .= "<li>Du har glemt brugernavn!</li>";

og så videre med de andre variabler - og så afslutte med $error .= "</ul>";
Avatar billede mikze Nybegynder
31. maj 2004 - 17:20 #3
hvorfor sætter du en . foran = ??
Avatar billede thb Nybegynder
31. maj 2004 - 17:32 #4
Det er for ikke at overskrive den nuværende værdi af variablen, men istedet lægge den til.. :)

Thomas
Avatar billede thb Nybegynder
31. maj 2004 - 17:38 #5
Jeg har lavet sådan en funktion her.
Og så gør jeg det at jeg skriver følgende... f.eks

<?
  function printError($error){
      if(!empty($error)){
        $err = implode("<br>",$error);
        return "<font color=FF0000>". $err ."</font><br><br>";
      }
  }

  if(isset($_GET['mode']) && $_GET['mode']=="check"){
      if(empty($_POST['navn'])) $error[] = "Du skal skrive dit navn";
     
      if(empty($error)) print("Der er ikke nogle fejl");
  }
?>

<?=printError($error);?>
Udfyld feltet:<br><br>
<form action="?mode=check" method="post">
  <input type="text" name="navn">
</form>

Thomas
Avatar billede mikze Nybegynder
31. maj 2004 - 17:58 #6
Jeg har lavet det sådan her:

<?
include "../inc/db.php";
include "../inc/config.php";


if($_POST[submit]) {


//Tjekker om de 2 koder er ens og at alle felterne er udfyldt

if($_POST[Brugernavn] == '') {
$error = "Du har glemt at skrive et brugernavn<br>";
}

if($_POST[Kode1] == '') {
$error = "Du har glemt at skrive en kode<br>";
}

if(!$_POST[Kode1] == "$_POST[Kode2]) {
$error = "De to koder var ikke ens<br>";
}

if($_POST[Mail] == '') {
$error = "Du har ikke skrevet din email adresse<br>";
}

if(!$error == ') {
echo "
<font color='#990000'>
Fejl:<br>
$error
</font>
";
echo "<br><br>";
include "opret.php";
} else {

$status = "bruger";
$oprettet = date('d-m-Y H:i:s');
mysql_query("INSERT INTO brugere SET brugernavn='$_POST[brugernavn]', kode='$_POST[kode]', status='$status', mail='$_POST[mail]', oprettet='$oprettet', ip='$_SERVER[REMOTE_ADDR]'") or die (Mysql fejl: mysql_error());

}
Avatar billede mikze Nybegynder
31. maj 2004 - 17:59 #7
if(!$error == '') {


Skulle der have stået
Avatar billede mikze Nybegynder
31. maj 2004 - 17:59 #8
Og så det sidste af mit script nedenunder :P
Avatar billede thb Nybegynder
31. maj 2004 - 18:03 #9
jamen hvis du gerne vil have alle fejl beskederne skrevet på samme tid, så skal du gøre det lige som jeg har gjort..
Avatar billede j_jorgensen Nybegynder
31. maj 2004 - 18:33 #10
alt hvad du skal gøre er at sætte et . foran dine lighedstegn...så er dit problem løst!
Avatar billede mikze Nybegynder
01. juni 2004 - 07:19 #11
Ja det har jeg også gjort. men den virker ikke helt med det der koderne er ikke ens... :S

<?
include "../inc/db.php";
include "../inc/config.php";


if($_POST[submit]) {


//Tjekker om de 2 koder er ens og at alle felterne er udfyldt

if($_POST[Brugernavn] == '') {
$error .= "Du har glemt at skrive et brugernavn<br>";
}

if($_POST[Kode1] == '') {
$error .= "Du har glemt at skrive en kode<br>";
}

if(!$_POST[Kode1] == $_POST[Kode2]) {
$error .= "De to koder var ikke ens<br>";
}

if($_POST[kon] == "gfx/none.gif") {
$error .= "Du har ikke valgt dit køn<br>";
}

if($_POST[Mail] == '') {
$error .= "Du har ikke skrevet din email adresse<br>";
}

if(!$error == '') {
echo "
<font color='#FF0000'>
Fejl:<br>
$error
</font>
";
echo "<br><br>";
include "opret.php";
} else {

$status = "bruger";
$dato = date('d-m-Y H:i:s');
mysql_query("INSERT INTO brugere (brugernavn, kode, status, mail, ip, aktiveret, oprettet) values ('$_POST[brugernavn]', '$_POST[kode]', '$status', $_POST[mail]', '$_SERVER[REMOTE_ADDR]', aktiveret='nej', oprettet='$dato'");
echo "Din bruger er nu oprettet :)";
}
} else {
echo "Der opstod en fejl, prøv igen!";
}

?>
Avatar billede mikze Nybegynder
01. juni 2004 - 07:21 #12
if(!$error == '') { skulle der have stået
Avatar billede thb Nybegynder
01. juni 2004 - 07:30 #13
Gør sådan her...

<?
include "../inc/db.php";
include "../inc/config.php";

if($_POST[submit]) {

  //Tjekker om de 2 koder er ens og at alle felterne er udfyldt

  if($_POST[Brugernavn] == '') $error[] = "Du har glemt at skrive et brugernavn<br>";
  if($_POST[Kode1] == '') $error[] = "Du har glemt at skrive en kode<br>";
  if(!$_POST[Kode1] == $_POST[Kode2]) $error[] = "De to koder var ikke ens<br>";
  if($_POST[kon] == "gfx/none.gif") $error .= "Du har ikke valgt dit køn<br>";
  if($_POST[Mail] == '') $error[] .= "Du har ikke skrevet din email adresse<br>";
 
  if(!$error == '') {
      echo "<font color='#FF0000'>Fejl:<br>".
      implode("<br>",$error);
      ."</font><br><br>";
      include "opret.php";
  }else{
      $status = "bruger";
      $dato = date('d-m-Y H:i:s');
      mysql_query("INSERT INTO brugere (brugernavn, kode, status, mail, ip, aktiveret, oprettet) values ('$_POST[brugernavn]', '$_POST[kode]', '$status', $_POST[mail]', '$_SERVER[REMOTE_ADDR]', aktiveret='nej', oprettet='$dato'");
      echo "Din bruger er nu oprettet :)";
  }
}

}else{
  echo "Der opstod en fejl, prøv igen!";
}

?>
Avatar billede mikze Nybegynder
01. juni 2004 - 20:13 #14
Det virker ikke :S
Avatar billede thb Nybegynder
01. juni 2004 - 20:39 #15
Hvad er fejlen... ???
Avatar billede mikze Nybegynder
05. juni 2004 - 17:09 #16
Nae :S Fik det til at virke :D
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