Gå til innhold

PHP kode som andre kanskje kan bruke


Anbefalte innlegg

*snip*

9398759[/snapback]


  •  
     
  • Hvordan skal $Host, $User, $Pass og $db ikke være satt (jfr. isset()) i konstruktøren? Burde du ikke heller bruke !empty() ?
    Du burde ikke gi dem standardverdi uansett, når all infoen er påkrevd?
     
     

9411899[/snapback]

 

Som han sa sjølv så er ikkje verdiene påkrevd, vist du ikkje skrive inn noe så skal klassen hente dei som er koda inn eit par linjer over.

9412712[/snapback]

De standardverdiene vil aldri bli brukt av nettopp den grunnen jeg oppga.

 

Interactive mode enabled

<?php
$x = '';                
var_dump(isset($x));
bool(true)
var_dump(empty($x));    
bool(true)

De verdiene han har skrevet inn i det array, er nettopp de verdiene som stå som standardargumenter, for akkurat nå så nulles bare ting ut.

 

 

Dette er problemet med denne tråden, som jeg tror har blitt nevnt tidligere. Kvaliteten på mye av koden er langt under par. Jeg beundre folks vilje til å ville dele. Virkelig, det er helt supert, men dessverre er veldig mye her bare søppel. Nei, ingen tvinger meg til å bruke noe her, men når folk klipper og limer ukritisk herfra inn i produksjonsmiljø, så får vi nye tele2-episoder.

Lenke til kommentar
Videoannonse
Annonse
Her er MySQL-klassen min:

http://norskwebforum.no/pastebin/9460

La den ut på NWFs pastebin, forumet her liker den visst ikke.

Lisensiert under GNU GPL (http://www.gnu.org/licenses/gpl.txt)

Tilbakemeldinger mottas med en takk.

9448823[/snapback]

Ser ut som en flott klasse, selv om jeg stadig lurer litt på hvorfor folk finner opp hjulet ( http://no.php.net/manual/en/ref.pdo.php, http://no.php.net/manual/en/ref.mysqli.php ) nytt (med mindre det er i læringsøyemed).

 

Likte veldig godt Query- og QuoteSmart-metodene din, men jeg synes det burde være en mulighet til å få et numerisk array også fra Fetch, f.eks. ved en konstant: Fetch( mySQL::NUM ) eller Fetch ( self::NUM ) e.l

 

Ellers har jeg veldig lite å utsette på koden, men heller på kodestilen.

a) Egentlig veldig lite fan av camelCase i PHP ettersom språket er case-insensitivt, MEN du er helt konsekvent i metodekallene også, så det er fremoverkompatibelt.

b) Du er inkonsekvent i navngivingen av metodene dine. I mySQL begynner alle metodene med stor forbokstav, mens i mySQLException bruker du små forbokstaver for å følge metodenavnene fra PHPs Exception-klasse. Så lenge PHP er case-insensitivt har ikke dette noe å si, men i fremtiden kan det bli forvirrende for brukerene dine (å forholde seg til "metodenavnestilen" mySQL-klassen i forhold til mySQLException-klassen)

 

Men i bunn og grunn:

Topp klasse som holder meget høy standard og faktisk hører hjemme i denne tråden, i motsetning til en del andre kodesnutter postet her.

Flott dokumentert også!

Lenke til kommentar
  • 1 måned senere...

Har selv lett etter denne koden lenge, og nå fant jeg ut hvordan man kan sjekke om en bruker er logget på eller ikke fra phpBB-forumet sitt.

 

<?php
session_start();

define('IN_PHPBB', true);
$phpbb_root_path = './phpBB2/';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
//
// End session management
//

if($userdata['session_logged_in'])
{
echo('Hi ' . $userdata['username'] . '!');
}
else
{
echo('You are a guest');
}

?>

 

Kilde: http://www.phpbb.com/kb/article/phpbb2-sessions-integration/

Lenke til kommentar
  • 1 måned senere...

Valg av tegnsett har vært/er et problem og særlig for websider, den ultimate løsningen er å konvertere alt til Unicode så her er mitt bidrag, et script som leser alt av filer i en mappe og oppretter en kopi med valgte tegnsett:

<?php
header('Content-Type: text/plain');

/**
* Old character encoding
*/
$oldEncoding = 'ISO-8859-1';

