Gå til innhold

PHP kode som andre kanskje kan bruke


Anbefalte innlegg

En liten snutt til å kryptere ting og tang på forskjellig vis. Nyttig hvis du f.eks. er usikker på om den strengen du nettopp md5()'et egentlig var "petter liker gutter".

<?php

$string =   stripslashes($_POST["string"]);
$method	=	$_POST["method"];

if(!$string) {
$string =	getenv("PATH_INFO");
$string	=	substr_replace($string, "", 0, 1);
}
if(!$method) $method	=	"md5";

$md5_read  =	"MD5 Message-Digest Algorithm";
$sha1_read  =	"US Secure Hash Algorithm 1";
$crc32_read  =	"Cyclic Redundancy Checksum";
$base64_read	=	"Base64 Encode";
$base64_d_read	=	"Base64 Decode";

$selected	=	" selected=\"selected\"";
switch($method) {
case "md5"    :	$method_read = $md5_read; $md5 = $selected; break;
case "sha1"    :	$method_read = $sha1_read; $sha1 = $selected; break;
case "crc32"  	:	$method_read = $crc32_read; $crc32 = $selected; break;
case "base64_encode"	:	$method_read = $base64_read; $base64 = $selected; break;
case "base64_decode"	:	$method_read = $base64_d_read; $base64_d = $selected; break;
}
?>
<h2>Encoder</h2>

<form action="" method="post">
<p><label for="string">String:</label><br />
<input type="text" name="string" id="string" style="margin-bottom: 5px;" value="<?php echo $string; ?>" /><br />
<label for="method">Encryption method:</label><br />
<select name="method" id="method" style="margin-bottom: 5px;">
<?php
echo "	<option value=\"md5\"$md5>$md5_read</option>
<option value=\"sha1\"$sha1>$sha1_read</option>
<option value=\"crc32\"$crc32>$crc32_read</option>
<option value=\"base64_encode\"$base64>$base64_read</option>
<option value=\"base64_decode\"$base64_d>$base64_d_read</option>";
?>
</select><br />
<input type="submit" value=" Encode " /></p>
</form>

<?php
if(isset($string)) {
echo "<h3>$method_read</h3>\n<p>String: <strong>$string</strong><br />
Encoded: <strong>" . $method($string) . "</strong></p>";
}

?>

 

Kan forresten kalles slik:

http://domene/filnavn.php/string_du_vil_kryptere

Endret av PT
Lenke til kommentar
Videoannonse
Annonse

Og noen snertne funksjoner for å mekke skjemaer. Har ikke testet de utrolig godt, og det er sikkert noen mangler her og der. Spytt ut, og jeg fikser det så snart jeg har tid :)

~300 linjer så jeg poster heller en link:

func.form.php

 

EDIT: /me slaps start.no som ikke har sørget for kodefarging av .phps-filer :mad:

Endret av PT
Lenke til kommentar

Encoded: <strong>" . $method($string) . "</strong></p>";

 

vil ikke den snutten bety at jeg kan fylle ut f.eks. "system" i formet (eller sende via POST på en eller annen måte), og deretter skrive inn "rm -rf /" i strengen som skal krypteres? ;) Ikke helt bra uten å sikre seg at det er en "lovlig" funksjon. ;)

Lenke til kommentar

Encoded: <strong>" . $method($string) . "</strong></p>";

 

vil ikke den snutten bety at jeg kan fylle ut f.eks. "system" i formet (eller sende via POST på en eller annen måte), og deretter skrive inn "rm -rf /" i strengen som skal krypteres? ;) Ikke helt bra uten å sikre seg at det er en "lovlig" funksjon. ;)

Vel.. Kan det sikkert :p Ikke helt bra å få slettet innholdet i mappen og det som værre er.. (Er en linux-kommando, så det er vel ingen fare på windows (?))

Har egentlig ikke tenkt noe som helst på sikkerhet i den der siden jeg bare har brukt det lokalt til småting.

