PT Skrevet 16. mai 2005 Del Skrevet 16. mai 2005 (endret) 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 16. mai 2005 av PT Lenke til kommentar
PT Skrevet 16. mai 2005 Del Skrevet 16. mai 2005 (endret) 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 Endret 16. mai 2005 av PT Lenke til kommentar
jorgis Skrevet 16. mai 2005 Del Skrevet 16. mai 2005 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
PT Skrevet 16. mai 2005 Del Skrevet 16. mai 2005 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 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
Christian_ Skrevet 17. mai 2005 Del Skrevet 17. mai 2005 (endret) 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 17. mai 2005 av chs89 Lenke til kommentar
Beethoven Skrevet 24. mai 2005 Del Skrevet 24. mai 2005 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
Sono Juventino Skrevet 30. mai 2005 Del Skrevet 30. mai 2005 (endret) 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 30. mai 2005 av ett Lenke til kommentar
Zic0 Skrevet 29. juni 2005 Del Skrevet 29. juni 2005 (endret) 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 5. mars 2006 av Zic0 Lenke til kommentar
Mellet Skrevet 29. juni 2005 Del Skrevet 29. juni 2005 (endret) 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 16. april 2006 av Mellet Lenke til kommentar
Magnus Holm Skrevet 1. juli 2005 Del Skrevet 1. juli 2005 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
Magnus Holm Skrevet 1. juli 2005 Del Skrevet 1. juli 2005 (endret) 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 1. juli 2005 av Judofyr Lenke til kommentar
Magnus Holm Skrevet 1. juli 2005 Del Skrevet 1. juli 2005 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
Magnus Holm Skrevet 24. juli 2005 Del Skrevet 24. juli 2005 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
Jankee Skrevet 24. juli 2005 Del Skrevet 24. juli 2005 Dette er ingen request-tråd. Innlegg som går på ønsker har og blir sletta kontinuerlig. Lenke til kommentar
Cucum(r) Skrevet 24. juli 2005 Del Skrevet 24. juli 2005 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
Silverviper Skrevet 25. juli 2005 Del Skrevet 25. juli 2005 (endret) 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 25. juli 2005 av Silverviper Lenke til kommentar
Gjest Slettet+6132 Skrevet 27. august 2005 Del Skrevet 27. august 2005 (endret) 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 27. august 2006 av Slettet+6132 Lenke til kommentar
Fjoggs Skrevet 28. januar 2006 Del Skrevet 28. januar 2006 (endret) 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 28. januar 2006 av Fjoggs Lenke til kommentar
genstian Skrevet 11. februar 2006 Del Skrevet 11. februar 2006 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
dabear Skrevet 11. februar 2006 Del Skrevet 11. februar 2006 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
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå