Kom ihåg mig?
Home Menu

Menu


Problem med text på bild - PHP

Ämnesverktyg Visningsalternativ
Oläst 2006-08-04, 21:13 #1
rille77s avatar
rille77 rille77 är inte uppkopplad
Medlem
 
Reg.datum: Dec 2003
Inlägg: 213
rille77 rille77 är inte uppkopplad
Medlem
rille77s avatar
 
Reg.datum: Dec 2003
Inlägg: 213
Har stött på ett underligt fel med ett kontaktformulär i PHP.
Jag är absolut ingen PHP guru utan brukar hålla på med ASP så jag har absolut ingen aning om vad som kan vara galet här.

Jag har ett kontaktformulär där man ska fylla i en verifieringskod innan man skickar mailet som skydd mot spam, koden skrivs på en .png bild som visas på sidan.

Problemet är att koden skrivs inte på bilden första gången sidan laddas men om man däremot uppdaterar sidan så funkar allt som det ska.
Skulle vara tacksam för hjälp.

Kod:
session_start();
define("TILL_ADRESS", "[email protected]");
 
function SetVerificationCode() {
 srand((double)microtime()*1000000);
 $string = md5(rand(0,9999));
 $verification_code = strtoupper(substr($string, 17, 5));
 $_SESSION['verification_code'] = $verification_code;
 return $verification_code;
}
 
if ($_GET['img'] == 'verificationcode') {
 header("Content-type: image/png");
 $im = ImageCreate(45, 20);
 $white = ImageColorAllocate($im, 0, 0, 0);
 $black = ImageColorAllocate($im, 255, 255, 255);
 SetVerificationCode();
 ImageFill($im, 0, 0, $black);
 ImageString($im, 4, 2, 2, $verification_code, $white);
 ImagePNG($im);
 ImageDestroy($im);
 exit;
}
 
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
 $namn = $_POST['namn'];
 $epost = $_POST['epost'];
 $meddelande = $_POST['meddelande'];
 
 if ($_SESSION['verification_code'] == '')
 die("Verifieringskod inte satt, avslutar.");
 if ($_POST['kod'] != $_SESSION['verification_code']) {
 $err = "Felaktig verifieringskod. Var vänlig försök igen.";
 $field = "kod";
 } else {
 //Skydda från sk. e-mail injection via mail headers
 if ($epost != '' && preg_match ( "/^[-\w.]+@([A-z0-9][-A-z0-9]+\.)+[A-z]{2,4}$/", $epost) ) {
  if(isset($namn)) {
  $text = "\nNamn: " . $namn;
  $text .= "\nE-post: " . $epost;
  $text .= "\nMeddelande: " . $meddelande;
  mail(TILL_ADRESS, "Kontaktformulär hemsida: " . $namn, $text, "From: <$epost>"); 
  
  SetVerificationCode();
  
  header("Location: /");
  }
 } else {
  $err = "Du har angett en ogiltig e-postadress!";
  $field = "ePost";
 }
 }
}
rille77 är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 16:19.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017