Lite webbdesign frågor.

Avdelningen för webbrelaterad programmering och grafisk design.
Användarvisningsbild
forcevision
Inlägg: 418
Blev medlem: 2007-06-17 11:21:44
Ort: Göteborg

Lite webbdesign frågor.

Inlägg av forcevision » 2007-08-10 23:28:38

Tjabba !!

Kollat runt lite på olika trådar här och alla klagar på frames varför detta ?

Mvh Forcevision
http://www.forcevision.se för företag och privatpersoner.

Användarvisningsbild
madr
Inlägg: 998
Blev medlem: 2004-08-24 11:12:39
Kontakt:

Inlägg av madr » 2007-08-11 0:51:54

Frames är otillgängligt och tillför inte nämnvärt mycket användbarhet. Frames användningsområden sköts numera bäst med hjälp av Ajax.

Med tillgängligt menar jag att det är svårt för skärmläsare att hitta i frames, det är svårt för Google och andra sökmotorer att indexera innehållet, och det är svårt att skapa bokmärken / lägga till i favoriter. I extrema fall flippar dessutom bakåt/framåt-navigeringsknapparna ur.

URL:en blir mer eller mindre värdelös på en sida med frames. Det är också svårare att göra något så enkelt som att skapa en "här är du"-flagga i sidnavigationen.

Att skriva ut en sida med frames är alltid att köpa grisen i säcken.

Content is king, och frames misshandlar innehåll brutalt. Och ännu värre för de stackare som vill ta del av innehållet.
antlion: 3,2 GHz i7 | 32GB | 180GB+120GB SSD SATA III | 2TB SATA III | Dell u2410 | GF 5600ti Arch linux + Win 7

Användarvisningsbild
fantasya
Inlägg: 113
Blev medlem: 2004-11-15 22:35:13

Inlägg av fantasya » 2007-08-11 11:35:32

Ajax löser inte indexering för sökmotorer, bokmärken/favoriter, bakåt och framåt knappen. Ajax är en teknik som gör det möjligt för en klienten att läsa/skriva till servern utan att uppdatera/ladda om sidan.

Läs mer på Wiki:
http: //en.wikipedia.org/wiki/Ajax_(programming)

Användarvisningsbild
HLC
Inlägg: 2146
Blev medlem: 2004-09-25 10:08:21
Ort: Kista

Inlägg av HLC » 2007-08-11 12:11:51

fantasya skrev:Ajax löser inte indexering för sökmotorer, bokmärken/favoriter, bakåt och framåt knappen. Ajax är en teknik som gör det möjligt för en klienten att läsa/skriva till servern utan att uppdatera/ladda om sidan.
Läs vad madr skriver en gång till för han har inte på något sätt sagt något annat. Han nämner klart och tydligt frames användningsområden, att detta då betyder att man slipper problemen med annat är en helt annan sak.
"Broadcom and Apple are the antithesis of free disclosure of information." - Theo de Raadt
"Unconditional love costs extra." - Sun Microsystems

Användarvisningsbild
madr
Inlägg: 998
Blev medlem: 2004-08-24 11:12:39
Kontakt:

Inlägg av madr » 2007-08-11 13:41:38

fantasya skrev:Ajax löser inte indexering för sökmotorer, bokmärken/favoriter, bakåt och framåt knappen. Ajax är en teknik som gör det möjligt för en klienten att läsa/skriva till servern utan att uppdatera/ladda om sidan.

Läs mer på Wiki:
http: //en.wikipedia.org/wiki/Ajax_(programming)
Ajax, rätt implementerat, ställer inte till problem. Det är upp till författaren att undvika fallgroparna.

Per definition är frames en primitiv form av Ajax.
antlion: 3,2 GHz i7 | 32GB | 180GB+120GB SSD SATA III | 2TB SATA III | Dell u2410 | GF 5600ti Arch linux + Win 7

Användarvisningsbild
fantasya
Inlägg: 113
Blev medlem: 2004-11-15 22:35:13

Inlägg av fantasya » 2007-08-13 3:16:33

HLC:
Aj då, läste igenom igen. ::)

madr:
Det var inte meningen, jag läste i morgonmössan.
En fråga bara, hur får du url:en att ändra sig utan att uppdatera hela sidan ?

forcevision
Det är sant att frame inte är det bästa sättet att bygga sidor med, url-identifiering kan nog vara en metod att lösa några problem med framåt/bakåt, url, bokmärken/favoriter.
Exempel

Användarvisningsbild
madr
Inlägg: 998
Blev medlem: 2004-08-24 11:12:39
Kontakt:

Inlägg av madr » 2007-08-13 8:46:21

fantasya skrev:
madr:
Det var inte meningen, jag läste i morgonmössan.
En fråga bara, hur får du url:en att ändra sig utan att uppdatera hela sidan ?
Lugnt.

Jag låter aldrig kritiska sidor, dvs sidor som behöver unik åtkomst laddas via Ajax. Dessa laddas om helt.

Men mycket annat, såsom postning av formulär som inte är i behov av omladdning, kan med fördel hanteras med Ajax istället.
antlion: 3,2 GHz i7 | 32GB | 180GB+120GB SSD SATA III | 2TB SATA III | Dell u2410 | GF 5600ti Arch linux + Win 7

