Avatar billede JJ77 Juniormester
20. februar 2006 - 15:13 Der er 6 kommentarer og
1 løsning

Kommentarer/forslag til koden..

Jeg har lavet nedenstående kode, hvor man kan oprette en annonce med tilhørende billede, og jeg vil gerne høre om i har nogle forslag/kommentarer til koden. Jeg er selv lidt i tvivl om det er ok.. Men det virker da :) Noget jeg bl.a. selv har tænkt over er om man SKAL indsætte <html>, <head> osv..



<script type="text/JavaScript">
function add_kategori(valg)
{
  kategori = document.form.kategori;
   
  for(i=0; i < kategori.length; i++)
  {
    kategori.options[i] = null;
  }

  switch(valg)
  {
    case 1:
      kategori.options[0] = new Option('Packard bell','Packard bell');
      kategori.options[1] = new Option('Toshiba','Toshiba');
      kategori.options[2] = new Option('Fujitsu Siemens','Fujitsu Siemens');
    break;
       
    case 2:
      kategori.options[0] = new Option('Windows','Windows');
      kategori.options[1] = new Option('Norton','Norton');
      kategori.options[2] = new Option('Office','Office');
    break;
   
    case 3:
      kategori.options[0] = new Option('Samsung','Samsung');
      kategori.options[1] = new Option('Viewsonic','Viewsonic');
      kategori.options[2] = new Option('Neovo','Neovo');
    break;
   
    case 4:
      kategori.options[0] = new Option('Epson','Epson');
      kategori.options[1] = new Option('HP','HP');
      kategori.options[2] = new Option('Canon','Canon');
    break;
  }
}
</script>

<script type="text/JavaScript" src="../members/dk_pns.js"></script>
<script type="text/JavaScript">

function validering(f){
  if( f.gruppe.value==''){
      alert("Der skal vælges en gruppe!");
      f.gruppe.focus(); 
      return false;
  } 
  if( f.kategori.value==''){
      alert("Der skal vælges en kategori!");
      f.kategori.focus();   
      return false;
  }
  if( f.produkt.value==''){
      alert("Produkt skal udfyldes!");
      f.produkt.focus(); 
      return false;
  }
  if( f.pris.value==''){
      alert("Pris skal udfyldes!");
      f.pris.focus();
      return false;
  }
  if(form.email.value == '' && form.tlf1.value == ''){
      alert("Telefonnr. 1 eller e-mail skal udfyldes!");
      f.tlf1.focus();
      return false;
  }
  if( f.postNr.value==''){
      alert("Postnr. skal udfyldes!");
      f.postNr.focus();
      return false;
  }
  if( !pn["p"+f.postNr.value] ){
      alert("Postnr. synes ikke at eksistere!");
    f.postNr.focus();
    return false;
  }
  if(f.checkbox.checked==false){
      alert("Jeg har læst og forstået vedtægter for annoncering, skal afkrydses!");
      f.checkbox.focus();
      return false;
  }
  var elm = f.elements["imagefile[1]"];
if(!elm.value.toLowerCase().match(/\.jpe?g$|^$/)){
      alert("Du kan kun uploade billeder af typen jpg eller jpeg.\nLæs evt. under hjælp nederst !");
      elm.focus();
      form.mySubmit.disabled = false;
      return false;
}
elm = f.elements["imagefile[2]"];
if(!elm.value.toLowerCase().match(/\.jpe?g$|^$/)){
      alert("Du kan kun uploade billeder af typen jpg eller jpeg.\nLæs evt. under hjælp nederst !");
      elm.focus();
      form.mySubmit.disabled = false;
      return false;
}
elm = f.elements["imagefile[3]"];
if(!elm.value.toLowerCase().match(/\.jpe?g$|^$/)){
      alert("Du kan kun uploade billeder af typen jpg eller jpeg.\nLæs evt. under hjælp nederst !");
      elm.focus();
      form.mySubmit.disabled = false;
      return false;
}
  f.mySubmit.disabled = true;
  return true; 
}
</script>

