Gå til innhold

PHP kode som andre kanskje kan bruke


Anbefalte innlegg

  • 3 uker senere...
Videoannonse
Annonse

kommer med en liten enkel kode for de som vil ha et galleri til bilder som egner seg som thumbnails og visningsbilder:

<?php 
$mappe = "MAPPEN MED BILDER";   
$hoyde = "75";   
$bredde = "75";  

$dir = opendir($mappe); 
$unntak = array(".", "..");  

while($print_bilde = readdir($dir)): 

     if ($print_bilde == $unntak[0] || $print_bilde == $unntak[1]): 
     continue; 
     Endif; 

     $print_bilde = $mappe."/".$print_bilde; 
     echo "\n<a href=\"$print_bilde\" target=\"_blank\"><img src=\"$print_bilde\" height=\"$hoyde\" widht=\"$bredde\" border=\"0\" alt=\"$print_bilde\"></a>\n"; 
Endwhile; 

closedir($dir);
?>

 

fint om noen kunne fortsette med å legge inn koder her :thumbup:

 

bildene vises som thumbnails og når du trykker på et bilde så ånes det i et nytt vindu i stor versjon :yes:

 

m.v.h Christian :yes:

Endret av chs89
Lenke til kommentar
  • 3 uker senere...

Regne ut alder på grunnlag av år, måned og dato

 

 

<?php

function getAgeByDate($iDay, $iMonth, $iYear) {
$iTimeStamp = (mktime() - 86400) - mktime(0, 0, 0, $iMonth, $iDay, $iYear);
 $iDays = $iTimeStamp / 86400;
$iYears = floor($iDays / 365.25);
  return $iYears;
}

?>

 

Eksempel:

 

getAgeByDate(28,2,1986) blir til 18

Lenke til kommentar

Har laget et lite script for å legge inn postinger med bilde i en blogg fra mobilen vha mail, og siden det var et par som ville se det legger jeg det ut her.

 

Har editert det litt fra min kjørende versjon (fjernet litt spesifikke metoder for min blogg). Si ifra hvis jeg har gjort noe som gjør at ting ikke kjører...

 

Dette scriptet tar kun høyde for det første vedlegget, men det burde være ganske greit å legge til mulighet for å hente ut flere bilder fra samme mail med funksjonen $antallDeler = count($struct->parts); og et par endringer i itereringen over vedlegg.

 

Have fun :)

 

<?

$ServerName = "{mailserver.com:143/notls}INBOX"; // For å koble til med Imap. Det kan være nødvendig med et punktum rett etter INBOX (INBOX.)
$brukerNavn = "brukernavn"; //Brukernavn til mailen
$passOrd = "passord"; //Passord til mailkontoen
$lovligMail = "lovligmail"; //Den mailadressen man må sende fra for at ting skal legges ut
$katalog = "./bilder/blog/"; //Sti til katalogen der bilder skal lagres



//Kobler til mailboksen
$mbox = imap_open($ServerName,$brukerNavn,$passOrd) or die("Klarte ikke åpne mail, prøv igjen senere");

if ($hdr = imap_check($mbox))
{
$msgCount = $hdr->Nmsgs;
}

$overview=imap_fetch_overview($mbox,"1:$msgCount",0);

$size=sizeof($overview);