Användarvisningsbild
forcevision
Inlägg: 418
Blev medlem: 2007-06-17 11:21:44
Ort: Göteborg

Inlägg av forcevision » 2007-08-21 9:07:18

Okej men skall man köra hela sidor istället så alltså ej frames ?

Vad menar ni med ajax ?
http://www.forcevision.se för företag och privatpersoner.

Användarvisningsbild
madr
Inlägg: 998
Blev medlem: 2004-08-24 11:12:39
Kontakt:

Inlägg av madr » 2007-08-21 22:47:35

Ska och ska ... valet ligger alltid hos utvecklaren.

Ajax är ett namn på en samling tekniker som är populära idagsläget. Länk ovan.
antlion: 3,2 GHz i7 | 32GB | 180GB+120GB SSD SATA III | 2TB SATA III | Dell u2410 | GF 5600ti Arch linux + Win 7

Användarvisningsbild
forcevision
Inlägg: 418
Blev medlem: 2007-06-17 11:21:44
Ort: Göteborg

Inlägg av forcevision » 2007-08-22 21:52:46

Okej men alla verkar ju vara imot frames. Men kan man namnge en tabell som man kan ändra informationen i så som i frames om ni förstår eller är det iframe som gäller då ?
http://www.forcevision.se för företag och privatpersoner.

Användarvisningsbild
madr
Inlägg: 998
Blev medlem: 2004-08-24 11:12:39
Kontakt:

Inlägg av madr » 2007-08-23 10:18:54

Det är ingetdera som gäller då. Både frames och tabeller är metoder som låg på sin formtopp för tio år sedan, men som i dagsläget är praktexempel på worst practices.

På den moderna webben används CSS för att göra en användbar presentation av HTMLdokument. HTMLDokumenten struktureras upp, i de allra flesta fall med hjälp av DIV element, till något liknande detta:

Kod: Markera allt

<body>
<div id="header"> [...] </div>
<div id="content"> [...] </div>
<div id="sidebar"> [...] </div>
<div id="nav"> [...] </div>
<div id="footer"> [...] </div>
</body>
Därefter används CSS för att ge varje division på sidan ett unikt utseende. Dessa metoder togs fram för att slippa spaghettikoden som tabeller genererade.

Dessa metoder är de som gäller idag. Numera är dessutom sökmotorer optimerade för att sidor strukturerade på detta sätt.

För att endast uppdatera innehållet i #content, utan att ladda om hela dokumentet, är Ajax den lösning som är hetast just nu. Men att ladda om innehållet utan att begära en ny sida leder till samma otillgänglighet som frames.
antlion: 3,2 GHz i7 | 32GB | 180GB+120GB SSD SATA III | 2TB SATA III | Dell u2410 | GF 5600ti Arch linux + Win 7

Användarvisningsbild
forcevision
Inlägg: 418
Blev medlem: 2007-06-17 11:21:44
Ort: Göteborg

Inlägg av forcevision » 2007-08-23 11:21:26

Okej !!

Har en annan fråga här nu. Tog ner en php script som är ett mail script. Ett enkelt sådant men när jag går in i scripten och kollar så fattar jag inte vilken mailserver den använder sig av för att skicka formuläret till mig. Någon som kan hitta det i scripten?

Kod: Markera allt