/**
* New character encoding
*/
$newEncoding = 'UTF-8';

/**
* Directory containing files with the old encoding
*/
$dir = './oldDir';

/**
* Path where to save converted files
*
* NOTE: Must be a empty and writable directory
*/
$destDir = './newDir';

$dirIterator = new RecursiveDirectoryIterator($dir);
$iterator = new RecursiveIteratorIterator($dirIterator, RecursiveIteratorIterator::SELF_FIRST);
$count = 0;

if(!is_writable($destDir)) {
throw new Exception('No write permission to destination: ' . $destDir);
}

foreach($iterator as $file) {
$count++;
echo "\n" . str_repeat("\t", $iterator->getDepth()) . $file->getPathname();

if($file->isDir()) {
	continue;
}

if(!$file->isReadable()){
	echo "\nERROR: File not readable!\n\n";
	continue;
}

$path = substr($file->getPathname(), strlen($dir));
$content = file_get_contents($dir . $path);
$newFilepath = $destDir . $path;

if(false === ($converted = iconv($oldEncoding, $newEncoding, $content))) {
	echo "\nERROR: Conversion failed!\n\n";
}

$dirname = dirname($newFilepath);
if(!file_exists($dirname)) {
	mkdir($dirname, 0777, true);
}

file_put_contents($newFilepath, $converted);
}

echo "\n\nTotal: $count\n";

- De dokumenterte variablene i starten er ment å endres.

- ext/iconv er nødt til å være installert.

- Scriptet kan fint kjøres gjennom en webserver, men er nok best å kjøre det gjennom terminalen med sin egen bruker sånn at rettighetene til de nye filene blir riktig.

- Viktig at det gamle tegnsettet er oppgitt riktig, ellers vil resultatet kunne bli ikke bare feil, men ubrukelig.

- Lisens: Public Domain eller BSD License

Lenke til kommentar
  • 4 uker senere...

Har nylig programmert en ekstremt nyttig klasse for administrasjon av output buffering.. Den lar deg legge til uendelig antall funksjoner som skal kjøres, i tillegg til at den lar deg bruke funksjoner med flere argumenter.

Den tillater også at du bruker funksjoner i classer, både gjennom klassen direkte og gjennom objekter.

 

Se mer her:

http://www.phpclasses.org/browse/package/4308.html

Lenke til kommentar
  • 3 uker senere...

Her er en funksjon som lager en Salted SHA hash av en tekststreng. Veldig grei og sikker måte å kryptere passord på, for eksempel.

function hash_ssha($str) {
mt_srand((double)microtime() * 1000000);
$salt = pack('CCCC', mt_rand(), mt_rand(), mt_rand(), mt_rand()); 
return ('{SSHA}' . base64_encode(pack('H*', sha1($str . $salt)) . $salt));
}

Og her er funksjonen for å se om hashen stemmer med en tekststreng:

function validate_ssha($hash, $str) {
$ohash = base64_decode(substr($hash, 6));
$osalt = substr($ohash, 20);
$ohash = substr($ohash, 0, 20);
return ($ohash == pack("H*", sha1($str . $osalt)));
}

Jeg har ryddet opp i og forkortet dem en del, men det er ikke jeg som har laget de originale funksjonene.

Lenke til kommentar
  • 1 måned senere...

Lagde meg ett aldri så lite script som teller antall linjer i tekstfiler, både enkeltfiler og hele mapper med tekstfiler.

 

<?php
// Konfigurasjon:
 $mapper[] = "include"; //legg til så mange mapper med tekstfiler som du vil

 $enkeltfiler[] = "index.php"; //legg til så mange enkeltfiler som du vil
 $enkeltfiler[] = "stilsett.css";

 //mapper
 foreach($mapper as $dir){
 $filer = scandir($dir);
 foreach($filer as $fil) {
 $linjer += count(file("$dir/$fil"));
 $tellfiler++;
 }
 }

 //enkeltfiler
 foreach($enkeltfiler as $fil) {
 $linjer += count(file("$fil"));
 $tellfiler++;
 }

 //output
 echo "Det er $linjer linjer i $tellfiler filer.";

 //Skrevet av Sjur Mathiassen
?>

Endret av Shurom
Lenke til kommentar
  • 1 måned senere...

Lokaltogs geniale CSS-cache

 

Hva gjør scriptet?