for($i=$size-1;$i>=0;$i--){

$val=$overview[$i];
$msg=$val->msgno;
$from=$val->from;
$date=$val->date;
$subj=$val->subject;
$seen=$val->seen;

$from = ereg_replace("\"","",$from);
$from = ereg_replace(" ","",$from);
$lengde = strlen($lovligMail);
$from = substr($from,0,$lengde);

//Sjekker om mailen er fra rett adresse...
if($from == $lovligMail)
{
 $kropp = get_part($mbox, $msg, "TEXT/PLAIN");

 $subj = imap_utf8($subj);
 $kropp = imap_utf8($kropp);

 //Fikser norske bokstaver i subject
 $subj = ereg_replace("Æ", "Æ", $subj);
 $subj = ereg_replace("Ø", "Ø", $subj);
 $subj = ereg_replace("Ã…", "Å", $subj);
 $subj = ereg_replace("æ", "æ", $subj);
 $subj = ereg_replace("ø", "ø", $subj);
 $subj = ereg_replace("Ã¥", "å", $subj);

 //Fikser norske bokstaver i kropp
 $kropp = ereg_replace("Æ", "Æ", $kropp);
 $kropp = ereg_replace("Ø", "Ø", $kropp);
 $kropp = ereg_replace("Ã…", "Å", $kropp);
 $kropp = ereg_replace("æ", "æ", $kropp);
 $kropp = ereg_replace("ø", "ø", $kropp);
 $kropp = ereg_replace("Ã¥", "å", $kropp);


 $struct = imap_fetchstructure($mbox,$msg);
 $contentParts = count($struct->parts);
 $vedlegg = imap_bodystruct($mbox,$msg,2);

 //Lager mer fornuftig format på data
 $datoArray = explode(" ", $date);

 //Formaterer dag
 if($datoArray[0] < 10)
 {
 	$dag = "0";
 	$dag .= $datoArray[0];
 }
 else
 {
 	$dag = $datoArray[0];
 }

 //Formaterer måned
 switch ($datoArray[1])
 {
 	case "Jan":
   $mnd = "01";
 	break;
 	case "Feb":
   $mnd = "02";
 	break;
 	case "Mar":
   $mnd = "03";
 	break;
 	case "Apr":
   $mnd = "04";
 	break;
 	case "May":
   $mnd = "05";
 	break;
 	case "Jun":
   $mnd = "06";
 	break;
 	case "Jul":
   $mnd = "07";
 	break;
 	case "Aug":
   $mnd = "08";
 	break;
 	case "Sep":
   $mnd = "09";
 	break;
 	case "Oct":
   $mnd = "10";
 	break;
 	case "Nov":
   $mnd = "11";
 	break;
 	case "Dec":
   $mnd = "12";
 	break;
 }

 //Formaterer år
 $aar = $datoArray[2];

 //Formaterer tid
 $otid = $datoArray[3];
 $tid = substr($otid,0,2).substr($otid,3,2).substr($otid,6,2);

 //Setter sammen datoen
 $dato = $aar.$mnd.$dag."_".$tid;

 $filNavn = $vedlegg->parameters[0]->value;
 $filType = strrev(substr(strrev($filNavn),0,4));
 $skrivefil = $katalog.$dato.$filType;

 if($filType == ".jpg" && !is_file($skrivefil)) //Dersom vedlegg er en .jpg-fil og filen ikke allerede finnes
 {
 	//Finner innholdet til attachmenten
 	$filInnhold = imap_fetchbody($mbox,$msg,2);
 	$filInnhold = base64_decode($filInnhold);
 	$bilde = imagecreatefromstring($filInnhold); //Lager bilde av rådata fra attachment
 	$skrivefil = $katalog.$dato.$filType; //Lager filnavn

 	//Lager selve bildet
 	imagejpeg($bilde,$skrivefil); //Skriver bildet til disk
 	chmod($skrivefil,0644); //Setter leserettigheter

 	//Her kan man legge til hva man vil gjøre med dataene.
 	//$subj er tittel på mailen
 	//$kropp er body
 	//$skrivefil inneholder sti til bildefilen som er skrevet.
 	//$bilde inneholder rådata for bildet
 	//Det kan være lurt å kjøre en imagedestroy($bilde) etterpå for å sikre at det blir slettet fra minnet.

 }

}

imap_delete($mbox,$msg); //Sletter mail som er behandlet

} //Slutt på for-løkke som tar alle mailene

imap_expunge($mbox); //Tømmer mailboksen
imap_close($mbox); //Lukker mailboksen



function get_mime_type(&$structure)
{
$primary_mime_type = array("TEXT", "MULTIPART","MESSAGE", "APPLICATION", "AUDIO","IMAGE", "VIDEO", "OTHER");

if($structure->subtype)
{
 return $primary_mime_type[(int) $structure->type] . '/' .$structure->subtype;
}
return "TEXT/PLAIN";
}

function get_part($stream, $msg_number, $mime_type, $structure = false, $part_number = false)
{

if(!$structure)
{
$structure = imap_fetchstructure($stream, $msg_number);
}

if($structure)
{
if($mime_type == get_mime_type($structure))
{
 if(!$part_number) {
 	$part_number = "1";
 }
 $text = imap_fetchbody($stream, $msg_number, $part_number);
 if($structure->encoding == 3)
 {
 	return imap_base64($text);
 }
 else if($structure->encoding == 4)
 {
 	return imap_qprint($text);
 }
 else
 {
 return $text;
 }
}

if($structure->type == 1) /* multipart */ {
 while(list($index, $sub_structure) = each($structure->parts))
 {
 	if($part_number) {
   $prefix = $part_number . '.';
 	}
 	$data = get_part($stream, $msg_number, $mime_type, $sub_structure,$prefix .    ($index + 1));
 	if($data) {
   return $data;
 	}
 }
}
}

return false;
}

?>

Lenke til kommentar

Får legge inn et bidrag i denne tråden jeg og. Dette er kode for å kunne laste opp en fil med kommaseparert data, som deretter legges inn i en database. Første linje i fila inneholder navnene på feltene i tabellen. Hver linje etter dette inneholder data. På denne måten kan du f.eks lage en excel fil med data, lagre den som komma separert fil og laste den rett inn i databasen. Veldig greit for å legge inn store mengder data raskt.

 