<?php
error_reporting(7);
/*
//================================================================================
* phphq.Net Custom PHP Scripts *
//================================================================================
:- Script Name: phMailer
:- Version: 1.5
:- Release Date: Jan 27th 2004
:- Last Update: Dec 9th 2005
:- Author: Scott L. <scott@phphq.net> http://www.phphq.net
:- Copyright(c) 2005 All Rights Reserved
:-
:- This script is free software; you can redistribute it and/or modify
:- it under the terms of the GNU General Public License as published by
:- the Free Software Foundation; either version 2 of the License, or
:- (at your option) any later version.
:-
:- This script is distributed in the hope that it will be useful,
:- but WITHOUT ANY WARRANTY; without even the implied warranty of
:- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
:- GNU General Public License for more details.
:-http://www.gnu.org/licenses/gpl.txt
:-
//================================================================================
* Description
//================================================================================
:- phMailer is a very simple php mail script. It can be used on your site as a contact form. This is very helpful if you want your visitors to be
:- able to contact you without them knowing your real email address. On great feature of this script is the ability to allow users
:- to attach multiple files when sending an email directly from your site. Of course, you can disable this feature if you wish.
:- Any file type is accepted as long as they are included in your file extension list. Another popular use for a php email form is 
:- protection against spam bots. Spam, is a major downside of email, and placing your email publicly on your website is asking
:- for spam. Spam bots can take your email address right off your site and add it to thousands of spam databases, resulting in a 
:- never ending supply of spam for you. I coded this script, because I couldn't find a simple mail script that would allow my visitors
:- to send me attachments while keeping my email hidden from spam bots. Enjoy another easy but advanced script from phphq.Net Customs!
//================================================================================
* Setup
//================================================================================
:- To setup this script, simply drop this file anywhere in your website. Then edit the variables in phMailer.php (Variables can be found below this readme).
//================================================================================
* Frequently Asked Questions
//================================================================================
:- Q1: I never receive any mail, but people say they have emailed me through the form.
:-		A1: Try the mailtest.php file that came with this script. If that fails, then mail() is not setup right. Please contact your host
:-		A2: Did you change anything within the file? Are you sure your email is correct?
:-		A3: Try using the form with $allowattach set to 0. It could be your mail server rejecting the mail because of attachments.
:-		A4: If you are on windows, make sure your SMTP is set to your mail server. If you are on Linux, make sure your sendmail path if correct. Again, ask your host.
:-
:- Q2: I never receive any attachments.
:-		A1: Maybe your server has some security against uploading files or sending attachments through mail, check with your host on this issue. This script does send attachments, it's been tested many times on many different platforms and versions of php with safe mode on and off.
:-		A2: Maybe the files people are submitting are too big. Check php.ini for the post_max_size, upload_max_filesize, file_uploads, max_execution_time you may have to check with your host on this.
:-
:- Q3: The page takes forever to load and then times out bringing me to a page cannot be displayed! Stupid script!
:-		A1: This is usually due to a low value in php.ini for max_execution_time. Ask your host to increase the value. Be aware that the time needed depends on the size the file(s) users are sending and the speed of THERE internet connection for uploading the files. If they are on 56k uploading 1mb will take forever, so the value may need to be set very high!
:-		A2: You really can have as many attachments as you want. I tested up to 10 attachments on Windows 2003 Server / XP & Red Hat 9/ Enterprise Linux 3/4. Several reasons could cause this. Your mail server could be rejecting that many at one time, your post_max_size, upload_max_filesize, file_uploads, max_execution_time in php.ini might be set to low or off. Contact your host to resolve this.
:-
:- Q4: How do I edit the colors of the form?
:-		A1: Due to many requests I used CSS instead of hard coding it into the php. I also made it easier to understand. The only bad part is if you are extremely novice you may have problems editing the CSS. Check http://www.w3schools.com/css/default.asp to brush up on CSS to change the colors of this script. The CSS is located near the end of this script.
:-
:- Q5: Can I add more fields for the users to enter information in?
:-		A1: That's the beauty of php! It's open source, you can edit it all you want, change whatever you don't like etc. Just please leave in my copyright. So many times I see my script without it and it makes me sad. 
:-
:- Q6: Dude! Can you add more fields for me? I don't know php!
:-		A1: Maybe, but I do usually charge a fee depending on what you want done. Don't freak out! It's usually a very small one. If I'm having a very good day and feel rich (ha-ha) I might do it for free..
:-
:- Q7: Can I remove your copyright?
:-		A1: I can't really physically stop you. But it's much appreciated by the people that leave it on there. Some people donate me $15-$20 to take it off. If you donate a small amount to me I might just not care as much.
:-		A2: When I go to your site and see this script no matter how much you tried to edit it to hide the fact, I usually know it's mine and will usually report it to your host if I'm not to busy. ~35 down and counting!
:-		A3: So basically unless I say it's ok just leave it on there.. It doesn't hurt you at all does it? Does that little bit of text just make your balls itch? If it's that bad then go ahead...
:-
:- Q8: You never respond to my emails or in your forums (http://www.phphq.net/forums/)!
:-		A1: I know and I'm sorry. I'm a very busy guy. I'm out of town a lot, and at any given time I have several projects going on. I get a lot of emails about this script, not to mention my other ones. Sometimes I just get too many of the same emails.. I usually clear out my inbox every week on a non specific day.
:-		A2: I only understand English. If you do know English but it's very bad please write in your native language and then translate it to English using http://babelfish.altavista.com/babelfish/tr
:-		A3: You will get a much faster and much more detailed response if you write a decent message. "dude me form don't work see it at blah.com what's wrong??!?!" will get no response, ever. Write in detail what the problem is and what you did to try and fix it. Spend a minute on it, and I'll take some of my time to reply.
:-		A4: Please don't speak in h4x0r language. I do understand it but it's very annoying to me. I will most likely just chuckle and delete it.
:-
*/


/*
//================================================================================
* ! ATTENTION !
//================================================================================
:- Please read the above FAQ before giving up or emailing me. It may sort out your problems!
*/


// This will show in the <title></title> and the form name
$websitename="phMailer 1.5"; 

// Allowed file types. Please remember to keep the format of this array, add the file extensions you want WITHOUT the dot. Please also be aware that certain file types may cause harm to your website and/or server.
$allowtypes=array("zip", "rar", "txt", "doc", "jpg", "png", "gif","odt","xml");

// What's your email address? Seperate email addresses with commas for multiple email addresses.
$myemail="email adress";

// What priority should the script send the mail? 1 (Highest), 2 (High), 3 (Normal), 4 (Low), 5 (Lowest).
$priority="1"; 

// Should we allow visitors to attach files? How Many? 0 = Do not allow attachments, 1 = allow only 1 file to be attached, 2 = allow two files etc.
$allowattach="0"; 

// Maximum file size for attachments in KB NOT Bytes for simplicity. MAKE SURE your php.ini can handel it, post_max_size, upload_max_filesize, file_uploads, max_execution_time!
// 2048kb = 2MB,       1024kb = 1MB,     512kb = 1/2MB etc..
$max_file_size="1024";