Dette scriptet cacher dine CSS-filer, både i ren tekst og gzippet. Du kan lagre flere stilark, og dette scriptet kombinerer alle sammen til ett stilark for å redusere antall requests til serveren. PHP må kompileres med støtte for gzip for at scriptet skal fungere. I tillegg til dette har scriptet støtte for CSS-variabler:

 

@variables{ default-size: 11px; default-font: arial,sans-serif; }

html,body{ font: var(default-size) var(default-font); }

 

Scriptet klipper automatisk bort alle kommentarer og unødvendig whitespace for å redusere filstørrelsen til et absolutt minimum. Dette reduserer lesbarheten, men det fine er at det ikke påvirker originalfilene dine på noen måte! Du kan strukturere CSS-en din på den måten som passer deg best, og dine besøkende vil slippe å laste ned unødvendige data.

 

Bruksanvisning

Legg PHP-filen i samme mappe som stilarkene som du kaller style.*.css (f.eks. style.hovedside.css). Poenget er at de må begynne på "style" og slutte på "css". Kall PHP-filen for hva du vil, gjerne style.php. Du må ha skrivetilgang til mappen scriptet ligger i (CHMOD 0777). Gå deretter inn på scriptet gjennom nettleseren din: http://example.com/css/style.php?r=1. Parameteret r=1 oppdaterer cachen. Det er ikke nødvendig å gjøre dette andre ganger enn når du har oppdatert CSS-filene dine. Legg deretter følgende linje til i head i dokumentet som skal bruke CSS-en, og du er ferdig:

 

<link rel="stylesheet" type="text/css" href="/css/style.php">

 

Hvis du bruker scriptet, er det hyggelig om du sier ifra slik at jeg kan se hvordan det funker i praksis. Mer enn det forlanger jeg ikke. Håper det er nyttig for noen. :)

 

Koden følger:

 

<?php

  /**
   * Lokaltogs geniale CSS-cache
   * www.lokaltog.net
   * 
   * @author Kim Silkebækken <[email protected]>
   * @version 2008-05-08
   */

  $refresh			= isset($_GET['r']);
  $cache_uncompressed	= 'cache.uncompressed.bin';
  $cache_compressed	= 'cache.compressed.bin';

  if ($refresh)
  {
	  /* Read style sheets */
	  $css = '';

	  if ($handle = opendir('.'))
	  {
		  while (false !== ($file = readdir($handle)))
		  {
			  if (substr($file, 0, 5) == 'style' && substr($file, -3) == 'css')
			  {
				  $css .= file_get_contents($file);
			  }
		  }

		  closedir($handle);
	  }

	  /* Replace CSS variables */
	  $css = css_vars($css);

	  /* Clean CSS */
	  $css = preg_replace('`/\*.*\*/`', '', $css);
	  $css = trim(preg_replace_callback('`([^\{]+)\{([^\}]+)\}`is', 'css_cleanup', $css));

	  /* Compress */
	  $compressed = gzcompress($css, 9);

	  file_put_contents($cache_uncompressed, $css);
	  file_put_contents($cache_compressed, "\x1f\x8b\x08\x00\x00\x00\x00\x00". $compressed);
  }

  if (strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== false)
  {
	  $encoding = 'gzip';
  }
  elseif (strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'x-gzip') !== false)
  {
	  $encoding = 'x-gzip';
  }
  else
  {
	  $encoding = false;
  }


  $modified = filemtime($cache_uncompressed);

  if (strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) >= $modified)
  {
	  header('HTTP/1.1 304 Not Modified');
	  header('Last-Modified: '. gmdate('D, d M Y H:i:s', $modified) .' GMT');
	  die();
  }

  if ($encoding)
  {
	  $contents = file_get_contents($cache_compressed);

	  header('HTTP/1.1 200 OK');
	  header('Last-Modified: '. gmdate('D, d M Y H:i:s', $modified) .' GMT');
	  header('Content-Type: text/css; charset=utf-8');
	  header('Content-Encoding: '. $encoding);
	  header('Content-Length: '. strlen($contents));

	  echo $contents;
  }
  else
  {
	  $contents = file_get_contents($cache_uncompressed);

	  header('HTTP/1.1 200 OK');
	  header('Last-Modified: '. gmdate('D, d M Y H:i:s', $modified) .' GMT');
	  header('Content-Type: text/css; charset=utf-8');

	  echo $contents;
  }


  /* Cleanup callback */
  function css_cleanup($matches)
  {
	  $selector	= trim($matches[1]);
	  $properties	= trim($matches[2]);

	  preg_match_all('`([^:]+):([^;]+)[;\n]?`', $properties, $matches);

	  $cleaned_properties = array();
	  foreach ($matches[1] as $key => $property)
	  {
		  $property	= trim($property);
		  $value		= trim($matches[2][$key]);

		  $value		= preg_replace('`[\t\r\n ]+`', ' ', $value);

		  $cleaned_properties[] = "$property:$value";
	  }

	  $properties = join(";", $cleaned_properties);

	  if (!$properties)
	  {
		  return null;
	  }

	  return $selector .'{'. $properties ."}\n";
  }

  /* CSS variables support */
  function css_vars($css)
  {
	  preg_match_all('`@variables[^\{]*\{([^\}]*)\}`is', $css, $matches);
	  preg_match_all('`([^:]+):([^;]+)[;\n]?`is', $matches[1][0], $matches);

	  $var = array();
	  $val = array();

	  foreach ($matches[1] as $k => $v)
	  {
		  $var[] = 'var('. trim($v) .')';
		  $val[] = trim($matches[2][$k]);
	  }

	  $css = preg_replace('`@variables[^\{]*\{([^\}]*)\}`is', '', $css);

	  return str_replace($var, $val, $css);
  }

  ?>

 