Så husk folkens, brukes kun som et lite hjelpemiddel når dere programmerer :)

*sove nå, trøtt*

Lenke til kommentar

En kode som sorterer datoer i et array med datoene lagret slik: DD-MM-YYYY , og skriver ut datoen på norsk:

 

 

<?php 

$arr = array( "12-04-2005", "12-01-2004", "06-07-2008", "24-12-2001"); 
$i = 0; 
foreach ($arr as $dato) { 
   $dato = explode("-" , $dato); 
   $date = mktime(0, 0, 0, $dato[1], $dato[0], $dato[2]); 
   $arr[$i] = $date; 
   $i++; 
} 
rsort($arr); 

foreach ($arr as $time) { 
   $dato .= date("l d. F Y", $time) . "<br />\n"; 
} 

$replace = array( 
   "January" => 'Januar', 
   "February" => 'Februar', 
   "March" => 'Mars', 
   "April" => 'April', 
   "May" => 'Mai', 
   "June" => 'Juni', 
   "July" => 'Juli', 
   "August" => 'August', 
   "October" => 'Oktober', 
   "November" => 'November', 
   "September" => 'September', 
   "December" => 'Desember', 
   "Monday" => 'Mandag', 
   "Tuesday" => 'Tirsdag', 
   "Wednesday" => 'Onsdag', 
   "Thursday" => 'Torsdag', 
   "Friday" => 'Fredag', 
   "Saturday" => 'Lørdag', 
   "Sunday" => 'Søndag',
   "Array" => ''
); 
$dato = strtr($dato, $replace);

echo $dato;
?>

 

 

EDIT laget en funksjon av det også:

 

<?php 

function datosort($arr) { 
$i = 0; 
foreach ($arr as $dato) { 
   $dato = explode("-" , $dato); 
   $date = mktime(0, 0, 0, $dato[1], $dato[0], $dato[2]); 
   $arr[$i] = $date; 
   $i++; 
} 
rsort($arr); 

foreach ($arr as $time) { 
   $dato .= date("l d. F Y", $time) . "<br />\n"; 
} 

$replace = array( 
   "January" => 'Januar', 
   "February" => 'Februar', 
   "March" => 'Mars', 
   "April" => 'April', 
   "May" => 'Mai', 
   "June" => 'Juni', 
   "July" => 'Juli', 
   "August" => 'August', 
   "October" => 'Oktober', 
   "November" => 'November', 
   "September" => 'September', 
   "December" => 'Desember', 
   "Monday" => 'Mandag', 
   "Tuesday" => 'Tirsdag', 
   "Wednesday" => 'Onsdag', 
   "Thursday" => 'Torsdag', 
   "Friday" => 'Fredag', 
   "Saturday" => 'Lørdag', 
   "Sunday" => 'Søndag',
   "Array" => ''
); 
$dato = strtr($dato, $replace);

return $dato;
}

//tester og kaller funksjonen med et array

$arr = array( "12-04-2005", "12-01-2004", "06-07-2008", "24-12-2001");

echo datosort($arr);
?>

Endret av chs89
Lenke til kommentar

Lagde meg en sånn tilfeldig passord ting, som kanskje noen vil få bruk for:

 

<?php

// setter opp en funksjon med argumentet: lengde på passordet!
function tilfeldig($lengde) {
 $tilfeldigTall = rand(0,9999);
 $krypter = sha1($tilfeldigTall);
 $hente = substr("$krypter",5,"$lengde");
 
 return $hente;
} // end tilfeldig

// skriver ut et tilfeldig passord på 10 bokstaver og tall
echo tilfeldig(10);

?>

Lenke til kommentar

Dette er et siste poster skript. Skriptet er laget til phpBB.

Se opp for bugs. Det er ikke testa!

 

<?php
// Endre her
$forummappe = "forum";
$count = 5;
$serverPath = "config.php"; //Må endres!