// Maximum file size for all attachments combined in KB NOT Bytes! MAKE SURE your php.ini can handel it, post_max_size, upload_max_filesize, file_uploads, max_execution_time!
// 2048kb = 2MB,       1024kb = 1MB,     512kb = 1/2MB etc..
$max_file_total="2048";

// Value for the Submit Button
$submitvalue=" Skicka "; 

// Value for the Reset Button
$resetvalue=" Ta bort ";

// Default subject? This will be sent if the user does not type in a subject
$defaultsubject="Ämne!"; 

// Because many requested it, this feature will add a drop down box for the user to select a array of subjects that you specify below. 
// True = Use this feature, False = do not use this feature
$use_subject_drop=false;

// This is an array of the email subjects the user can pick from. Make sure you keep the format of this array or you will get errors!
// Look at http://phphq.net/forums/viewtopic.php?p=836 for examples on how to use this feature.
$subjects=array("Department 1","Department 2","Department 3");

// This is an array of the email address for the array above. There must be an email FOR EACH array value specified above. You can have only 1 department if you want.
//YOU MUST HAVE THE SAME AMMOUNT OF $subjects and $emails or this WILL NOT work correctly! The emails also must be in order for what you specify above!
// You can also seperate the emails by a comma to sent 1 department to multiple email addresses.
$emails=array("dept_1@domain.com","dept_2@domain.com","dept_3@domain.com");

// This is the message that is sent after the email has been sent. You can use html here.
// If you want to redirect users to another page on your website use this: <script type=\"text/javascript\">window.location=\"http://www.YOUR_URL.com/page.html\";</script>

$thanksmessage="Tack för din fråga! Vi återkommer snart med svar"; 
//$thanksmessage="<script type=\"text/javascript\">window.location=\"http://www.YOUR_URL.com/page.html\";</script>"; 
// Uncomment (remove the //'s) above to use redirect



/*
//================================================================================
* ! ATTENTION !
//================================================================================
: Don't edit below this line unless you know some php. Editing some variables or other stuff could cause undeseriable results!!
*/

// Will get the extension of the users file. For some reason trying to get the actual type of the file caused problems with certain browsers.

function get_ext($key) { 
	$key=strtolower(substr(strrchr($key, "."), 1));
	// Cause there the same right?
	$key=str_replace("jpeg","jpg",$key);
	return $key;
}

function phattach($file,$name) {
	global $boundary;
	
	$fp=@fopen($file,"r");
	$str=@fread($fp, filesize($file));
	$str=@chunk_split(base64_encode($str));
	$message="--".$boundary."\n";
	$message.="Content-Type: application/octet-stream; name=\"".$name."\"\n";
	//$message.="Content-disposition: attachment\n"; Thanks goes to someone named Chris (I think, it was awhile ago) for his fix below!
	$message.="Content-disposition: attachment; filename=\"".$name."\"\n"; 
	$message.="Content-Transfer-Encoding: base64\n";
	$message.="\n";
	$message.="$str\n";
	$message.="\n";

	return $message;
}

//Little bit of security from people forging headers. People are mean sometimes :(
function clean($key) {
	$key=str_replace("\r", "", $key);
	$key=str_replace("\n", "", $key);
	$find=array(
		"/bcc\:/i",
		"/Content\-Type\:/i",
		"/Mime\-Type\:/i",
		"/cc\:/i",
		"/to\:/i"
	);
  $key=preg_replace($find,"",$key);
  return $key;
}

// Safe for register_globals=on =)

$error="";
$types="";
$sent_mail=false;

// Do some loopy stuff for the valid file types so people can see what types are valid before they try and upload invalid ones.

$ext_count=count($allowtypes);
$i=0;

foreach($allowtypes AS $extension) {
	
	//Gets rid of the last comma
	
	If($i <= $ext_count-2) {
		$types .="*.".$extension.", ";
	} Else {
		$types .="*.".$extension;
	}
	$i++;
}
unset($i,$ext_count); // why not


// If they post the form start the mailin'!

