webForumDet fria alternativet

skumt med value funktion.

3 svar · 274 visningar · startad av FunTrix

FunTrixMedlem sedan okt. 2003118 inlägg
#1

hej,
jag hade tänkt använda en value för att kontrollera att de fällt jag vill ha ifyllda även fylls i...
men jag har ett problem och det är att när jag sedan visar sidan med formuläret så kommer denna kod upp i rutorna...
<br /><b>Notice</b>: Undefined index: fornamn in <b>D:\wwwroot\funtrix\np\bli_medlem.php</b> on line <b>158</b><br />

kollar du källkoden till sidan så ser den ut så här:
<td><input name="fornamn" type="text" id="fornamn" value="<br />
<b>Notice</b>: Undefined index: fornamn in <b>D:\wwwroot\funtrix\np\bli_medlem.php</b> on line <b>158</b><br />
"></td>

och detta är koden för en ruta i formuläret:

<td><input name="fornamn" type="text" id="fornamn" value="<?=$back['fornamn'] ?>"></td>

har även valt att länka med hela mitt dokument om det kan vara till någon hjälp eller så att ni hittar något mer fel.

<?php
session_start(); // Alltid överst på sidan 

include "conn.php"; // Databasanslutningen 

if (isset($_POST['submitreg'])){

   // Tag bort eventuella blanksteg i början eller slutet 
   foreach($_POST as $key => $val){
     $_POST[$key] = trim($val);
   }

   //Kolla efter tomma fält 
   if (empty($_POST['fornamn']) ||
       empty($_POST['efternamn']) ||
   	   empty($_POST['adress']) ||
	   empty($_POST['postnummer']) ||
       empty($_POST['ort']) ||
	   empty($_POST['land']) ||
   	   empty($_POST['personnummer']) ||
	   empty($_POST['telefon']) ||
	   empty($_POST['epost']) ||
	   empty($_POST['pass'])) {
     $reg_error[] = 0;
   }

   // Kolla om användarnamnet är upptaget 
   $sql = "SELECT COUNT(*) FROM npmedlemmar WHERE fornamn='{$_POST['fornamn']}'";
   $result = mysql_query($sql);
   if (mysql_result($result, 0) > 0) {
     $reg_error[] = 'fornamn';
   }

   // Kolla om e-post kan tänkas vara ok 
   if (!preg_match('/^[-A-Za-z0-9_.]+[@][A-Za-z0-9_-]+([.][A-Za-z0-9_-]+)*[.][A-Za-z]{2,8}$/', $_POST['email'])) {
     $reg_error[] = 'epost';
   }
   
   // kolla så att det är ett giltigt personnr.
      function checkPnr($pnr)
   {   
      if (strlen($pnr) != 10) die("Felaktigt angivet personnummer! Ange personnummret utan bindestreck, totalt 10 siffror.");
      
      $n = 2;
      
      // Räkna fram kontrollsumman
      for ($i=0; $i<9; $i++) 
      {
         $tmp = $pnr[$i] * $n;
         ($tmp > 9) ? $sum += 1 + ($tmp % 10) : $sum += $tmp;
         ($n == 2) ? $n = 1 : $n = 2;
      }
   
      // Lägg till sista siffran (kontrollsiffran), resultatet skall bli jämt tiotal, returnera true/false
      return !( ($sum + $pnr[9]) % 10);
   }
   
   if (checkPnr($_POST['personnummer'])){
     $reg_error[] = 'personnummer';
   }

   // Inga fel? Spara och logga in samt skicka till välkomstsida 
   if (!isset($reg_error)) {
     $sql = "INSERT INTO npmedlemmar(fornamn, efternamn, adress, postnummer, ort, land, personnummer, telefon, epost, pass)
             VALUES('{$_POST['fornamn']}', '{$_POST['efternamn']}', '{$_POST['adress']}', '{$_POST['postnummer']}', '{$_POST['ort']}', '{$_POST['land']}', '{$_POST['personnummer']}', '{$_POST['telefon']}', '{$_POST['epost']}', '{$_POST['pass']}')";
     mysql_query($sql);

     $_SESSION['sess_id'] = mysql_insert_id();
     $_SESSION['sess_user'] = $_POST['epost'];
     header("Location: valkommen.php");
     exit;
   }

} else {

   // Sätt variabler för tomt formulär 
   for ($i=0; $i<10; $i++) {
      $back[$i] = "";
   }

}

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.style2 {font-size: 18px}
-->
</style>
</head>

<body>
<table width="100%"  border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="28%">&nbsp;</td>
    <td width="72%"><span class="style2">NP<br>
    </span></td>
  </tr>
  <tr>
    <td valign="top"><a href="index.php">Logga in</a><br>
      <a href="bli_medlem.php">Bli medlem</a></td>
    <td><em><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
      <?php