// Id'er som ikke skal vises. Passer bra hvis man har moderatorforum, stengte tråder etc.
$id1 = "0";
$id2 = "0";
$id3 = "0";
$ikon = "$forummappe/templates/subSilver/images/folder.gif";

//slutt å endre.
include_once("$serverPath");
$db = @mysql_connect("$dbhost", "$dbuser", "$dbpasswd") or die("Kunne ikke koble til forumet");
@mysql_select_db("$dbname", $db) or die("Kunne ikke koble til");

// Ikke rør NOE under her
$result = mysql_query("SELECT
phpbb_topics.topic_title as topic_title,
phpbb_topics.topic_time as topic_time,
phpbb_topics.topic_views as topic_views,
phpbb_topics.topic_replies as topic_replies,
phpbb_topics.forum_id as forum_id,
phpbb_topics.topic_poster as topic_poster,
phpbb_topics.topic_id as topic_id,
phpbb_users.username as username,
phpbb_posts.topic_id as post_id
FROM phpbb_topics, phpbb_users, phpbb_posts
WHERE phpbb_posts.topic_id = phpbb_topics.topic_id AND phpbb_posts.poster_id = phpbb_users.user_id
AND phpbb_topics.forum_id <> '$id1' AND phpbb_topics.forum_id <> '$id2' AND phpbb_topics.forum_id <> '$id3'
ORDER BY topic_last_post_id DESC LIMIT $count");

while ($row = mysql_fetch_array($result))
{
echo "
<img src='" . $ikon . "' alt='[*]'" . $row['topic_title'] . "' title='[*]'>
<a href='$forummappe/viewtopic.php?topic=" . $row['topic_id'] . "&forum=" . $row['forum_id'] . "'>" . $row['topic_title'] . "</a>
<br>
";
}
?>

 

Edit: Hvis skriptet ikke har bugs skal det funke uten redigering hvis det legges innenfor forummappa de. Det krever da at man includerer filen i hovedsiden, eller hvor man skal bruker den.

Endret av ett
Lenke til kommentar
  • 5 uker senere...

IPB kode som viser de siste innleggene

 

<?
/*
****************************************************
*                                                  *
*     Navn: IPB show last posts                    *
*     Beskrivelse: Viser siste innlegg             *
*     Laget av: Zico<[email protected]>        *
*                                                  *
*     Funnet en feil? Kontakt meg på mail.         *
*                                                  *
****************************************************
*/

//Du må endre infoen under:
$host = '';             //Skriv inn hosten din til MySQL. Bruker du en annen port så skriver du host:port.
$db = '';               //Skriv inn navnet på databasen din
$username = '';         //Skriv inn brukernavnet ditt
$password = '';         //Skriv inn passordet ditt
$path = '';             //Stien til IPB forumet ditt
$maxposts = '';         //Skriv inn maks poster som skal vises.
$prefix = '';           //Prefix'en du bruker. UTEN _ (UNDERSTREK). ibf er default.

//Ikke røre her men mindre du vet hva du gjør.
if($host == '' || $db == '' || $username == '' || $maxposts == '' || $prefix == ''){
echo 'Jeg har ikke giddet å konfigurere noe';
} else {
@mysql_connect($host, $username, $password)
or die( mysql_error() );
@mysql_select_db($db)
or die( mysql_error() );
$query = "SELECT " . $prefix . "_posts.topic_id as topicid, " . $prefix ."_posts.author_id as authorid, " . $prefix ."_posts.author_name as authorname, " . $prefix ."_topics.title as topictitle 
FROM " . $prefix ."_posts, " . $prefix ."_topics 
WHERE " . $prefix ."_posts.topic_id=" . $prefix ."_topics.tid
GROUP BY topicid
ORDER BY " . $prefix ."_posts.pid DESC
LIMIT $maxposts";
$sql = @mysql_query($query) 
or die( mysql_error() );
while( $row = mysql_fetch_array($sql) ){
echo '<a href="' . $path . 'index.php?showtopic=' . $row['topicid'] . '&view=findpost&view=getnewpost">' . $row['topictitle'] . '</a> av <a href="' . $path . 'index.php?showuser=' . $row['authorid'] .'">' . $row['authorname'] . '</a><br />';
}
mysql_close();
}
?>

Endret av Zic0
Lenke til kommentar

Besøkende teller:

  • Unike Besøkende Totalt
  • Unike Besøkende idag
  • Database basert

teller.php

<?

 $ip = $_SERVER['REMOTE_ADDR']; //ip
 $dato = strftime("%Y-%m-%d"); //dato

 // Besøkende
 $tell = @mysql_query("SELECT * FROM besøkende");
 if (@mysql_num_rows($tell) <= 0) {
   $unike_besøkende = ("1");
 }
 else {
   $unike_besøkende = mysql_num_rows($tell);
 }
 
 // Idag
 $tell_idag = mysql_query("SELECT * FROM besøkende WHERE dato='$dato'");
 if (mysql_num_rows($tell_idag) <= 0) {
   $unike_idag = ("1");
 }
 else {
   $unike_idag = mysql_num_rows($tell_idag);
 }

 // Legg til
 $legg_til = mysql_query("SELECT * FROM `besøkende` WHERE ip = '$ip'");
 if (mysql_num_rows($legg_til) <= 0) {
   mysql_query("INSERT INTO `besøkende` (ip, dato) VALUES ('$ip', '$dato')");
 }
 
 echo 'Besøkende:' . $unike_besøkende . 'personer<br />';
 echo 'Besøkende Idag:' . $unike_idag . 'personer';
?>

 

SQL tabell (besøkende):

id
ip
dato

Endret av Mellet
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.

Modifisert:

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

Lenke til kommentar
Et enkelt grunnlag for bruk av str_replace() funksjonen.

 

 

<?

$string = "For hver komma, kommer det en ny li, slik som disse tre ";
$stringen = str_replace(",", "</li> \n <li>", $string);

print "<ul> \n\r <li>";
print $stringen;
print "</li> \n\r</ul>";

?>

 

Gir følgende "output" :

 


<ul>
<li>For hver komma</li>
<li>kommer det en ny li</li>
<li>slik som disse tre </li>
</ul>

 

 

Kanskje ikke det mest avanserte, men er til hjelp for de som nettop har startet med php, slik som meg.

Eller bare sånn:

<?

$string = "For hver komma, kommer det en ny li, slik som disse tre ";
$stringen = "<ul> \n\r <li>".str_replace(", ", "</li> \n <li>", $string)."</li> \n\r</ul>";

print $stringen;

?>

 

EDIT: Glemte at det er mellomrom etter komma ;)

