Gå til innhold

Martin A.

Medlemmer
  • Innlegg

    2 113
  • Ble med

  • Besøkte siden sist

Innlegg skrevet av Martin A.

  1. Ser fin ut i teorien, men heller dårlig i praksis.

    For det første så er matematikken din litt på halv tolv, og for det andre så forsøker du å dele en integer med en string. PHP klarer dette, men ikke tro at noen andre språk er like dumsnille.

    Og hvorfor i alle dager bruker du en multi-byte stringfunksjon for å fjerne desimaler? PHP 4-5 forskjellige funksjoner som alle klarer jobben lettere.

     

    <?php
    //Finne ut når neste fredag er, og nåtid
    $nextfri	 	= strtotime('Next Friday');
    $present	 	= time();	
    
    //Substraktere sekunder til neste fredag, med nåtid (i sekunder)
    $countdown	 	= $nextfri - $present;
    
    //Regnerstykke for og få minutter, timer og dager
    
    $cddays	 	= floor( $countdown/60/60/24 );
    $cdhours		= floor( ( $countdown - ( $cddays*60*60*24 ) ) /60/60 );
    $cdmin		= floor( ( $countdown - ( $cddays*60*60*24 ) - ( $cdhours*60*60 ) ) /60 );
    
    
    //Printer ut svarene
    echo "Det er: $cddays dager, $cdhours timer og $cdmin minutter igjen til neste fredag<br /><br />";
    ?>

  2. <script type="text/javascript">
    function conformEnd(url, msg)
    {
    if ( ! msg )
    {
    	msg = 'Vennligst bekreft:\nKlikk OK for å fortsette?';
    }
    
    if ( confirm( msg ) )
    {
    	document.location.href = url;
    }
    else
    {
    	alert ( 'Ok, ingenting skjedd!' );
    } 
    }
    </script>
    
    <a href="#" onclick="confirmEnd( 'http://url-if-confirmed.com', 'En alternativ beskjed' );">Tekst som beskriver hva som skjer</a>

    Noe slikt kanskje.

  3. Siden jeg skrev litt mer enn de andre, og noe av det jeg nevner ble nevnt tidligere blir det noen gjentagelser her. Rett og slett fordi jeg ikke gidder å fjerne det.

     

    Bruk en eksisterende/lag din egen templateklasse. Blande HTML og PHP ser alltid like grusomt ut.

    Tror heller ikke diskusjon.no er kjempeglad for at du hotlinker til det bildet.

    Forumforsiden skrives i ett ord.

    Ikke avslutt PHP (?>) så fort du er ferdig med noe. Det gjør koden enda styggere.

    <?php 
    if ($rows['status'] == 0) 
    {
    echo "<tr>
    	<td bgcolor='#FFFFFF'><div align='center'><img src='forum/ikon.gif' alt='ikon' width='31' height='31' /></div></td>
    	<td bgcolor='#FFFFFF'><a href='?s=forum/view_topic&id={$rows['id']}&kategori={$_GET['id']}'>" . ucwords($rows['topic']) . "</a><!-- FYSJAMEGEN --><BR><!-- FYSJAMEGEN slutt--></td>
    	<td align='center' bgcolor='#FFFFFF'>{$rows['reply']}</td>
    	<td align='center' bgcolor='#FFFFFF'>{$rows['view']}</td>
    	<td align='center' bgcolor='#FFFFFF'>" . date('d.m.Y H:i:s',$rows['datetime']) . "</td>
    </tr>";
    } 
    ?>

    Lenker skal/bør inneholder full URL, ikke relativ. Les hva W3C skriver om URI, mener det står der.

    bgcolor er vel også en attribut som er på vei ut. "style='background-color: #Farge'" er vel å foretrekke. Aller helst skal slikt kontrolleres av CSS.

    SELECT * FROM foo; er talentløst med mindre du bruker absolutt alle feltene. Bruker du * kjøres det egentlig to spørringer. En for å finne ut hvilke felt du har i tabellen, og en for å hente ut selve dataen. Spesifiserer du hvilke felt du bruker sparer du deg for det.

    Denne burde kanskje stått øverst, men det er jo ingen som har lært noe av det når jeg har skrevet det øverst. Scriptet ditt er åpent for SQL Injections. Aldri stol på brukeren, valider all input.

     

     

    EDIT: egentlig bør du kjøre en test for å se om $_GET['id'] is_numeric().

    if( !is_numeric( $_GET['id'] ) )
    {
    die( "Hut deg hjem" );
    }
    $_GET['id'] = (int)$_GET['id'];

  4. Saltet brukes for at man ikke kan ta den hashede strengen og sjekke den mot rainbow tables. Eller knekke en ved å bruke ordbok (at bruteforcingen sjekker alle ord som ligger i en ordbok mot strengen).

     

    Har aldri vært borti vB, så i hvilke filer du finner innloggingsmetoden vet jeg ikke.

    I IP.Board (IPB) ligger det hvertfall i ./sources/action_public/login.php , og hashen er md5( md5( $salt ) . md5( $passord ) );

  5. $map = $_GET['map'];
    
    $result = mysql_query("SELECT * FROM spillere");
    while ($row2 = mysql_fetch_array($result)){
    $brukere .= $row2['brukernavn'];
    }
    $result = mysql_query("SELECT * FROM map WHERE id = '$map'");
    while ($row = mysql_fetch_array($result)){
    $dbmapdesc = $row['beskrivelse'];
    
    echo "<table border='1' cellpadding='5'";
    echo "<tr><td>" . "<img src='" . "map/" . $map . ".jpg" . "' />" . "</td><td>" . $creatures ."</br>". $brukere . "</td><td valign=top>" . "Description:</br>" . $dbmapdesc . "</td>";
    echo "</tr></table>";
    }
    ?>

×
×
  • Opprett ny...