If($_POST['submit']==true) {
	extract($_POST, EXTR_SKIP);

		// Check the form for errors
	
		If(trim($yourname)=="") { 
			$error.="You did not enter your name!<br />";
		}
		
		If(trim($youremail)=="") { 
			$error.="You did not enter your email!<br />";
		} Elseif(!eregi("^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,4}\$",$youremail)) {
			$error.="Invalid email address.<br />";
		}

		If(trim($emailsubject)=="") {
			$emailsubject=$defaultsubject;
		}

		If(trim($yourmessage)=="") { 
			$error.="You did not enter a message!<br />";
		}
		
		// Verify Attchment info
		
		If($allowattach > 0) {
			
			//Loopish
			
			For($i=0; $i <= $allowattach-1; $i++) {
				
				If($_FILES['attachment']['name'][$i]) {
					
					$ext=get_ext($_FILES['attachment']['name'][$i]);
					$size=$_FILES['attachment']['size'][$i];
					$max_bytes=$max_file_size*1024;
					
					//Check if the file type uploaded is a valid file type. 
					
					If(!in_array($ext, $allowtypes)) {
						
						$error.= "Invalid extension for your file: ".$_FILES['attachment']['name'][$i].", only ".$types." are allowed.<br />";
						
						//Check the size of each file
						
					} Elseif($size > $max_bytes) {
						$error.= "Your file: ".$_FILES['attachment']['name'][$i]." is to big. Max file size is ".$max_file_size."kb.<br />";
					}
					
				} // If Files
				
			} // For

			//Tally the size of all the files uploaded, check if it's over the ammount.
			
  			$total_size=array_sum($_FILES['attachment']['size']);
  			
			$max_file_total_bytes=$max_file_total*1024;
			
			If($total_size > $max_file_total_bytes) {
				$error.="The max size allowed for all your files is ".$max_file_total."kb<br />";
			}
			
		} // If Allowattach

	If($error) {
	
		$display_message=$error;

	} Else {
		
		If($use_subject_drop AND is_array($subjects) AND is_array($emails)) {
			$subject_count=count($subjects);
			$email_count=count($emails);
			
			If($subject_count==$email_count) {
				
				$myemail=$emails[$emailsubject];
				$emailsubject=$subjects[$emailsubject];
				
			}
			
		}
		
		
		$boundary=md5(uniqid(time()));
		
		//Little bit of security from people forging headers. People are mean sometimes :(
		
		$yourname=clean($yourname);
		$yourmessage=clean($yourmessage);
		$youremail=clean($youremail);
		
		//Headers
		
		$headers="From: ".$yourname." <".$youremail.">\n";
		$headers.="Reply-To: ".$yourname." <".$youremail.">\n";
		$headers.="MIME-Version: 1.0\n";
		$headers.="Content-Type: multipart/mixed; boundary=\"".$boundary."\"\n";
		$headers.="X-Sender: ".$_SERVER['REMOTE_ADDR']."\n";
		$headers.="X-Mailer: PHP/".phpversion()."\n";
		$headers.="X-Priority: ".$priority."\n"; 
		$headers.="Return-Path: <".$youremail.">\n";
		$headers.="This is a multi-part message in MIME format.\n";

		//Message
			
		$message = "--".$boundary."\n";
		$message.="Content-Type: text/plain; charset=\"iso-8859-1\"\n";
		$message.="Content-Transfer-Encoding: quoted-printable\n";
		$message.="\n";
		$message.="$yourmessage";
		$message.="\n";

		//Lets attach to something! =)
		
		If($allowattach > 0) {
			
			For($i=0; $i <= $allowattach-1; $i++) {
				
				If($_FILES['attachment']['name'][$i]) {
					
					$message.=phattach($_FILES['attachment']['tmp_name'][$i],$_FILES['attachment']['name'][$i]);
					
				}
				
			} //For
			
		} // If
		
		
		// End the message
		
		$message.="--".$boundary."--\n";
		
		// Send the completed message
		
		If(!mail($myemail,$emailsubject,$message,$headers)) {
			
			Exit("An error has occured, please report this to the website administrator.\n");
			
		} Else {
		
			$sent_mail=true;
			
		}

	} // Else

} // $_POST

/*
//================================================================================
* Start the form layout
//================================================================================
:- Please know what your doing before editing below. Sorry for the stop and start php.. people requested that I use only html for the form..
*/
?>

<!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" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Language" content="en-us" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title><?php echo $websitename; ?> - Powered By phMailer</title>

<style type="text/css">
	body{
		background-color:#FFFFFF;
		font-family: Verdana, Arial, sans-serif;
		font-size: 12pt;
		color: #000000;
	}
	
	.error_message{
		font-family: Verdana, Arial, sans-serif;
		font-size: 11pt;
		color: #FF0000;
	}
	
	.thanks_message{
		font-family: Verdana, Arial, sans-serif;
		font-size: 11pt;
		color: #000000;
	}
	
	a:link{
		text-decoration:none;
		color: #000000;
	}
	a:visited{
		text-decoration:none;
		color: #000000;
	}
	a:hover{
		text-decoration:none;
		color: #000000;
	}
	
	
	.table {
		border-collapse:collapse;
		border:1px solid #000000;
		width:500px;
	}
	
	.table_header{
		border:1px solid #070707;
		background-color:#C03738;
		font-family: Verdana, Arial, sans-serif;
		font-size: 11pt;
		font-weight:bold;
		color: #FFFFFF;
		text-align:center;
		padding:2px;
	}
	
	.attach_info{
		border:1px solid #070707;
		background-color:#EBEBEB;
		font-family: Verdana, Arial, sans-serif;
		font-size: 8pt;
		color: #000000;
		padding:4px;
	}
	
	
	.table_body{
		border:1px solid #070707;
		background-color:#EBEBEB;
		font-family: Verdana, Arial, sans-serif;
		font-size: 10pt;
		color: #000000;
		padding:2px;
	}
	
	
	.table_footer{
		border:1px solid #070707;
		background-color:#C03738;
		text-align:center;
		padding:2px;
	}
	
	
	input,select,textarea {
		font-family: Verdana, Arial, sans-serif;
		font-size: 10pt;
		color: #000000;
		background-color:#AFAEAE;
		border:1px solid #000000;
	}
	
	.copyright {
		border:0px;
		font-family: Verdana, Arial, sans-serif;
		font-size: 9pt;
		color: #000000;
		text-align:right;
	}
	
	form{
		padding:0px;
		margin:0px;
	}