Koden er skrevet for å utvikle mine egne objektorienterte evner i PHP, og er nok ikke spesielt opptimalisert. Forlag til optimalisering motaes med takk. Den er delt inn i to deler, et script som tar seg av visning av formen for opplasting av fil, samt lesing av denne, og en include fil som inneholder klassene som benyttes. Jeg har også lagt alle database spesifikke ting inn i klassen dblayer. Dette btyr at om du ersatter denne klassen med en som er skrevet for noe annet en mySQL så skal scriptet virke like fint (så sant du bruker de samme funksjonsnavnene og parametere som disse tar).

 

Om noen får bruk for dem, så send en liten hilsen.. :yes:

 

Beklager foresten at kommentaerene er på engelsk, men av gammel vane bruker jeg nesten bestandig engelske kommentarer. indenteringa mi blei desverre også borte.. :blush:

 

Edit: Jeg har klat scriptene for upmysql.php og include.php. Endrer du dette, så husk å endre include og action= i det første scriptet.

 

Scriptet som kalles og tar seg av fila, kalt upmysql.php:

 

<?php

 

/* Upload a file for insertion into MySql */

include ('include.php');

 

 

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

  if($fh=fopen($_FILES['userfile']['tmp_name'], 'r')) {

   /* We may now read the file */

 

   /* First line should contain the field names, seppareted by commas */

   $headerstring=fgets($fh, 1048576);

   $header=explode(',', $headerstring);

   $table=new mytable($header);

   while(!feof($fh)) {

    $tupplestring=fgets($fh, 1048576);

    $tupple=explode(',', $tupplestring);

    $table->addtupple($tupple);

   }

 

   $table->printtable();

  }

 

}

else {

  echo '<form enctype="multipart/form-data" action="upmysql.php" method="post">';

  echo '<input type="hidden" name="MAX_FILE_SIZE" value="100000" />';

  echo 'Input sql file (comma separeted): <input name="userfile" type="file" />';

  echo '<input type="submit" name="upset" value="Upload File" />';

  echo '</form>';

}

?>

 

Scriptet som inneholder klassene der alt blir utført, kalt include.php

<?php

 

class mytable {

 

var $headers;

var $headercount;

 

var $tupples;

var $tupplecount;

 

 

function mytable($headers) {

 

  $this->headers=$headers;

  $this->headercount=count($headers);

  $this->tupples=array();

  $this->tupplecount=0;

}

 

function addtupple($tupple) {

 

  if(count($tupple)!=$this->headercount) {

   return -1; //need exact number of items

  }

 

  $tupple=new mytupple($tupple, $this->headers);

  $this->tupples[]=$tupple;

  $this->tupplecount++;

}

 

function printtable () {

 

  echo "<Table border='2' padding='2'>";

  echo "<tr>";

  foreach ($this->headers as $value) {

   echo "<td>$value</td>";

  }

  echo "</tr>";

  foreach ($this->tupples as $tupple) {

   $tupple->printtableline();

  }

  echo "</table>";

}

 

function inserttodb($tablename) {

 

  foreach($this->tupples as $tupple) {

   $tupple->insert($tablename);

  }

 

}

 

function gettupple($id) {

 

  return $this->tupples[$id]->gettupple();

}

}

 

class mytupple {

 

var $tupple;

 

 

function mytupple($tupple, $headers){

 

  foreach($headers as $key => $value) {

   $this->tupple[$value]=$tupple[$key];

  }

 

}

 

function printtableline() {

 

  echo "<tr>";

  foreach ($this->tupple as $value) {

   echo "<td>$value</td>";

  }

  echo "</tr>";

}

 

function insert($tablename) {

 

  $db=new dblayer();

 

  $insert=$db->insertarray($this->tupple, $tablename); 

  echo $insert;

 

  $db->insert($insert);

  $db->close();

}

 

function gettupple() {

 

  return $this->tupple;

}

 

 

}

 

class dblayer {

 

var $dbhost;

var $dbuser;

var $dbpass;

var $dbname;

 

var $conn;

 

function dblayer() {

 

  $this->dbhost="localhost";

  $this->dbuser="root";

  $this->dbpass="";

  $this->dbname="mytest2";

 

  if(!$conn = mysql_connect($this->dbhost, $this->dbuser)){

   echo "Error connectiong to database. Please try again later.";

   return false; //could not connect

  }

 

 

  $this->conn=$conn;

 

  // Select database

 

  if (!@mysql_select_db($this->dbname, $this->conn)){

   echo "Error connectiong to database. Please try again later.";

   return false;

  }

 

//all is good

return true;

}

 

function insertarray($insertarray, $table) {

 

/* Makes a INSERT string from an array containing

    $key=>$value pairs.

*/

 

  $fields=array_keys($insertarray);

  $insert="insert into $table (";

 

  foreach($fields as $field) {

   $insert.=$field.", ";

   $values.="'".$insertarray[$field]."', ";

  }

 

  // remove trailing commas..

  $insert=substr($insert, 0, -2);

  $values=substr($values, 0, -2);

 

  // put it together

  $insert.=") values(".$values.")";

 

  return $insert;

}

 

function close() {

  mysql_close($conn);

}

 

function select($select) {

 

  $result = @mysql_query($select, $conn);

  return $result;

}

 

function insert($insert) {

 

  $result = @mysql_query($insert, $this->conn);

  return $result;

}

 

function update($update) {

 

  $result = @mysql_query($update, $conn);

  return $result;

}

 

 

}

 

 