Endret av Lokaltog
Lenke til kommentar
  • 4 uker senere...
  • 2 uker senere...

Har ofte irritert meg over print_r() og hvor uoversiktelig output den gir, så jeg laget meg en funksjon for å printe multi-dimensjonale arrays på en oversiktelig måte som funker bra når man man debugger. Den kan også printe ut hva key'en til alle verdiene slik at det blir noe lettere når du skal ha tak i én verdi. Funksjonen har to parametere, først arrayet som skal printes også null eller en avhengig om key'ene skal printes eller ikke.

 

Koden:

 

Array ---> $array
[0] => Array ---> $array[0]
            [0] => "Hei" ---> $array[0][0]
            [1] => "På" ---> $array[0][1]
            [2] => "Deg" ---> $array[0][2]
[1] => Array ---> $array[1]
            [0] => Array ---> $array[1][0]
                  [0] => "Hei" ---> $array[1][0][0]
                  [1] => "På" ---> $array[1][0][1]
                  [2] => "Deg" ---> $array[1][0][2]
            [1] => Array ---> $array[1][1]
                  [0] => Array ---> $array[1][1][0]
                        [0] => Array ---> $array[1][1][0][0]
                              [0] => "Hei" ---> $array[1][1][0][0][0]
                              [1] => "På" ---> $array[1][1][0][0][1]
                              [2] => "Deg" ---> $array[1][1][0][0][2]
                        [1] => Array ---> $array[1][1][0][1]
                              [0] => Array ---> $array[1][1][0][1][0]
                                    [0] => Array ---> $array[1][1][0][1][0][0]
                                          [0] => "Hei" ---> $array[1][1][0][1][0][0][0]
                                          [1] => "På" ---> $array[1][1][0][1][0][0][1]
                                          [2] => "Deg" ---> $array[1][1][0][1][0][0][2]
                                    [1] => Array ---> $array[1][1][0][1][0][1]
                                          [0] => "Hei" ---> $array[1][1][0][1][0][1][0]
                                          [1] => "På" ---> $array[1][1][0][1][0][1][1]
                                          [2] => "Deg" ---> $array[1][1][0][1][0][1][2]
                                    [2] => Array ---> $array[1][1][0][1][0][2]
                                          [0] => "Hei" ---> $array[1][1][0][1][0][2][0]
                                          [1] => "På" ---> $array[1][1][0][1][0][2][1]
                                          [2] => "Deg" ---> $array[1][1][0][1][0][2][2]
                              [1] => Array ---> $array[1][1][0][1][1]
                                    [0] => "Hei" ---> $array[1][1][0][1][1][0]
                                    [1] => "På" ---> $array[1][1][0][1][1][1]
                                    [2] => "Deg" ---> $array[1][1][0][1][1][2]
                  [1] => Array ---> $array[1][1][1]
                        [0] => "Hei" ---> $array[1][1][1][0]
                        [1] => "På" ---> $array[1][1][1][1]
                        [2] => "Deg" ---> $array[1][1][1][2]
