Gå til innhold

NH

Medlemmer
  • Innlegg

    190
  • Ble med

  • Besøkte siden sist

Innlegg skrevet av NH

  1. Som nevnt over er tekstfiler veldig tungvindt, og ofte helt unødvendig. Det du gjør ved å lagre info i txt filer er å finne opp hjulet på nytt. Du må selv lage deg funksjoner som lagrer, henter, oppdaterer og sletter data. Hvorfor gjøre allt dette om igjen når det finnes ferdige produkter som gjør jobben raskere, lettere og langt mere effektivt en noen av oss her på HW forumet noen gang kommer til å klare å lage?

     

    Har du ikke tilgang til mySQL så finnes det da andre databasesystemer som er både raskere og noen ganger bedre.

     

    husk at SQLite er inkludert i PHP5 og ikke spesielt vanskelig å bruke, er dessuten bevist raskere enn mySQL, men er jo ikke så avansert, fungerer derimot perfekt til slik lagring fu ønsker her.

    I SQLite lagres infoen i .db filer på webhotellet ditt. Og støtter alminnelig SQL kode

  2. Ikke for å være frekk, men i mine øyne er dette kansje spørsmål du burde kunne svaret på FØR du tar på deg et såpass stort prosjekt, selv om lagring av produkter i seg selv kansje ikke er det vanskeligste.

     

    PHP og ASP er i seg selv omtrent LIKE sterke så vidt jeg vet, men som nevnt over er PHP blitt veldig populert blant oss selvlærte da det er lisensfritt, dessuten også sansynligvis et av de letteste språk å lære seg.

     

    PHP er jo ikke spesielt gammelt, så er nok en del eldre løsninger laget i ASP rett og slett fordi det er det litt eldre utviklere har lært seg.

     

    Nå er ikke jeg noen stor ekspert på .NET programering, men så vidt jeg vet innebærer ASP flere språk, ikke bare ett som i PHP. Du kan bruke C#, Visual Basic og Java Script som SSI.

     

    Det hele er vel egentlig en smakssak. Dessuten kjører vel neppe ASP på en linux server?

     

    Som et tips til videre når det gjelder betalingssystemer (Noe jeg anser som det mest knotete ved å lage egen nettbutikk) er kansje paypal et godt alternativ da det er relativt lett å sette opp og du slipper VISA og mastercard systemer selv da paypal tar for seg allt dette. En god guide til hvordan bruke PayPal på siden din har faktisk Zend laget for deg:

     

    http://www.zend.com/zend/tut/tutorial-paypal.php

     

    Huk å sett deg godt inn i SQL, du trenger å kombinere mange tabeller. Her holder ikke en vanlig SELECT

  3. jeg har laget denne klassen:

    http://norskwebforum.no/pastebin/2426

     

    klassen er i utgangspunktet for php5, men tar 2sek å skrive om.

     

    Klassen bruker mysql som log db, tabellen ser slik ut:

    CREATE TABLE `online` (
     `ip` varchar(20) collate latin1_general_ci NOT NULL default '',
     `time` int(15) default NULL,
     `dato` date NOT NULL default '0000-00-00'
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

     

    et eksempel på bruk:

     

    <?php
    //helt øverst på alle sider som skal telle/vise statestikken
    require_once('online.class.php'); //includer klassen
    $online = new online(); //tilordne den til et objekt
    
    //der du vil det skal vises kan du bruke disse klasse komandoene
    echo '<br />';
    echo "Online: ". $online->visonline() ."<br />"; //vis antall online ATM
    echo "Besøk i dag: ". $online->visidag() ."<br />"; //vis antall treff i dag (unike)
    echo "Unike treff:". $online->visunike() ."<br />"; //Vis totalt unike treff
    ?>
    

  4. din br() vil selfølgelig virke, men er noe unødvendig spør du meg.

     

    Men når det kommer til din bruk av while så er det selfølgelig ikke riktig måte å gjøre den jobben på, her vil en for() løkke gjøre jobben langt lettere, men while løkken gjør jobben like godt om du bytter ut ett = med en !

     

    function br($a = 1)
    {
    $i = 0;
    while($i != $a)
    {
    echo '<br />';
    $i++;
    }
    }
    
    

     

    eventuelt

     

    while($i < $a){...}
    

     

    det er mange måter å få gjort en jobb, men er vel ingen grunn til å finne opp hjulet på nytt?

     

    (PHP har rundt 750 ferdigskrevne funksjoner + PEAR pakkene(som forøvrig er metoder og klasser, ikke funksjoner)

  5. Husk også at første gang må du ikke bruke .=

    6210674[/snapback]

     

    det må man da gjerne gjøre.

    I php har alle variabler uansett verdien null.

    Om du ønsker å legge til mere til null blir null automatisk borte da det ikke er null info der lenger,. (rotete forklart)

     

    $var++; (fungerer utmerket og vil resultere i at $var blir opprettet med verdien en da alle variabler i php standard er 0

     

    $var2 .= 'en variabel'; //Fungerer også utmerket

  6. dette kan vel hjelpe?

     

    <!-- I <head> -->
    
    <script language="javascript">
    
    var lastElementId = 0;
    function viewNhide(elementId){
    
    var element = document.getElementById(elementId).style;
    
    if(lastElementId != 0 && lastElementId != elementId){
     viewNhide(lastElementId);	
    }
    
    if(element.display == "block"){
     element.display = "none";	
    } else {
     element.display = "block";	
    }
    
    lastElementId = elementId;
    }
    
    </script>
    
    
    <!-- dropdownen -->
    <form>
    <select name="grønt" id="gront" onchange="viewNhide(this.value)">
    <option value="0" selected>-- Velg --</option>
    <option value="frukt">Frukt</option>
    <option value="gronnsaker">Grønnsaker</option>
    </select>
    
    
    <select name="grønnsaker" id="gronnsaker" style="display:none">
    <option value="agurk" selected>Agurk</option>
    <option value="kål">Kål</option>
    </select>
    
    
    <select name="frukt" id="frukt" style="display:none">
    <option value="appelsin" selected>Appelsin</option>
    <option value="eple">Eple</option>
    </select>
    </FORM>
    

     

    merk:

    her har jeg valgt å bruke value i første formen som ID på de andre formene

  7. klart du kan skrive før og etter header():

     

    <?php 
    ob_start(); //Start caching av headere 
    ?>
    <script type="javascript">
    window.open(_Dine_config_her_);
    <!-- slå opp på w3schools.com om du ikke husker/veit alle settings i open() -->
    </script>
    <?php
    
    // Go to a random URL
    
    $url[0] = "http://finn.no/eiendom/";
    
    $url[1] = "http://finn.no/bil";
    
    
    
    srand ((double)microtime()*1000000);
    
    $randomnum = rand(0, count($url)-1);
    
    header ("Location: $url[$randomnum]");
    ob_flush(); //Tøm cache og kjør alle headers.
    ?>

     

    eventuelt kan du drite i php på denne siden og bare bruke JS. alltid en løsing på ting ;)

  8. for det første er det et noe merkelig format du har valgt. hvor får du det fra?

     

    når det gjelder svaret:

     

    -Del opp tallet ditt med substr() rokker om på rekkefølgen og legg til eventuelle tegn og vis ut igjen:

     

    //....
    $year = substr($unformatedDate, 0, 4);
    $month = substr($unformatedDate, 0,2);
    //...
    
    printf("%d-%d-%d klokka %d:%d", $day, $month, $year, $hour, $minutes);
    

     

    orket igge lage en fulverdig kode, men det klarer du sikkert selv

     

    legg det i en funksjon som returnerer en ferdig formatert dato og tar imot den uformaterte som input. så slipper du dette mere enn en gang...

  9. beklager. hadde javascript deaktivert. så jeg så ikke koden...

     

    if ( !$_POST['passord'] == $_POST['passord_bekreft'] )
    {}else{
    
    echo '<script>alert("Passordene du skrev var ikke like. Prøv igjen!");</script>';
    echo '<script>history.back(1);</script>';
    exit;
    
    }

     

    dette er jo HELT feil. prøv med:

     

    if ( $_POST['passord'] != $_POST['passord_bekreft'] )
    {
    
    echo '<script>alert("Passordene du skrev var ikke like. Prøv igjen!");</script>';
    echo '<script>history.back(1);</script>';
    exit;
    
    }

     

    du hadde en ! (not) der og hadde feilmeldingen i else. altså fikk du en felmelding om passordene var like...

  10. har laget en for deg her:

    Var jo dette som var meningen i forrige post, men brukte feil JS. HAHA.

     

    <html>
    <head>
    <?php jsClock('myClock'); ?>
    </head>
    <body onload="startTime()">
    
    <div id="myClock">
    <!-- Her vises klokka -->
    </div>
    </body>
    </html>
    
    <?php
    function jsClock($element){
    $js_script = <<<EOF
    <script type="text/javascript">
    var h = "null";
    var m = "null";
    var s = "null";
    
    function startTime()
    {
    
    var hf="{h}"
    var mf={m}
    var sf={s}
    
    if(h == "null" || m == "null" || s == "null"){
    h = hf;
    m = mf;
    s = sf;	
    } else {
    if(s != 59){
     s = checkTime(++s);
    } else {
     s = 00;
     m = checkTime(++m);
     
     if(m == 59){
     	m = 00;
     	h = checkTime(++h);
     	
     	if(h == 23){
       h = "00";
     	}
     }
    }
    }
    
    // add a zero in front of numbers<10
    document.getElementById('{element}').innerHTML=h+":"+m+":"+s
    t=setTimeout('startTime()',1000)
    }
    
    function checkTime(i)
    {
    if (i<10)
    {i="0" + i}
    return i
    }
    </script>
    EOF;
    
    $js['h'] = date("H"); //Start time
    $js['m'] = date("i"); //Start minutt
    $js['s'] = date("s"); //start sekund
    $js['element'] = $element; //ID navn på tag til klokka
    
    foreach($js as $key => $val){
    $js_script = str_replace('{'.$key.'}', $val, $js_script);
    }
    
    print($js_script);
    }
    
    ?>
    

     

    eventuelt kan du bruke GD til dette. Som da ikke er en teller men som henter ny date() fra php hvert sekund.

    for dette trenger du to scripts.

     

    clockimage.php

    <?php
    header("Content-type: image/png");
    $width = 50;
    $height = 20;
    
    $img = imagecreate($width, $height);
    $string = date("H:i:s");
    
    $tekstColor = imagecolorallocate($img, 0, 0, 0);
    $backgroundColor = imagecolorallocatealpha($img, 0,0,0, 127);
    
    imagefill($img, 0,0, $backgroundColor);
    imagestring($img, 2, 0,0, $string, $tekstColor);
    
    
    imagepng($img);
    imagedestroy($img);
    
    ?>

     

    javascriptet

    <script language="javascript" type="text/javascript">
    teller = 1
    function clock(){
    clockElement = document.getElementById('clockimage');
    clockElement.src = "clockimage.php?" +teller;
    clockElement.alt = ++teller;
    t = setTimeout('clock()', 1000);
    }
    
    </script>

     

    så er det bare å lage en <img> tag med riktig id( i forrhold til getElementById() ) der du ønsker telleren

  11. dette eksemplet burde sende deg på rett vei.

    <html>
    <head>
    <?php
    $js_script = <<<EOF
    <script type="text/javascript">
    function startTime()
    {
    var today=new Date()
    var h={h}
    var m={m}
    var s={s}
    // add a zero in front of numbers<10
    m=checkTime(m)
    s=checkTime(s)
    document.getElementById('{element}').innerHTML=h+":"+m+":"+s
    t=setTimeout('startTime()',500)
    }
    
    function checkTime(i)
    {
    if (i<10) 
     {i="0" + i}
     return i
    }
    </script>
    EOF;
    
    $js['h']	= date("h"); //Start time
    $js['m']	= date("i"); //Start minutt
    $js['s']	= date("s"); //start sekund
    $js['element']	= 'myclock'; //ID navn på tag til klokka
    
    foreach($js as $key => $val){
    $js_script = str_replace('{'.$key.'}', $val, $js_script);
    }
    
    print($js_script);
    ?>
    </head>
    <body onload="startTime()">
    
    <div id="myclock">
    <!-- Her vises klokka -->
    </div>
    </body>
    </html>

     

    Dettte er en klokka basert på en teller. hvor php skriver JS'en til kildekoden og endrer innholdet i variablene med date

  12. er det nå jeg skal quote qutesene med mange quotes i for ser ut som det er om å gjøre å quote mest. WHY? må jo scrolle som en idiot for å komme meg helt ned. Ingen vits i å quote posten over deg. fjern i det minste all info du ikke svarer på!

     

    eventuelt lagre allt i et array med id'n i db som index.

     

    $resultat = mysql_query("SELECT tekst, pris, id FROM priser");
    while($rad = mysql_fetch_array($resultat))
    {
    $prod[$rad['id']] = array('tekst' => $rad['tekst'], 'pris'] => $rad['pris']);
    }

     

    da kan du hente ut tekst slik:

     

    echo $prod[1]['tekst']

     

    som vil gi deg teksten fra produktet med id 1.

  13. ereg() funksjonene er ikke annbefalt da perl regXPn er raskere. dvs preg funksjonene.

    uansett

    manualen er vår venn:

     

    Perl regXP:

    http://no.php.net/manual/en/reference.pcre...tern.syntax.php

     

    Pattern modifiers (Som f.eks i en på eksemplet over som betyr case-insensitiv)

    http://no.php.net/manual/en/reference.pcre...n.modifiers.php

     

    RegXp er veldig "treg" måte å søke i en string på og burde utelukkende _kun_ benyttes når det er nødvendig, dvs avanserte søk som validering av e.post, om en streng har en viss struktur etc.

     

    For sjekking om en variabel er en integer, en string eller om den består kun av bokstaver/tall samt enkel replace har vi egne funksjoner for.

  14. last ned klassen min her:

    http://norskwebforum.no/pastebin/2060

    den kan med LETTHET mombinerers med scriptet til anners. Bare include() klassen min. Så bytter du ut move_uploaded_file med

     

    move_resized::move

     

    (la parantesene hans stå.)

     

    Endre configen øverst i klassen min og sett $dir og $thumbs_dir til '' (så klassen ikke legger til subfolders)

     

    Endre resten av config og du er i boks... move() funksjonen i klassen har nemlig akkurat samme parametere som move_uploaded_file() og gjør samme jobben,men pluss resizing, thumb_making og adding av logo (støtter ikke mere enn 8-bit PNG filer grunnet palettfeil i nåvernde GD version)

  15. timestamp i mySQL er UNIX_TIMESTAMP()

     

    denne kan du bruke sammen med DATETIME kolonnen i mySQL

     

    SELECT noe FROM tabell where UNIX_TIMESTAMP('2006-04-19') < UNIX_TIMESTAMP('upcomming_events');
    

     

    dette burde fungere utmerket. om du vil trekke fra et vist antall dager kan det bli slik:

     

    SELECT noe FROM tabell where UNIX_TIMESTAMP('2006-04-19') > UNIX_TIMESTAMP('news_written_time')-(60*60*24*10);
    --Dette vil hente ut alle "nyheter" som er nyere enn 10 dager
    

×
×
  • Opprett ny...