?>

Endret av Dagga
Lenke til kommentar
  • 2 måneder senere...

en liten random css sak:

 

<?php 

$x = rand(0,5);
if($x == 1)
{
 echo "<link href=\"ph001.css\" rel=\"stylesheet\" type=\"text/css\">";
}
else if($x == 2)
{
 echo "<link href=\"ph002.css\" rel=\"stylesheet\" type=\"text/css\">";
}
else if($x == 3)
{
 echo "<link href=\"ph003.css\" rel=\"stylesheet\" type=\"text/css\">";
}
else if($x == 4)
{
 echo "<link href=\"ph004.css\" rel=\"stylesheet\" type=\"text/css\">";
}
else if($x == 5)
{
 echo "<link href=\"ph005.css\" rel=\"stylesheet\" type=\"text/css\">";
}	
else
{
 echo "<link href=\"ph001.css\" rel=\"stylesheet\" type=\"text/css\">";

}
?>

 

eneste du trenger er da de forskjellige css filene..

 

resultatet? se det her: http://design.phun-ky.net

Lenke til kommentar
en liten random css sak:

Hvorfor ikke bruke switch/case til det istedenfor masse elseif's?

 

<?php 

$x = rand(0,5);

switch ($x)
{
       case 1:
       echo '<link href="ph001.css" rel="stylesheet" type="text/css">';
       break;

       case 2:
       echo '<link href="ph002.css" rel="stylesheet" type="text/css">';
       break;

       case 3:
       echo '<link href="ph003.css" rel="stylesheet" type="text/css">';
       break;
       
       case 4:
       echo '<link href="ph004.css" rel="stylesheet" type="text/css">';
       break;

       case 5:
       echo '<link href="ph005.css" rel="stylesheet" type="text/css">';
       break;

       default:
       echo '<link href="ph001.css" rel="stylesheet" type="text/css">';
       break;

}
?>

 

Mye ryddigere kode. ;)

 

EDIT: evt. kunne du gjort det slik:

 

<?php

$x = rand(0, 5);
echo '<link href="ph00' . $x . '.css" rel="stylesheet" type="text/css" />';

?>

 

;)

Endret av jorgis
Lenke til kommentar

en liten php-kode highlighter ;)

<div style="
background: #F7F7F7;
border: 1px solid #E5E5E5;
padding: 50px;
">
<?php

if (!@$_GET['laget']) {
?>

<form method="post" action="highlighter.php?laget=1">

Putt inn koden som skal highlites:<br />
<textarea name="kode" rows="25" cols="70"></textarea>
<br /><br />
 <input type="submit" value="Lag kode!" />
 <input type="reset" value="Nullstill" />

</form>

<?php
}
elseif (@$_GET['laget'] == 1) { //når man har trykket på submit(Lag Kode!)

$kode = $_POST['kode']; //tekstboksen som koden skal inn i

$kodeto = (htmlspecialchars(highlight_string($kode, true))); //gjør om html og php koder til tegn og higlighter kodene etterpå

$kodetre = highlight_string($kode, true); //koden som skal vises i tekstfeltet

if(empty($kode)) { //hvis tekstboksen kode er tom skriv feilmeldig
echo "Hva er vitsen i å highlite ingenting?";
}
else { //skriv ut highlight koden og vis hvordan den vil se ut
echo "Lim inn denne koden for å få den highlighta koden på siden din:";
echo "<br /><br /><textarea rows=\"25\" cols=\"60%\">";
echo "$kodeto";
echo "</textarea><br /><br />";
echo "Din kode vil se slik ut når du limer den inn på siden din:<br /><br />";
echo "<div style=\"
background: #FAFAFA;
border: 1px solid #E5E5E5;
font-size: 0.7em;
margin: 5px;
\">";
echo "$kodetre";
echo "</div>";
}
}

?>
</div>

 

filen skal hete "highlighter.php" men du kan skifte navnet veldig enkelt ved å forandre navnet i action taggen

 

Hvis noen spør om jeg er inspirert av Jorgis sin html-highlighter, så er svaret ja :p;)

Lenke til kommentar

 