[2] => Array ---> $array[2]
            [0] => "Hei" ---> $array[2][0]
            [1] => "På" ---> $array[2][1]
            [2] => "Deg" ---> $array[2][2]
[3] => Array ---> $array[3]
            [0] => "Hei" ---> $array[3][0]
            [1] => "På" ---> $array[3][1]
            [2] => "Deg" ---> $array[3][2]
[4] => "Dudeliattentei" ---> $array[4]


Array
[Grønnsaker] => Array
            [0] => "Gulrot"
            [1] => "Tomat"
            [2] => "Avocado"
[Frukt] => Array
            [0] => "Banan"
            [Jordbær] => Array
                  [0] => "Markjorbær"
                  [1] => "Skogsjordbær"
                  [2] => "Huskaniner"
            [Eple] => Array
                  [0] => "Hardanger"
                  [1] => "Syd-tyrol"
                  [2] => "Røde"
[Digg] => Array
            [0] => "Brus"
            [1] => "Sjokolade"
            [2] => "Alt usunt"

 

 

Output ved bruk av print_r():

 

Array ( [0] => Array ( [0] => Hei [1] => På [2] => Deg ) [1] => Array ( [0] => Array ( [0] => Hei [1] => På [2] => Deg ) [1] => Array ( [0] => Array ( [0] => Array ( [0] => Hei [1] => På [2] => Deg ) [1] => Array ( [0] => Array ( [0] => Array ( [0] => Hei [1] => På [2] => Deg ) [1] => Array ( [0] => Hei [1] => På [2] => Deg ) [2] => Array ( [0] => Hei [1] => På [2] => Deg ) ) [1] => Array ( [0] => Hei [1] => På [2] => Deg ) ) ) [1] => Array ( [0] => Hei [1] => På [2] => Deg ) ) ) [2] => Array ( [0] => Hei [1] => På [2] => Deg ) [3] => Array ( [0] => Hei [1] => På [2] => Deg ) [4] => Dudeliattentei )

 

Endret av Raring
Lenke til kommentar
  • 2 uker senere...
Har ofte irritert meg over print_r() og hvor uoversiktelig output den gir, så jeg laget meg en funksjon for å printe multi-dimensjonale arrays på en oversiktelig måte som funker bra når man man debugger. Den kan også printe ut hva key'en til alle verdiene slik at det blir noe lettere når du skal ha tak i én verdi. Funksjonen har to parametere, først arrayet som skal printes også null eller en avhengig om key'ene skal printes eller ikke.

 

Koden:

 

Array ---> $array
[0] => Array ---> $array[0]
            [0] => "Hei" ---> $array[0][0]
            [1] => "På" ---> $array[0][1]
            [2] => "Deg" ---> $array[0][2]
[1] => Array ---> $array[1]
            [0] => Array ---> $array[1][0]
                  [0] => "Hei" ---> $array[1][0][0]
                  [1] => "På" ---> $array[1][0][1]
                  [2] => "Deg" ---> $array[1][0][2]
            [1] => Array ---> $array[1][1]
                  [0] => Array ---> $array[1][1][0]
                        [0] => Array ---> $array[1][1][0][0]
                              [0] => "Hei" ---> $array[1][1][0][0][0]
                              [1] => "På" ---> $array[1][1][0][0][1]
                              [2] => "Deg" ---> $array[1][1][0][0][2]
                        [1] => Array ---> $array[1][1][0][1]
                              [0] => Array ---> $array[1][1][0][1][0]
                                    [0] => Array ---> $array[1][1][0][1][0][0]
                                          [0] => "Hei" ---> $array[1][1][0][1][0][0][0]
                                          [1] => "På" ---> $array[1][1][0][1][0][0][1]
                                          [2] => "Deg" ---> $array[1][1][0][1][0][0][2]
                                    [1] => Array ---> $array[1][1][0][1][0][1]
                                          [0] => "Hei" ---> $array[1][1][0][1][0][1][0]
                                          [1] => "På" ---> $array[1][1][0][1][0][1][1]
                                          [2] => "Deg" ---> $array[1][1][0][1][0][1][2]
                                    [2] => Array ---> $array[1][1][0][1][0][2]
                                          [0] => "Hei" ---> $array[1][1][0][1][0][2][0]
                                          [1] => "På" ---> $array[1][1][0][1][0][2][1]
                                          [2] => "Deg" ---> $array[1][1][0][1][0][2][2]
                              [1] => Array ---> $array[1][1][0][1][1]
                                    [0] => "Hei" ---> $array[1][1][0][1][1][0]
                                    [1] => "På" ---> $array[1][1][0][1][1][1]
                                    [2] => "Deg" ---> $array[1][1][0][1][1][2]
                  [1] => Array ---> $array[1][1][1]
                        [0] => "Hei" ---> $array[1][1][1][0]
                        [1] => "På" ---> $array[1][1][1][1]
                        [2] => "Deg" ---> $array[1][1][1][2]