Endret av Judofyr
Lenke til kommentar

Her et script om hvordan man kan få linker som dette: http://www.mittdomene.no/index.php?om_meg til å inkludere filen om_meg.php i mappa inc/

<?php
error_reporting(0);
$filnavn = $_SERVER['QUERY_STRING'];
$filendelse = '.php';
$include = 'inc/';
if (!$filnavn)
{
   $filnavn = 'forside';
}
if (!eregi("^((.*)/)", $filnavn) && (file_exists($filnavn . $filendelse)))
{
   include $include . $filnavn . $filendelse;
}
else
{
   include "404.php";
}
?>

Lenke til kommentar
  • 4 uker senere...

Når man programmerer og retter opp feil og gjør endringer, kan det være plagsomt at den ikke henter nyeste versjon. For (nesten) alle nettlesere lagrer innholdet for at det skal gå fortere å gå inn på siden senere. Og da må du ofte trykke "Oppdater" hele tiden. Dette kan løse seg ved noen enkle grep:

// func.php - Eller der hvor du har alle functions
class header {
function past() {
// Date in the past
return header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
}
function mod() {
// always modified
return header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
}
function cc() {
// HTTP/1.1
return header("Cache-Control: no-store, no-cache, must-revalidate");
return header("Cache-Control: post-check=0, pre-check=0", false);
}
function pragma() {
// HTTP/1.0
return header("Pragma: no-cache");
}
}