Hvis noen spør om jeg er inspirert av Jorgis sin html-highlighter, så er svaret ja tongue.gif wink.gif

 

...og for dere som er intressert, er HTMLizeren her, og koden ser slik ut:

 

<?php
$s = $_GET["s"];
if (!$s) {
   $s = "0";
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>the HTMLizer | www.jorgis.com</title>
<style type="text/css" media="screen">
body {
font-family: "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;
font-size:0.8em;
}
code {
font-size:12px;
}
</style>
</head>

<body>
<div style="
   background-color:#F5F5F5;
   border:1px solid #CCCCCC;
   width:600px;
   padding:5px;
   margin:0 auto;
   position:relative;
   ">
<?php
if ($s == "0") {
?>    
   <h1 style="text-align:center;">the HTMLizer</h1>
   <p>Skriv inn HTML-kode du vil ha fixet i tekstboksen under, og trykk "Fix!"</p>
   <form action="index.php?s=1" method="post">
   <textarea name="input" rows="25" cols="71"></textarea><br />
   Syntax highlighting av koden? <input type="checkbox" name="synhl" checked="checked" />  |  <input type="submit" value="Fix!" />
   </form>
<?php
}
elseif ($s == "1") {
   
   //echoing header
   echo "<h1 style=\"text-align:center;\">the HTMLizer</h1>";
   echo "<p>Her er slik koden kommer til å se ut på din side:</p><br /><br />";
   
   //makin's sure everything is nice and not getting parsed
   $input = $_POST["input"];
   $input = htmlspecialchars("$input");
   $input = nl2br($input);
   $input = str_replace("\t", "  ", $input);
   $input = stripslashes($input);
   if (empty($input)) {
       die("Du er nødt til å fylle ut kode i feltet. Det er vel halve grunnen til at jeg laget denne greien?");
   }
   $color = $_POST["synhl"];
   if ($color == "on") {
       //coloring is a steady horse
       
       // fikser highlight på vanlige tagger
       $input = preg_replace("#<(.+?)>#is", "<span style=\"color:#000099;\"><\\1></span>", $input);
       
       // <a>-taggen
       $input = preg_replace("#<a(.+?)>(.+?)</a>#is", "<span style=\"color:#006600;\"><a\\1></span>\\2<span style=\"color:#006600;\"></a></span>", $input);
       
       // <img>-taggen
       $input = preg_replace("#<img(.+?)>#is", "<span style=\"color:#990099;\"><img\\1></span>", $input);
       
       // <input>-taggen
       $input = preg_replace("#<input(.+?)>#is", "<span style=\"color:#FF9900;\"><input\\1></span>", $input);
       
       // <style>
       $input = preg_replace("#<style>(.+?)</style>#is", "<span style=\"color:#990099;\"><style></span>\\1<span style=\"color:#990099\"></style></span>", $input);
       
       // <!-- og -->
       $input = preg_replace("#<!--(.+?)-->#is", "<span style=\"color:#999999;\"><!--\\1--></span>", $input);
       
       // <script> med lukking
       $input = preg_replace("#<script(.+?)>(.+?)</script>#is", "<span style=\"color:#990000;\"><script\\1></span>\\2<span style=\"color:#990000;\"></script&gt</span>", $input);
       
       // <script> uten lukking
       $input = preg_replace("#<script(.+?)>#is", "<span style=\"color:#990000;\"><script\\1></span>", $input);
       
       // <form>
       $input = preg_replace("#<form(.+?)>#is", "<span style=\"color:#FF9900;\"><form\\1></span>", $input);
       
       // </form>
       $input = preg_replace("#</form(.+?)>#is", "<span style=\"color:#FF9900;\"></form\\1></span>", $input);
       
       // <textarea>
       $input = preg_replace("#<(.+?)textarea(.+?)>#is", "<span style=\"color:#FF9900;\"><\\1textarea\\2></span>", $input);
       
       // atributter på vanlige tagger
       function attr($match) {
           return htmlspecialchars("<" . $match[1] . " ")
           . preg_replace("#([a-z\-]+)=(".*?")($| |\n)#", "\\1=<span style=\"color:#0000FF;\">\\2</span>\\3", $match[2])
           . htmlspecialchars(">");
       }
       
       $input = preg_replace_callback("#<([a-z0-9]+) (([a-z\-]+="(.*?)" *)*.*?)>#is", 'attr', $input);
   }
   

   
   //echoing
   echo "<!-- do not copy anything above this line -->\n\r";
   echo "<code>";
   echo "$input \n\r";
   echo "</code>";
   echo "<!-- do not copy anything below this line -->\n\r";
   echo "<br /><br />";
   
   //fixing > and < trouble
   $input = str_replace("<", "&lt;", $input); //fixing <
   $input = str_replace(">", "&gt;", $input); //fixing >
   
   //adding copyright notice
   //$input .= "<!-- Copyright www.jorgis.com -->";
   
   //echoing textbox
   echo "<p>Kopier koden fra tekstboksen under, og lim inn i koden din for å få fin kode med syntax highlighting i din side.
               Vennligst la copyright-teksten ligge. Den vil uansett ikke synes på siden din.</p>
   <br /><br />";
   echo "<textarea rows=\"25\" cols=\"71\">$input</textarea>";
}
?>
</div>
</body>
</html>

 

:)