[2] => Array ---> $array[2]
            [0] => "Hei" ---> $array[2][0]
            [1] => "På" ---> $array[2][1]
            [2] => "Deg" ---> $array[2][2]
[3] => Array ---> $array[3]
            [0] => "Hei" ---> $array[3][0]
            [1] => "På" ---> $array[3][1]
            [2] => "Deg" ---> $array[3][2]
[4] => "Dudeliattentei" ---> $array[4]


Array
[Grønnsaker] => Array
            [0] => "Gulrot"
            [1] => "Tomat"
            [2] => "Avocado"
[Frukt] => Array
            [0] => "Banan"
            [Jordbær] => Array
                  [0] => "Markjorbær"
                  [1] => "Skogsjordbær"
                  [2] => "Huskaniner"
            [Eple] => Array
                  [0] => "Hardanger"
                  [1] => "Syd-tyrol"
                  [2] => "Røde"
[Digg] => Array
            [0] => "Brus"
            [1] => "Sjokolade"
            [2] => "Alt usunt"

 

 

Output ved bruk av print_r():

 

Array ( [0] => Array ( [0] => Hei [1] => På [2] => Deg ) [1] => Array ( [0] => Array ( [0] => Hei [1] => På [2] => Deg ) [1] => Array ( [0] => Array ( [0] => Array ( [0] => Hei [1] => På [2] => Deg ) [1] => Array ( [0] => Array ( [0] => Array ( [0] => Hei [1] => På [2] => Deg ) [1] => Array ( [0] => Hei [1] => På [2] => Deg ) [2] => Array ( [0] => Hei [1] => På [2] => Deg ) ) [1] => Array ( [0] => Hei [1] => På [2] => Deg ) ) ) [1] => Array ( [0] => Hei [1] => På [2] => Deg ) ) ) [2] => Array ( [0] => Hei [1] => På [2] => Deg ) [3] => Array ( [0] => Hei [1] => På [2] => Deg ) [4] => Dudeliattentei )

 

Du er klar over at du bare kan legge en <pre> rundt print_r, og få perfekt resultat?

Lenke til kommentar
<!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=utf-8" />
<title>Baklengs Gennerator</title>
</head>

<body>
<h2>Denne genneratoren skriver ut teksten baklengs.</h2><br />
<?php
if(isset($_POST['fd'])) {

$streng = $_POST['sg'];

echo "<b>" . "<u>" . strrev($streng) . "</u>" . "</b>";

}
?>
<br />
<br />
<br />
Skriv inn det du vil, skal bli stavet baklengs:<br />
<form action="" method="post">
<input type="text" name="sg" />   <input type="submit" name="fd" value=" Stav! " />
</form>
</body>
</html>

Lenke til kommentar
Klikk for å se/fjerne innholdet nedenfor
<!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=utf-8" />
<title>Baklengs Gennerator</title>
</head>

<body>
<h2>Denne genneratoren skriver ut teksten baklengs.</h2><br />
<?php
if(isset($_POST['fd'])) {

$streng = $_POST['sg'];

echo "<b>" . "<u>" . strrev($streng) . "</u>" . "</b>";

}
?>
<br />
<br />
<br />
Skriv inn det du vil, skal bli stavet baklengs:<br />
<form action="" method="post">
<input type="text" name="sg" />   <input type="submit" name="fd" value=" Stav! " />
</form>
</body>
</html>

Hva var vitsen med å poste den der?

Er jo bare en enkel standard funksjon i det scriptet.

 

Sorry, men hva var vitsen med å poste den der?

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å
×
×
  • Opprett ny...