</style>


<script type="text/javascript">
var error="";
e_regex = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,})+$/;

function Checkit(theform) {
	
	if(theform.yourname.value=="") {
		error+="You did not enter your name\n";
	}
	
	if(theform.youremail.value=="") {
		error+="You did not enter your email\n";
	} else if(!e_regex.test(theform.youremail.value)) {
		error+="Invalid email address\n";
	}
		
	if(theform.yourmessage.value=="") {
		error+="You did not enter your message\n";
	}
	
	if(error) {
		alert('**The form returned the following errors:**\n\n' + error);
		error="";
		return false;
	} else {
		return true;
	}
}
</script>


</head>
<body>
<?If($display_message) {?>

<div align="center" class="error_message"><b><?=$display_message;?></b></div>
<br />

<?}?>

<?If($sent_mail!=true) {?>

<form method="post" action="<?=$_SERVER['PHP_SELF'];?>" enctype="multipart/form-data" name="phmailer" onsubmit="return Checkit(this);">
<table align="center" class="table">
	<tr>
		<td colspan="2" class="table_header" width="100%"><?=$websitename;?></td>
	</tr>
	<?If($allowattach > 0) {?>
		<tr>
			<td width="100%" class="attach_info" colspan="2">
				<b>Valid Attachment Types:</b> <?=$types?><br />
				<b>Max size per file:</b> <?=$max_file_size?>kb.<br />
				<b>Max combined file size:</b> <?=$max_file_total?>kb.
			</td>
		</tr>
	<?}?>
	
	<tr>
		<td width="30%" class="table_body">Your Name:</td>
		<td width="70%" class="table_body"><input name="yourname" type="text" size="30" value="<?=stripslashes(htmlspecialchars($yourname));?>" /><span class="error_message">*</span></td>
	</tr>
	<tr>
		<td width="30%" class="table_body">Your Email:</td>
		<td width="70%" class="table_body"><input name="youremail" type="text" size="30" value="<?=stripslashes(htmlspecialchars($youremail));?>" /><span class="error_message">*</span></td>
	</tr>
	<tr>
		<td width="30%" class="table_body">Subject:</td>
		<td width="70%" class="table_body">
		
			<?If($use_subject_drop AND is_array($subjects)) {?>
					<select name="emailsubject" size="1">
						<?while(list($key,$val)=each($subjects)) {?>

							<option value="<?=intval($key);?>"><?=htmlspecialchars(stripslashes($val));?></option>
						
						<?}?>
					</select>
				
			
			<?} Else {?>
				
				<input name="emailsubject" type="text" size="30" value="<?=stripslashes(htmlspecialchars($emailsubject));?>" />
				
			<?}?>
			
		</td>
	</tr>

<?For($i=1;$i <= $allowattach; $i++) {?>
	<tr>
		<td width="30%" class="table_body">Attach File:</td>
		<td width="70%" class="table_body"><input name="attachment[]" type="file" size="30" /></td>
	</tr>
<?}?>

	<tr>
		<td colspan="2" width="100%" class="table_body">Your Message:<span class="error_message">*</span><br />
			<div align="center">
				<textarea name="yourmessage" rows="8" cols="60"><?=stripslashes(htmlspecialchars($yourmessage));?></textarea>
			</div>
		</td>
	</tr>
	<tr>
		<td colspan="2" width="100%" class="table_footer">
			<input type="hidden" name="submit" value="true" />
			<input type="submit" value="<?=$submitvalue;?>" /> &nbsp;
			<input type="reset" value="<?=$resetvalue;?>" />
		</td>
	</tr>
</table>
</form>

<?} Else {?>

<div align="center" class="thanks_message"><?=$thanksmessage;?></div>
<br />
<br />

<?}?>

<?//Please leave this here.. it really dosen't make people hate you or make your site look bad.. ?>
<table class="table" style="border:0px;" align="center">
	<tr>
		<td><div class="copyright">&copy;<a href="http://www.phphq.net?script=phMailer" target="_blank" title="Form Mailer Powered By phMailer <www.phphq.net>">phMailer</a></div></td>
	</tr>
</table>
</body>
</html>

http://www.forcevision.se för företag och privatpersoner.

Användarvisningsbild
Peter Wall
Hedersbit
Inlägg: 7026
Blev medlem: 2002-03-08 0:52:56
Ort: Stockholm
Kontakt:

Inlägg av Peter Wall » 2007-08-23 19:29:14

Diplomerad webbutvecklare
Microsoft Certified Professional Windows 2003
Microsoft Certified Technology Specialist Windows Vista
"Did you know kidneys and applesauce are a delicacy in Sweden? I'm gonna get my applesauce back!"

Titan@Forum
Inlägg: 284
Blev medlem: 2002-04-05 0:51:39

Inlägg av Titan@Forum » 2007-08-23 20:22:01