Lenke til kommentar
  • 2 måneder senere...

Slike tråder er de beste som fins :D og det er synd om denne dør ut, så jeg bumper den litt opp igjen og håper at den vil bli sticky igjen :yes:

 

kan jo legge ved en kode også:

 

en liten passordgenerator hvor lengden bestemmes selv. Jeg vet at det er en slik fra før her men jeg syntes den var litt for tung og gammeldags :roll:

 

her er iallefall koden:

 

<?php 

function lagtilfeldigpassord($lengde) {

$tilfeldig = ''; // Strengen som skal inneholde passordet

$tegn = array_merge( // Rams opp alle tegnene det skal trekkes fra 
 range('a', 'z'), // a-z, små bokstaver 
 range('A', 'Z'), // A-Z, store bokstaver 
 range('0', '9'), // 0-9, tall 
 array('æ', 'ø', 'å', '_', '-') // spesialtegn (mellomrom tas ikke med)
); 

for ($i = 0; $i < $lengde; $i++) { 
   $tilfeldig .= $tegn[array_rand($tegn)]; // Lager passordet 
} 

return $tilfeldig; 
}
?>

 

 

EDIT: Dabear men ta at denne koden lignet veldig på min. Det stemmer ikke at det er den samme, men jeg skjønner at du er mistenkelig. Der har dere iallefall en annen måte å gjøre det på også ;)

Endret av chs89
Lenke til kommentar

Browseravhengige stylesheets.

 

Det er litt irriterende at den mest brukte browseren ikke takler alle kodene til CSS. Men med dette skriptet kan du lage flere forskjellige stylesheets for å få det likt, evt. helt forskjellig i forskjellige browsere.

 

<?php
function getStyles() 
{ 
if (strstr(getenv("HTTP_USER_AGENT"), "MSIE")) { print 'StylesheetForIE.css'; }
else { print 'StylesheetForAndreBrowsere.css'; } 
}
?>

Så henter du dette opp i:
<link href="<?php getStyles();?>" rel="stylesheet" type="text/css">

 

Edit: skriveleifer...

Endret av formannen
Lenke til kommentar

En liten kode for nummerering av linjer i f.eks et php skript som skal vises fram:

 

<?php
if (!@$_GET['steg']) {
?>
<form method="post" action="?steg=1">

Putt inn koden som skal nummereres:<br />
<textarea name="kode" rows="25" cols="70"></textarea>
<br /><br />
 <input type="submit" value="Lag kode!" />
 <input type="reset" value="Nullstill" />

</form>
<?php
}
elseif (@$_GET['steg'] == 1) {
$nr = 1;
$kode = $_POST['kode'];
$kode = htmlspecialchars($kode);
$linjenr = str_replace("\n","<br />",$kode);
$kodeto = explode("<br />", $linjenr);
foreach($kodeto as $linje) {
   $nr = str_pad($nr, 3, "0", STR_PAD_LEFT);
   echo "[" . $nr . "] " . $linje . "<br />";
   $nr++;
 }
}
?>

 

Hvis jeg skriver:

<?php
echo "Hello world";
?>

 

i textareaen så vil outputen bli:

 

[001] <?php 
[002] echo "Hello world"; 
[003] ?>

 

Denne kan sikkert også bli kombinert men highlight scriptet som jeg postet litt lenger opp i denne tråden ;)

Endret av chs89
Lenke til kommentar
Browseravhengige stylesheets.

 

Det er litt irriterende at den mest brukte browseren ikke takler alle kodene til CSS. Men med dette skriptet kan du lage flere forskjellige stylesheets for å få det likt, evt. helt forskjellig i forskjellige browsere.

 

<?php
function getStyles() 
{ 
if (strstr(getenv("HTTP_USER_AGENT"), "MSIE")) { print 'StylesheetForIE.css'; }
else { print 'StylesheetForAndreBrowsere.css'; } 
}
?>

Så henter du dette opp i:
<link href="<?php getStyles();?>" rel="stylesheet" type="text/css">

*kremt*

 

Den koden der søker etter strengen "MSIE" i user-agent-strengen til nettleserene, og siden "MSIE" er brukt av både IE og Opera, faller det litt i fisk. Blir litt på samme måten som at du ikke kan bruke "Mozilla" som kjennetegn, fordi alle bruker det. :p

 