if (isset($reg_error)){

   // Felmeddelanden
   $error_list['fornamn'] = "Ditt förnamn är ej ifyllt";
   $error_list['efternamn'] = "Ditt efternamn är ej ifyllt";
   $error_list['adress'] = "Din adress är ej ifylld";
   $error_list['postnummer'] = "Ditt postnummer är ej ifyllt";
   $error_list['ort'] = "Din ort är ej ifylld";
   $error_list['land'] = "Ditt land är ej ifyllt";
   $error_list['personnummer'] = "Ditt personnummer är ej korrekt ifyllt";
   $error_list['telefonnummer'] = "Ditt telefonnummer är ej ifyllt";
   $error_list['epost'] = "Din epost är ej korrekt ifylld";
   $error_list['losen'] = "Ditt lösenord är ej ifyllt";

   echo "N&aring;got gick fel:<br>\n";
   echo "<ul>\n";
         /* lista: arrayen $reg_error och skriv ut felmeddelanden */
         for ($i=0; $i<sizeof($reg_error); $i++)
         {
              if (isset($error_list[$reg_error[$i]]) && !empty($error_list[$reg_error[$i]])) {
                  echo ('<li>'.$error_list[$reg_error[$i]].'</li>');
              }
         }

   echo "</ul>\n";

   // S&auml;tter returvariabler till formul&auml;ret
   $back['fornamn'] = $_POST['fornamn'];
   $back['efternamn'] = $_POST['efternamn'];
   $back['adress'] = $_POST['adress'];
   $back['postnummer'] = $_POST['postnummer'];
   $back['ort'] = $_POST['ort'];
   $back['land'] = $_POST['land'];
   $back['personnummer'] = $_POST['personnummer'];
   $back['telefon'] = $_POST['telefon'];
   $back['epost'] = $_POST['epost'];
   $back['losen'] = $_POST['losen'];

}
?>
    </font></em><br>      <form action="bli_medlem.php" method="post" name="" id="">
      <table width="476"  border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td>F&ouml;rnamn: * </td>
        </tr>
        <tr>
          <td><input name="fornamn" type="text" id="fornamn" value="<?=$back['fornamn'] ?>"></td>
        </tr>
        <tr>
          <td>Efternamn: *</td>
        </tr>
        <tr>
          <td><input name="efternamn" type="text" id="efternamn" value="<?=$back['efternamn'] ?>"></td>
        </tr>
        <tr>
          <td>Adress: * </td>
        </tr>
        <tr>
          <td><input name="adress" type="text" id="adress" value="<?=$back['adress'] ?>"></td>
        </tr>
        <tr>
          <td>Postnummer: * </td>
        </tr>
        <tr>
          <td><input name="postnummer" type="text" id="postnummer" value="<?=$back['postnummer'] ?>"></td>
        </tr>
        <tr>
          <td>Ort: * </td>
        </tr>
        <tr>
          <td><input name="ort" type="text" id="ort" value="<?=$back['ort'] ?>"></td>
        </tr>
        <tr>
          <td>Land: * </td>
        </tr>
        <tr>
          <td><input name="land" type="text" id="land" value="<?=$back['land'] ?>"></td>
        </tr>
        <tr>
          <td>Personnr: *  (inklusive fyra sista siffrorna, t.ex. 6307158431)</td>
        </tr>
        <tr>
          <td><input name="personnummer" type="text" id="personnummer" value="<?=$back['personnummer'] ?>"></td>
        </tr>
        <tr>
          <td>Telefon: * </td>
        </tr>
        <tr>
          <td><input name="telefon" type="text" id="telefon" value="<?=$back['telefonnummer'] ?>"></td>
        </tr>
        <tr>
          <td>Epost (anv&auml;nds &auml;ven som anv&auml;ndarnamn): * </td>
        </tr>
        <tr>
          <td><input name="epost" type="text" id="epost" value="<?=$back['epost'] ?>"></td>
        </tr>
        <tr>
          <td>L&ouml;senord:</td>
        </tr>
        <tr>
          <td><input name="losen" type="password" id="losen" value="<?=$back['losen'] ?>"></td>
        </tr>
        <tr>
          <td>&nbsp;</td>
        </tr>
        <tr>
          <td><input name="Submitreg" type="submit" id="Submitreg" value="Bli medlem">
            <input type="reset" name="Submit2" value="T&ouml;m formul&auml;ret"></td>
        </tr>
      </table>
    </form></td>
  </tr>
</table>
</body>
</html>
InsiderMedlem sedan jan. 2000978 inlägg
#2

Det är inget fel. Det står 'Notice' och ska väl mer betraktas som information för felsökning. Men om allt funkar så är det inget att bry sig om. Speciellt om du inte har några 'Errors'
Däremot ska det gå att stänga av det där meddelandet...
Sök i PHP-forumet.

TroxyMedlem sedan mars 20041 505 inlägg
#3

Din php.ini verkar vara konfigurerad för utvecklingsmiljö. Du får ett meddelande när du refererar till icke-existerande variabler i din kod, i detta fall platsen "fornamn" i en array.

För att stänga av detta, ändra error_reporting till följande i php.ini:

error_reporting  = E_ALL & ~E_NOTICE;
PalleMedlem sedan apr. 20003 174 inlägg
#4

Tråden flyttas från HTML, XHTML & CSS.

mvh Palle
Moderator webForum

127 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)