Der hvor det ikke trengs å oppdatere:

include "func.php";
$oop = new header;
$oop->cc; // Du trenger ikke alle! Tror ikke det er stor forskjell på dem
// $oop->past;
// $oop->mod;
// $oop->pragma;

Lenke til kommentar

Judofyr:

 

Pragma HTTP Headers (and why they don’t work)

 

Many people believe that assigning a Pragma: no-cache HTTP header to a representation will make it uncacheable. This is not necessarily true; the HTTP specification does not set any guidelines for Pragma response headers; instead, Pragma request headers (the headers that a browser sends to a server) are discussed. Although a few caches may honor this header, the majority won’t, and it won’t have any effect.

Lenke til kommentar

Hei,

 

Her er et lite script som gjør det vanskelig for spamboter å stjele e-post adressen din.

 

<?php
// antiharvester.php
//
// Jul 25, 2005
// 2005 Schnabelkase.com
// post at schnabelkase dot com

function asciime($user,$domain,$java){
$myarray = array('mailto:',$user,'@',$domain);
$a=0; 
foreach ($myarray as $new) {
    $i=0; 
  do {
       $codechar =  substr($new,$i,1); 
       $code = ord($codechar); 
       	if($code == ""){ 
   print ""; 
 	} else { 
       	$myval[$a] = $myval[$a]."$code;";  
 	}
   	$i++;
       }
       while($codechar != ""); 
  $a++;
}

$code_tag = $myval[0];
$code_user = $myval[1];
$code_at = $myval[2];
$code_domain = $myval[3];

if ($java == true){    
$email = '<script language="JavaScript">
var domain = "'.$code_domain.'";
var user = "'.$code_user.'";
var recipient = user + "'.$code_at.'" + domain
var makeurl = "'.$code_tag.'" + recipient
document.write(recipient.link(makeurl))
</script><br>';
} else {
$email = "<a href=\"$code_tag$code_user$code_at$code_domain\">$code_user$code_at$code_domain</a>";
}
return $email;
}
?>

 

brukes slik, [email protected] = asciime('min','epost.com',true);, true/false = java tag på/av

 

<?
include 'antiharvester.php';
echo asciime('min','epost.com',true); 
?>

 

Håper noen kan ha nytte av dette

 

Chris

Endret av Silverviper
Lenke til kommentar
  • 1 måned senere...
Gjest Slettet+6132

Et lite script for å sende en melding til en kanal/person på IRC via en eggdrop.

 

 

I eggdropen må du skrive .+host dittnick -telnet!*@* for at tilkoblingen skal kunne virke.

 

EDIT3: Last ned scriptet fra SourceForge.net istedenfor.

Endret av Slettet+6132
Lenke til kommentar
  • 5 måneder senere...

Function for å retunere informasjon fra phpinfo i en array.

 

php5

str_ireplace()

Kan sikker byttes ut med str_replace() uten problemer

 

/**
* Get information about the server this script is running on.
* License GPL
* @author Fjoggen
*/
function getServerInfo() {
       // Get information from phpinfo()
       ob_start();
       phpinfo(INFO_GENERAL);
       $raw = ob_get_contents();
       ob_end_clean();

       // Clean it up
       $lessRaw = strip_tags($raw,'<th><td>');
       $almostRaw = preg_replace('/<td[^>]*>([^<]+)<\/td>/',"<info>\\1</info>",$lessRaw);
       $toMuchInfo = explode("\n",$almostRaw);

       // Sort it and get rid of unwanted content
       $info = array();
       foreach ($toMuchInfo as $oneAtTheTime) {
               if (stristr($oneAtTheTime,'<info>')) {
                       $nearlyFinished = explode("</info><info>",$oneAtTheTime);
                       if ( !empty($nearlyFinished[1]) ) {
                               $threeStepToGo = trim(str_ireplace('<info>','',$nearlyFinished[0]));
                               $twoStepToGo = trim(str_ireplace('</info>','',$nearlyFinished[1]));
                               $serverInfo[$threeStepToGo] = $twoStepToGo;
                       }
               }
       }
       return $serverInfo;
}

 