Skal man først lage en browsersniffer som fungerer tilfredsstillende må man gjøre det slik:

 

1. Sjekke om den har strengen "Opera" i seg, og hente ut versjonsnummer.

2. Sjekke om den har strengen "Firefox" i seg, og hente ut versjonsnummer.

3. Sjekke om den har strengen "Gecko" i seg, og sjekke om den har "rv: x.x.x" og også om den har Firefox-versjonsnummer. (tidligere firefox-versjoner hadde ikke "firefox" i UA-strengen, om jeg ikke tar helt feil). Sjekk også om den har både Gecko og Netscape.

4. Sjekk om den har strengen "MSIE" i seg. Dette er KUN om den ikke matcher på noen av de ovenstående.

5. Sjekk for evt. lynx, links, konqueror o.l.

 

EDIT: Den biten som sjekker for firefox kan muligens slåes sammen med biten som sjekker for Gecko, siden Gecko brukes i Firefox, og det dermed ikke vil være noen forskjeller i utseende på siden.

Endret av jorgis
Lenke til kommentar
  • 4 uker senere...
fikk sammen et lite ganske genialt script(om jeg kan si det selv) utav en feiltagelse, skulle egentlig prøve å lage et script for å lese php kode fra filer på andre servere, men under testingen kom jeg på hvorfor det ville blitt "umulig" (setter klammer rundt da jeg ikke er 100% sikker) selvom scriptet mitt ser fila som en hvilken som helst fil og derav ville ha skrevet ut php koden hvis de ligger på samme server så fungerer ikke dette over internett til en annen server for da vil målfila bare printe ut sin respektive html og det endte jeg også opp med:

 

<?php
$url = $_GET['url'];
$fp = @fopen($url, "r");
if($fp){ 
   show_source("$url"); 
   fclose($fp); 
}else{
   echo("$url ble ikke funnet...");
}
?>

 

uansett ser jeg ett vist potensiale f.eks i forum sammenheng når man skal vise en html kode...

Bra kode!

Men jeg har endra den litt:

<?php
if (!isset($_GET['s'])) {
 echo '<form action="' . $_SERVER['PHP_SELF'] . '" method="get">
 URL (Husk: http://):<input type="text" name="s"><br />
 <input type="submit" value="Submit"></form>';
} else {
 $url = $_GET['s'];
 $http = 'http://';
 $g = strpos($url, $http);
 if ($g === false) {
    echo "Vennligst legg til $http i starten!";
    echo ' <a href="' . $_SERVER['HTTP_REFERER'] . '" />Tilbake</a>';
 } else {
   $fp = @fopen($url, "r");
   if ($fp){
     show_source("$url");
     fclose($fp);
   } else {
     echo $url . ' ble ikke funnet... <a href="' . $_SERVER['HTTP_REFERER'] . '">Prøv igjen</a>';
   }
 }
}
?>

Lenke til kommentar

Siden jeg ikke kunne finne noe slikt i tråden, legger jeg ut denen lille koden, selv om den er ganske simpel, for å endre titellen dynamisk hvis du bruker et includescript. Putt dette i <title>:

DINSIDE.NO<?php
$underside = strtoupper($_GET['side']);
$id = strtoupper($_GET['id']);
if (!empty($underside))
{
echo ' :: ';
echo $underside;
}
if (!empty($underside) && !empty($id))
{
echo ' :: ';
echo $id;
}
?>

Vil printe ut DINSIDE.NO :: UNDERSIDE :: ID hvis addressen er www.dinside.no/?side=underside&id=id osv.

Endret av Me sjøl
Lenke til kommentar

Liten kjekk sak du kan include i config fila di.

function dbConnect() {

$host = "localhost";
$user = "USER"
$password = "PASSWORD";
$database = "DATABASE";

       $link_id = mysql_pconnect($host, $user, $password) or die("FATAL ERROR: Could not contact the database server!");
       mysql_select_db($database, $link_id) or die("FATAL ERORR: There was a problem with the database!");
       return $link_id;
}

hver gang du trenger en mysql tilkobling skriver du bare feks,

$mysqlLink = dbConnect();

 

Og en liten funksjon for og spamsikre email adresser litt:

function spamstopp($email) { 
$random.=rand(133,2344); 

 $link ="@REMOVE_".$random."_THIS.";  
 $show = "- AT -"; 

$email2[0]  = preg_replace('/@/', $link, $email); 
$email2[1]  = preg_replace('/@/', $show, $email); 

return $email2;
}

Denne vil da ta emailen og gi deg 2 forskjellige versioner av den tilbake i en array.

 

feks:

$email = spamstopp('[email protected]');

$email[0] vil da inneholde -> foo@REMOVE_2125_THS.foobar.org (hvor tallet er et tilfeldig tall)

$email[1] vil da inneholde -> foo- AT -foobar.org

 

jeg bruker og gjøre:

echo '<a href="mailto:'. $email[0] .'">'. $email[1] .'</a>';

Endret av ZiZe
Lenke til kommentar
Og en liten funksjon for og spamsikre email adresser litt:

function spamstopp($email) { 
$random.=rand(133,2344); 

 $link ="@REMOVE_".$random."_THIS.";  
 $show = "- AT -"; 

$email2[0]  = preg_replace('/@/', $link, $email); 
$email2[1]  = preg_replace('/@/', $show, $email); 

return $email2;
}

Denne vil da ta emailen og gi deg 2 forskjellige versioner av den tilbake i en array.

 

feks:

$email = spamstopp('[email protected]');

$email[0] vil da inneholde -> foo@REMOVE_2125_THS.foobar.org (hvor tallet er et tilfeldig tall)

$email[1] vil da inneholde -> foo- AT -foobar.org

 

jeg bruker og gjøre:

echo '<a href="mailto:'. $email[0] .'">'. $email[1] .'</a>';

Og her er en annen løsning. Vet ikke hvor effektiv den er, men leste ettellerannet sted at det hjelper på :)