<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
function textCounter(field, countfield, maxlimit) {
if (field.value.length > maxlimit) // if too long...trim it!
field.value = field.value.substring(0, maxlimit);
// otherwise, update 'characters left' counter
else
countfield.value = maxlimit - field.value.length;
}
// End -->
</script>

<style>
  <!--
                .speciel{
                        color:#DD0000;
                        font:16 px Times New Roman,helvetica,tahoma,Georgia,verdana,arial,Courier New;
                        text-decoration: none;
                        font-style: normal;                   
                        font-weight: bold;
                       
                }
        -->
          <!--
                .mellem{
                        color:#658091;
                        font:15 px Times New Roman,helvetica,tahoma,Georgia,verdana,arial,Courier New;
                        text-decoration: none;
                        font-style: normal;                   
                        font-weight: bold;
                       
                }
        -->
        <!--
                .lille{
                        color:#000000;
                        font:15px Times New Roman,Arial,Helvetica,sans-serif;
                        text-decoration: none;
                }
        -->
          <!--
                .lilleLink{
                        color:#0000CD;
                        font:15px Times New Roman,Arial,Helvetica,sans-serif;
                        text-decoration: none;
                }
        -->
</style>
<style type="text/css">
body {
overflow-x: hidden;
overflow-y: scroll;
}
</style>

<body link="#0000cc" vlink="#0000cc">
<?PHP
require_once("../members/common.php");
session_start();

function resize( $filename, $newfilename, $maxw, $maxh )
{
    $result = false;
    $srcim = imagecreatefromjpeg( $filename );
    $ow = imagesx( $srcim );
    $oh = imagesy( $srcim );
    $wscale = $maxw / $ow;
    $hscale = $maxh / $oh;
    $scale = ( $hscale < $wscale ? $hscale : $wscale );
    $nw = round( $ow * $scale, 0 );
    $nh = round( $oh * $scale, 0 );
    $dstim = imagecreatetruecolor( $nw, $nh );
    imagecopyresampled( $dstim, $srcim, 0, 0, 0, 0, $nw, $nh, $ow, $oh );
    $result = imagejpeg( $dstim, $newfilename, 85 );
    imagedestroy( $dstim );
    imagedestroy( $srcim );
    return $result;
}

$allowPics = array("jpg","jpeg","jpe","JPG","JPEG","JPE");

if($userId = is_logged())
{
    $userName = get_name();
}
         
else
{
    echo' <body scroll="no" leftmargin="0" marginheight="0" marginwidth="0" topmargin="0">
        <table width="100%" border="0" cellspacing="0" cellpadding="0" height="100%">
         
            <tr>
                <td width="100%">
                    <div align="center">
                    <img src="../NewFiles/ikkeLoggetInd.gif" alt="" border="0"><br> 
                </div>
                </td>
            </tr>
            <tr>
                <td width="100%">
                    <div align="center">
                     
                    </div>
                </td>
            </tr>
        </table>
    </body> ';

}