madr skrev:Jag låter aldrig kritiska sidor, dvs sidor som behöver unik åtkomst laddas via Ajax. Dessa laddas om helt.
Skulle ni kunna ge några exempel på "typer av" kritiska sidor som ni alltid laddar om helt? Och varför?
madr skrev:För att endast uppdatera innehållet i #content, utan att ladda om hela dokumentet, är Ajax den lösning som är hetast just nu. Men att ladda om innehållet utan att begära en ny sida leder till samma otillgänglighet som frames.
Finns det nått bra sätt/knep mot detta (tex att bookmärken funkerar mm)?
Senast redigerad av 1 Titan@Forum, redigerad totalt 2007 gånger.

Användarvisningsbild
forcevision
Inlägg: 418
Blev medlem: 2007-06-17 11:21:44
Ort: Göteborg

Inlägg av forcevision » 2007-08-23 20:37:04

Vad menar du går det ej att skicka i scripten som den är nu ?
http://www.forcevision.se för företag och privatpersoner.

Användarvisningsbild
madr
Inlägg: 998
Blev medlem: 2004-08-24 11:12:39
Kontakt:

Inlägg av madr » 2007-08-24 0:13:54

Titan@Forum skrev:
madr skrev:Jag låter aldrig kritiska sidor, dvs sidor som behöver unik åtkomst laddas via Ajax. Dessa laddas om helt.
Skulle ni kunna ge några exempel på "typer av" kritiska sidor som ni alltid laddar om helt? Och varför?
Ta det här forumet, t ex. Så fort användaren byter forum, tråd et cetera är det viktigt att användaren skall kunna navigera i sin historik med bakåt- och framåtknapparna.

När postning sker, å andra sidan, behöver ingen ny sida skickas. Formuläret postas, en "hold on ... " indikator tänds, och ett fel- eller bekräftningsmeddelande ersätter det. Fördelarna är att användaren aldrig lämnar formulärsidan, och att den klassiska "du skrev fel och får börja om från början!" situationen behöver aldrig uppstå.

Ett annat exempel är en webbshop. När produkter läggs till i varukorgen behöver inte sidan laddas om - meddelandet "vänta medan produkten läggs till" dyker upp, och försvinner när produkten ligger på plats i kundvagnen. Enligt samma princip går det att expandera/minimera varukorgen utan att lämna aktuell sida.

När användaren däremot bläddrar mellan produkter skall ny sida laddas eftersom vi vill låta användaren anväda bakåt- och framåtnavigeringen.

Prisjakt.nnu har löst det där fantastiskt snyggt. Sökningen laddar aldrig om hela sidan, utan sker i takt med att input-fältet ändras. När en produkt undersöks laddas sidan om, precis som god tillgänglighet och användbarhet säger.
Titan@Forum skrev:
madr skrev:För att endast uppdatera innehållet i #content, utan att ladda om hela dokumentet, är Ajax den lösning som är hetast just nu. Men att ladda om innehållet utan att begära en ny sida leder till samma otillgänglighet som frames.
Finns det nått bra sätt/knep mot detta (tex att bookmärken funkerar mm)?
Nej, inget enkelt iaf. Skulle i så fall vara att leka med PHP på något sätt, men i grund och botten skall inte tillgänglighet och användbarhet försvinna pga snygga presentationer IMO.
antlion: 3,2 GHz i7 | 32GB | 180GB+120GB SSD SATA III | 2TB SATA III | Dell u2410 | GF 5600ti Arch linux + Win 7

Användarvisningsbild
Peter Wall
Hedersbit
Inlägg: 7026
Blev medlem: 2002-03-08 0:52:56
Ort: Stockholm
Kontakt:

Inlägg av Peter Wall » 2007-08-24 16:24:05

forcevision skrev:Vad menar du går det ej att skicka i scripten som den är nu ?
Scriptet använder mail() funktionen som hittar sin information i php.ini som du måste konfigurera korrekt (rätt SMTP osv).
Diplomerad webbutvecklare
Microsoft Certified Professional Windows 2003
Microsoft Certified Technology Specialist Windows Vista
"Did you know kidneys and applesauce are a delicacy in Sweden? I'm gonna get my applesauce back!"

Användarvisningsbild
forcevision
Inlägg: 418
Blev medlem: 2007-06-17 11:21:44
Ort: Göteborg

Inlägg av forcevision » 2007-08-24 19:03:04

Men det finns ingen mer php fil ?
http://www.forcevision.se för företag och privatpersoner.

ta_bort_mig

Inlägg av ta_bort_mig » 2007-08-24 20:23:13

php.ini är en konfigurationsfil för php. Den ligger oftast inte (av rimliga skäl) i www-mappen. Vart den ligger beror på vilket operativsystem servern kör. I linux brukar den ligga någonstans i /etc

Kör du en free-host är det värre.

Titan@Forum
Inlägg: 284
Blev medlem: 2002-04-05 0:51:39

Inlägg av Titan@Forum » 2007-08-24 20:45:29