Jeg skrev denne opprinnelig fordi jeg trengte å vite OS til serveren. I det jeg var ferdig husket jeg konstanten PHP_OS....

 

Jaja, det kanskje noen andre som kan få bruk for den.

 

Forøvrig er kode for å kontrolere OS:

if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
       //Gjør ett eller annet windows relatert som å laste en php extension
       dl('mysqli.dll');
} else {
       // *nix og OS X
       dl('mysqli.so');
}

Endret av Fjoggs
Lenke til kommentar
  • 2 uker senere...

Tok meg tiden til og lage et screen/template system til siden min.

 

Jeg ønsker og dele det med alle.

<?php


class screen {
private $template = 'Default';
private $compiled;

private $template_data = array();
// Uncompiled code and a temp variable for compile()
private $uncompiled;


public function screen() {
 ob_start('ob_gzhandler');
}
public function set_template($template_name) {
 $this->template = $template_name;
}

private function get_html_data($template) {
 global $SYS;
 
 if(!isset($this->template_data[$template])) {
 	$file = fopen($SYS['Path'] . "/templates/{$this->template}/$template.tpl", 'r');
 	$data = fread($file, filesize( $SYS['Path'] ."/templates/{$this->template}/$template.tpl"));
 	fclose($file);
 }
 else {
 	$data = $this->template_data[$template];
 }
 return $data;
}
public function return_html($template, $tags) {
 
 //Get the data
 $this->uncompiled = $this->get_html_data($template);
 // Compile the data
 $data = $this->compile($tags);
 
 return $data;
}

public function add_html($template, $tags) {
 
 $this->uncompiled = $this->get_html_data($template);
 
 $this->compiled .= $this->compile($tags);
 
 
}
private function compile($tags) {

 foreach ($tags as $tag => $data) {
 	$this->uncompiled = str_replace("{" . $tag . "}", $data, $this->uncompiled);
 }
 $data = $this->uncompiled;
 $this->uncompiled = '';
 
 return $data;
}

public function print_screen() {
 echo $this->compiled;
 
}
}
?>

 

EKS:

<?php
$screen = new screen();

$screen->set_template('Min_Template');
$tilhtml = array('title' => 'min side', 'text' => 'blablabla');
$screen->add_html('forside', $tilhtml);

$screen->print_screen();
?>

Du må ha PHP5 og du må redigere "private function get_html_data($template)" til og passe ditt behov.

 

Tilbakemelding ønskes.

Lenke til kommentar

Hotstian: ingen grunn til å bruke php5 på den der, Poenget med klasser er at du skal slippe å redigere enkeltmetoder, men istedet bruke arv («extends screen»). Dessuten bør klassenavnet være beskrivende for funksjonen til klassen.

 

Et alternativ til alle imagecreatefromjpeg/gif/png etc.:

<?php
function imagecreatefrom($picpath)
{
/*'''wrapper so that we don't need that switchshit

creates and calls function out of image extension, but only if that extension 
is allowed and function exists
'''*/
$func = 'imagecreatefrom';
$path = pathinfo($picpath);
$ext  = $path['extension'];
$allowed = array('jpeg', 'jpg' => 'jpeg', 'gif',
                 'png', 'wbmp', 'xbmp', 'xpm');
if(empty($allowed[$ext])) $func .=  $ext;	
else                      $func .= $allowed[$ext];

if(function_exists($func)) return call_user_func($func, $picpath);    

return false;
} ?>

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...