if(!empty($_POST['produkt']))
{
    //Forbind til database...
    $userId = mysql_real_escape_string($_POST['userId']);
    $gruppe = mysql_real_escape_string($_POST['gruppe']);
    $kategori = mysql_real_escape_string($_POST['kategori']);
    $produkt = mysql_real_escape_string($_POST['produkt']);
    $supplerendeTekst = mysql_real_escape_string($_POST['supplerendeTekst']);
    $pris = mysql_real_escape_string($_POST['pris']);
    $loebetidForAnnonce = mysql_real_escape_string($_POST['loebetidForAnnonce']);
    $tlf1 = mysql_real_escape_string($_POST['tlf1']);
    $tlf2 = mysql_real_escape_string($_POST['tlf2']);
    $email = mysql_real_escape_string($_POST['email']);
    $postNr = mysql_real_escape_string($_POST['postNr']);
    $checkbox = mysql_real_escape_string($_POST['checkbox']);
   
//MEGET VIGTIGT.. NEDENSTÅENDE 2 QUERYS VEDLIGEHOLDER DATABASEN
       
    //Q1 -HVIS DER HVERKEN STÅR ET TLF ELLER EN EMAIL KAN MAN IKKE KONTAKTES
    mysql_query("DELETE FROM salgAfProdukt WHERE tlf1='' and email=''");        
    //Q2 -SLETTER ANNONCER + TILHØRENDE BILLEDER SOM ER ÆLDRE END NUVÆRENDE DATO(kun annoncer med billede bliver slettet her)
    mysql_query("DELETE salgAfProdukt, billeder_salgAfProdukt FROM salgAfProdukt, billeder_salgAfProdukt WHERE billeder_salgAfProdukt.artikelid=salgAfProdukt.id AND salgAfProdukt.loebetidForAnnonce < NOW()");       
    //Q3 -SLETTER ANNONCER UDEN BILLEDER SOM ER ÆLDRE END NUVÆRENDE DATO
    mysql_query("DELETE FROM salgAfProdukt WHERE loebetidForAnnonce < NOW()");
   
    mysql_query("INSERT INTO salgAfProdukt(Id,userId,gruppe,kategori,produkt,supplerendeTekst,pris,loebetidForAnnonce,tlf1,tlf2,email,postNr,checkbox)
    VALUES('','".$userId."','".$gruppe."','".$kategori."','".$produkt."','".$supplerendeTekst."','".$pris."', DATE_ADD(NOW(), INTERVAL ".$loebetidForAnnonce." DAY),'".$tlf1."','".$tlf2."','".$email."','".$postNr."','".$checkbox."')");
   
    if(mysql_affected_rows()>0)
    {
        $errmsg = "";
        $artikelID = mysql_insert_id();
        for($i = 1; $i <= 3; $i++)
        {
            if($_FILES['imagefile']['size'][$i] > 1048000)
            {
                $errmsg .= "Billede " . $i . " er for stort, max 1024000 bytes!<br>";
            }
            else
            {
                $extension = strtolower(end(explode(".",$_FILES['imagefile']['name'][$i])));
                if(!in_array($extension,$allowPics))
                {   
                    $errmsg .= "Billede " . $i . " er forkert type, kun jpeg!<br>";
                }
                else
                {
              $dato = date("y-m-d h:i:s");
                    resize($_FILES['imagefile']['tmp_name'][$i],"latest.img",350,350);
                    $instr = fopen("latest.img","rb");
                    $image = addslashes(fread($instr,filesize("latest.img")));               
                    mysql_query ("insert into billeder_salgAfProdukt (id, artikelid, pic, oprettetDato) values ('', ".$artikelID.",'".$image."','.$dato.')") or die(mysql_error());
                }
            }
        }
        echo "<b><span class=\"speciel\">Annoncen er oprettet!</span></b><br>
        <span class=\"lille\">- Du kan forlænge løbetid, redigere og slette dine annoncer under &quot;Min konto&quot;</span><br>
        <span class=\"lille\">- Det er kun tilladt at oprette &eacute;n annonce pr. vare/produkt.</span>";
    }
    else
    {
      echo "Fejl: " . mysql_error() . "<br>";
    }
}

?>

<?php
if($userId = is_logged())
{
    $userId = is_logged();
}

$query=mysql_query("SELECT userId FROM `users` WHERE userId = '".is_logged()."'");
$row=mysql_fetch_assoc($query);
?>

<body>
<form enctype="multipart/form-data" action="<?=$_SERVER['PHP_SELF'];?>" method="post" name="form" onsubmit="return validering(this)">
    <table width="100%" border="0" cellspacing="0" cellpadding="0" height="100%">
        <tr>
            <td width="100%">
                <div align="center">
                    <table border="0" cellspacing="2" cellpadding="0">
                        <tr>
                            <td width="555">
                                <p>
                                    <span class="mellem">
                                        <b>
                                            <u>Her har du mulighed for at oprette en salgsannonce</u>
                                        </b>
                                    </span>
                                </p>
                    <p></p>
                </td>
                        </tr>
                        <tr>
                <td width="555">
                    <table width="561" border="0" cellspacing="2" cellpadding="0">
                        <span class="lille">
                            <tr>
                                <td width="200"></td>
                                <td><input type="hidden" name="userId" value="<? echo $row['userId']; ?>" readonly size="5"></td>
                            </tr>
                            <tr>
                           

                                <td width="200"><span class="lille">Produktgruppe</span></td>
                                <td>
                                        <select name="gruppe" onchange="add_kategori(this.selectedIndex);">
                                          <option>Vælg produktgruppe</option>
                                          <option value="Bærbare">Bærbare</option>
                                          <option value="Software">Software</option>
                                          <option value="Skærme">Skærme</option>
                                          <option value="Printere">Printere</option>
                                        </select>

<font color="#ee0000">*</font></td>
                            </tr>
                            <tr>
                                <td width="200"><span class="lille">Underkategori</span></td>
                                <td><select name="kategori">
                                <option value="0"> </option>
                                    </select>

<font color="#ee0000">*</font></td>

                            </tr>
                            <tr>
                                <td width="200"><span class="lille">Produkt/overskrift</span></td>
                                <td><input type="text" name="produkt" size="25" maxlength="33">
<font color="#ee0000">*</font></td>
                            </tr>
                            <tr>
                                <td valign="top" width="200"><span class="lille">Supplerende tekst<br>
                                       
                                                        (maks 350 tegn)</span></td>
                                <td><textarea name=supplerendeTekst wrap=physical cols=34 rows=4 onKeyDown="textCounter(this.form.supplerendeTekst,this.form.remLen,350);" onKeyUp="textCounter(this.form.supplerendeTekst,this.form.remLen,350);"></textarea><br>
                                    <input readonly type=text name=remLen size=3 maxlength=3 value="350">
<span class="lille"> tegn tilbage</span></td>
                            </tr>
                            <tr>
                                <td width="200"><span class="lille">Pris i hele kroner</span></td>
                                <td><input type="text" name="pris" size="15" border="0" maxlength="5">
<font color="#ee0000">*</font></td>
                            </tr>
                            <tr>
                                <td width="200"><span class="lille">L&oslash;betid for annoncen</span></td>
                                <td><span class="lille">15 dage</span><input type="radio" name="loebetidForAnnonce" value="15" border="0"> <span class="lille"> | 30 dage</span><input type="radio" name="loebetidForAnnonce" value="30" border="0"> <span class="lille"> | 45 dage</span><input type="radio" name="loebetidForAnnonce" value="45" checked border="0"></td>
                            </tr>
                       
                    </table>
                    <p>
                                       
                                    </p>
                    <table width="100%" border="0" cellspacing="2" cellpadding="0">
                        <tr>
                            <td>
                                <hr>
                                <span class="mellem"><b><u>Tilf&oslash;j evt. billeder til din annonce</u></b>
                                        <span class="lille"><p>Billedtype skal være jpg ell. jpeg og samlet filstørrelse må maks være 1mb.</p>                                   
                                </span></td>
                        </tr>
                    </table>
                    <p>
                    <table width="561" border="0" cellspacing="2" cellpadding="0">
                        <span class="lille">
                            <tr>
                                <td width="200"><span class="lille">Billede 1:</span></td>
                                <td><input type="file" name="imagefile[1]"></td>
                            </tr>
                            <tr>
                                <td width="200"><span class="lille">Billede 2:</span></td>
                                <td><input type="file" name="imagefile[2]"></td>
                            </tr>
                            <tr>
                                <td width="200"><span class="lille">Billede 3:</span></td>
                                <td><input type="file" name="imagefile[3]"></td>
                            </tr>
                        </span>
                    </table>
                    </p>
                    <p></p>
                    <table width="100%" border="0" cellspacing="2" cellpadding="0">
                        <tr>
                            <td>
                                <hr>
                                <span class="mellem"><b><u>Dine oplysninger, som skal vises i annoncen</u></b></span></td>
                        </tr>
                    </table>
                    <p>
                    <table width="462" border="0" cellspacing="2" cellpadding="0">
                        <span class="lille">
                            <tr>
                                <td width="200"><span class="lille">Telefonnr. 1</span></td>
                                <td><input type="text" name="tlf1" size="25" border="0" maxlength="8"></td>
                            </tr>
                            <tr>
                                <td width="200"><span class="lille">Telefonnr. 2</span></td>
                                <td><input type="text" name="tlf2" size="25" border="0" maxlength="8"></td>
                            </tr>
                            <tr>
                                <td width="200"><span class="lille">E-mail</span></td>
                                <td><input type="text" name="email" size="25" border="0" maxlength="40"></td>
                            </tr>
                            <tr>
                                <td width="200"><span class="lille">Postnr.</span></td>
                                <td><input type="text" name="postNr" size="10" border="0" maxlength="4"> <font color="#ee0000">*</font></td>
                            </tr>
                            <tr>
                                <td width="200"></td>
                                <td></td>
                            </tr>
                        </span>
                    </table>
                                </td>
                                </tr>
                                <tr>
                                    <td width="555">
                                        <span class="lille">Jeg har l&aelig;st og forst&aring;et vedt&aelig;gter for annoncering</span>
                                        <input type="checkbox" name="checkbox" value="1" border="0">
                                    <p><input type="submit" name="mySubmit" value="Opret salgsannonce">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#" onClick="window.open('../hjaelpTilAnnonce.html','win1', 'height=250,width=400,top=150,left=100,screenY=150,screenX=100')"><span class="lilleLink"><u>Hjælp</u></span></a> | <a href="#" onClick="window.open('../vedtaegterForAnnoncering.html','win1', 'height=400,width=400,top=150,left=100,screenY=150,screenX=100')"><span class="lilleLink"><u>Vedt&aelig;gter for annoncering</u></span></a></p>
                    </div>
                </td>
            </tr>
        </table>
    </form></body>
Avatar billede gizmo-gizmo Nybegynder
20. februar 2006 - 15:44 #1
Puha, der er ikke noget værre end at skulle sætte sig så meget ind i andres kode ;)  Du finder nok ud af hen af vejen hvad er der er godt og skidt. Specielt når man vender tilbage senere og skal lave nogle modifikationer, er koden så let læselig? overskuelig? logisk opbygget?  Det er vigtigst om du kan finde rundt i din egen kode.
Avatar billede JJ77 Juniormester
21. februar 2006 - 14:42 #2
Ok.. havde bare været rart med lidt forslag til mindre forbedringer.. men hvad med hensyn til "Noget jeg bl.a. selv har tænkt over er om man SKAL indsætte <html>, <head> osv.." Hvad gør jeg med dette?
Avatar billede gizmo-gizmo Nybegynder
21. februar 2006 - 14:45 #3
Det virker uden, men gør det for en god ordens skyld.
Avatar billede JJ77 Juniormester
21. februar 2006 - 15:06 #4
Uha da da.. Har lige prøvet at se siden i firefoxes browser.. og der virker sikkerheden med at man skal være logget ind ikke.. hmmm hvordan fann kan det være?
Avatar billede JJ77 Juniormester
21. februar 2006 - 16:39 #5
Uhishh.. fandt ud af det.. skulle bare sætte et break; ind der hvor den slår fra når man ikke er logget ind.. mystisk
Avatar billede JJ77 Juniormester
05. marts 2006 - 23:26 #6
nå, men hvis der ikke er flere kommentarer.. smider du så ikke lige et svar.. :)
Avatar billede JJ77 Juniormester
17. marts 2006 - 12:44 #7
nå men så svarer jeg selv ;)
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