madr skrev:
Titan@Forum skrev:
madr skrev:Jag låter aldrig kritiska sidor, dvs sidor som behöver unik åtkomst laddas via Ajax. Dessa laddas om helt.
Skulle ni kunna ge några exempel på "typer av" kritiska sidor som ni alltid laddar om helt? Och varför?
Ta det här forumet, t ex. Så fort användaren byter forum, tråd et cetera är det viktigt att användaren skall kunna navigera i sin historik med bakåt- och framåtknapparna.

När postning sker, å andra sidan, behöver ingen ny sida skickas. Formuläret postas, en "hold on ... " indikator tänds, och ett fel- eller bekräftningsmeddelande ersätter det. Fördelarna är att användaren aldrig lämnar formulärsidan, och att den klassiska "du skrev fel och får börja om från början!" situationen behöver aldrig uppstå.

Ett annat exempel är en webbshop. När produkter läggs till i varukorgen behöver inte sidan laddas om - meddelandet "vänta medan produkten läggs till" dyker upp, och försvinner när produkten ligger på plats i kundvagnen. Enligt samma princip går det att expandera/minimera varukorgen utan att lämna aktuell sida.

När användaren däremot bläddrar mellan produkter skall ny sida laddas eftersom vi vill låta användaren anväda bakåt- och framåtnavigeringen.

Prisjakt.nnu har löst det där fantastiskt snyggt. Sökningen laddar aldrig om hela sidan, utan sker i takt med att input-fältet ändras. När en produkt undersöks laddas sidan om, precis som god tillgänglighet och användbarhet säger.
Titan@Forum skrev:
madr skrev:För att endast uppdatera innehållet i #content, utan att ladda om hela dokumentet, är Ajax den lösning som är hetast just nu. Men att ladda om innehållet utan att begära en ny sida leder till samma otillgänglighet som frames.
Finns det nått bra sätt/knep mot detta (tex att bookmärken funkerar mm)?
Nej, inget enkelt iaf. Skulle i så fall vara att leka med PHP på något sätt, men i grund och botten skall inte tillgänglighet och användbarhet försvinna pga snygga presentationer IMO.
tack för det utförliga svaret.
Kollade på prisjakt.nu och får hålla med om att dom löst det snyggt. Men dom verkar ha löst det delvis med tillgängligheten (tänker på spara bokmärke) för där ändras url:en samtidigt som man söker och således kan man spara en sökning. Fast upptäckte att fram/bak fungerde mindre bra då varje bokstav i en sökning blir en "egen url".

Användarvisningsbild
forcevision
Inlägg: 418
Blev medlem: 2007-06-17 11:21:44
Ort: Göteborg

Inlägg av forcevision » 2007-08-25 9:33:28

Har en ny fråga om <div>

i mitt html dok ser det ut som följande:

Kod: Markera allt

<div id="div1">Start sidan <Span class="bild"><img src="bild/pil.gif" alt="Pil"/></Span></div>
<div id="div11"></div>
Och i min stilmall ser det ut som följande:

Kod: Markera allt

#div1 {background-color: #FFF0BB; border-bottom: 1px solid #E2DCC6; font-family:verdana; font-size: 12px; color: #000000; position: relative; width: 140px; height: 15px;}
#div11 {background-color: #FFF0BB; font-family:verdana; font-size: 12px; color: #000000; position: relative; width: 820px; height: 500px; padding: 10px; float: right;}
Varför blir div med id=div11 olika långt ifrån div med id=div1 i internet explorer till skillnad i firefox?
Går det att få som dom är lika långt ifrån varandra?[/code]
http://www.forcevision.se för företag och privatpersoner.

Användarvisningsbild
madr
Inlägg: 998
Blev medlem: 2004-08-24 11:12:39
Kontakt:

Inlägg av madr » 2007-08-25 10:43:43

Låter som vår goda vän IE dubbelmarginalsbuggen. prova utöka din stilmall med

Kod: Markera allt

#div11{
display:inline;
}
Du får gärna utveckla frågeställningen litet mer i fortsättningen.
antlion: 3,2 GHz i7 | 32GB | 180GB+120GB SSD SATA III | 2TB SATA III | Dell u2410 | GF 5600ti Arch linux + Win 7

Användarvisningsbild
forcevision
Inlägg: 418
Blev medlem: 2007-06-17 11:21:44
Ort: Göteborg

Inlägg av forcevision » 2007-08-25 10:55:04

Okej sorry va bara svårt att förklara.
Men skall jag bara skriva

Kod: Markera allt

#div11{
display:inline;
}
I stil mallen inget annat ?
http://www.forcevision.se för företag och privatpersoner.

Användarvisningsbild
madr
Inlägg: 998
Blev medlem: 2004-08-24 11:12:39
Kontakt:

Inlägg av madr » 2007-08-25 11:08:10

lägg bara till display:inline till div11 och rapportera vad som händer.
antlion: 3,2 GHz i7 | 32GB | 180GB+120GB SSD SATA III | 2TB SATA III | Dell u2410 | GF 5600ti Arch linux + Win 7

Användarvisningsbild
forcevision
Inlägg: 418
Blev medlem: 2007-06-17 11:21:44
Ort: Göteborg

Inlägg av forcevision » 2007-08-25 15:32:24

Då åkte diven bort allra längst bort till höger i både ie och i ff .
http://www.forcevision.se för företag och privatpersoner.

Skriv svar