function doemail($string) {
preg_match_all('/.{1,1}/s', $string, $matches); // Etterligne PHP5 sin str_split()
$string	=	$matches[0];

$newstring	=	"";
foreach($string as $s) {
 $newstring	.=	"" . ord($s[0]) . ";";
}
return $newstring;
}

Lenke til kommentar

Jeg bruker en snedig sak for å lettere kunne feilsøke i mine script (mySQL).

 

I min config.inc.php-fil setter jeg:

<?php
$debugging=2; //(0 = ingen debugging, 1 = alt, untatt notice, 2 = full debugging)
?>

(har også sql-parameterne i denne filen)

 

Så har jeg en core.inc.php som inkluderes i alle filer:

<?php
require_once("config.inc.php");

$db = mysql_connect($sql_server, $sql_username, $sql_password) or die("Unable to connect to database. Please check your MySQL server, username and password configurations.");
mysql_select_db($sql_database, $db) or die("Unable to select the database. Please check your MySQL database configuration.");

if ($debugging == 2) error_reporting(E_ALL);
if ($debugging == 1) error_reporting(E_ALL ^ E_NOTICE);
else error_reporting(0);

function check_mysql($result, $default_error = false, $default_ok = false, $die = false) {
   global $debugging;
   global $query;

   if (!$result) {
       if ($debugging >= 1) echo $default_error . "<br><br><b>Mysql-error (" . mysql_errno() . "):</b> ". mysql_error() . "<br><br><b>Query:</b> $query";
       else echo $default_error;

       if ($die) die();
   }
   else echo $default_ok;
}
?>

 

Syntax: check_mysql("variabel med resultat", "feilmelding som skal komme opp ved feil, eller false for ingen", "tekst som skal komme opp ved OK, eller false for ingen", "true hvis scriptet skal "die();" ved feil");

 

Når jeg da kjører et query gjør jeg slik:

<?php
require_once("core.inc.php");

$query = "SELECT * FROM table";
$result = mysql_query($query, $db);
check_mysql($result, "An error occured when getting data", false, true);
?>

 

Dette vil med $debugging = 1 eller 2 gi en feilmelding med tekst, nummer og query. I tillegg til PHP-feilmeldinger.

Ved $debugging = 0 vil den ikke gi noen feilmeldinger annet enn den man oppgir i check_mysql(). I tillegg vil scriptet i eksemplet die(); hvis det feiler.

Lenke til kommentar

Det er et par her i forumet som har spurt om hvordan man lister opp filene i en mappe uten at "." og ".." vises. Her er da et eksempel på hvordan man ungår at "." og ".." blir vist når man skal liste opp filene i en mappe:

<?php

$dir = "./";

if($dh = opendir($dir)) {
while(($file = readdir($dh)) !== false) {
 if(($file != '.') and ($file != '..')) {
 	echo '<a href="' . $dir . '/' . $file . '">' . $file . '</a><br />';
 }
}
closedir($dh);
}

?>

 

Edit: Rettet opp en bug i scriptet. Var litt trøtt da jeg skrev det i går.

Endret av Prodigy_
Lenke til kommentar

En funksjon for å gjøre om alt mellom <enti> og </enti> til, ja, entiteter. :)

 

Ganske tidsbesparende hvis du poster mye eksempelkode på siden din.

function html_to_entities($text) {

$text = preg_replace("^(<enti>)\n?([\S|\s]*?)\n?(</enti>)^ie",
"'<enti>' . htmlspecialchars(\"$2\", ENT_QUOTES) . '</enti>'", $text);

$text = str_replace("<enti>", '', $text);
$text = str_replace("</enti>", '', $text);

return $text;
}

Endret av SirIce
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...