submit φορμας

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Άβαταρ μέλους
Khronos
Δημοσιεύσεις: 754
Εγγραφή: 11 Δεκ 2006 14:43
Τοποθεσία: Ηράκλειο

submit φορμας

Δημοσίευση από Khronos » 24 Μάιος 2007 01:39

Γεια σας!
Ηθελα να ρωτήσω κάτι σχετικά με τη σύνταξη του κώδικα σε μια υποβολή φόρμας.
Απο παραδείγματα που είχα διαβάσει, συνήθισα να γράφω τον κώδικα με αυτή τη μορφή:

Κώδικας: Επιλογή όλων

<?php
if &#40;isset&#40;$_POST&#91;'submit'&#93;&#41;&#41;&#123;
?>
<html>
...
...
...
</html>

<?php 
&#125; 
else 
&#123;	
?>
<html>
...
<form action="<?php echo $_SERVER&#91;'PHP_SELF'&#93;?>">
...
</html>
Eτσι ξαναέγραφα ίδιο κώδικα, πχ include header footer κτλ.

Ηθελα να κάνω validation της φόρμας με php και βρήκα το παρακάτω παράδειγμα:

Κώδικας: Επιλογή όλων

<html>
<head>
<title>Contact Form</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>

<body>
<?php

$errmsg  = ''; // error message
$sname   = ''; // sender's name
$email   = ''; // sender's email addres
$subject = ''; // message subject
$message = ''; // the message itself

if&#40;isset&#40;$_POST&#91;'send'&#93;&#41;&#41;
&#123;
	$sname   = $_POST&#91;'sname'&#93;;
	$email   = $_POST&#91;'email'&#93;;
	$subject = $_POST&#91;'subject'&#93;;
	$message = $_POST&#91;'message'&#93;;
	
	if&#40;trim&#40;$sname&#41; == ''&#41;
	&#123;
		$errmsg = 'Please enter your name';
	&#125; 
	else if&#40;trim&#40;$email&#41; == ''&#41;
	&#123;
		$errmsg = 'Please enter your email address';
	&#125;
	else if&#40;!isEmail&#40;$email&#41;&#41;
	&#123;
		$errmsg = 'Your email address is not valid';
	&#125;
	else if&#40;trim&#40;$subject&#41; == ''&#41;
	&#123;
		$errmsg = 'Please enter message subject';
	&#125;
	else if&#40;trim&#40;$message&#41; == ''&#41;
	&#123;
		$errmsg = 'Please enter your message';
	&#125;
	
	if&#40;$errmsg == ''&#41;
	&#123;
		if&#40;get_magic_quotes_gpc&#40;&#41;&#41;
		&#123;
			$subject = stripslashes&#40;$subject&#41;;
			$message = stripslashes&#40;$message&#41;;
		&#125;	
		
		// the email will be sent here
		$to      = "fdsfa@fdsafr.gr";
		
		// the email subject &#40; modify it as you wish &#41;
		$subject = '&#91;Contact&#93; &#58; ' . $subject;
		
		// the mail message &#40; add any additional information if you want &#41;
		$msg     = "From &#58; $sname \r\n " . $message;
		
		mail&#40;$to, $subject, $msg, "From&#58; $email\r\nReply-To&#58; $email\r\nReturn-Path&#58; $email\r\n"&#41;;
?>
<div align="center">Your message is sent. Click <a href="index.php">here</a> to 
  go back to homepage </div>
<?php
	&#125;
&#125;


if&#40;!isset&#40;$_POST&#91;'send'&#93;&#41; || $errmsg != ''&#41;
&#123;
?>
<div align="center" class="errmsg"><?=$errmsg;?></div>
<form  method="post" name="msgform" id="msgform">
  <table width="500" border="0" align="center" cellpadding="2" cellspacing="1" class="maincell">
    <tr> 
      <td width="106">Your Name</td>
      <td width="381"><input name="sname" type="text" class="box" id="sname" size="30" value="<?=$sname;?>"></td>
    </tr>
    <tr> 
      <td>Your Email</td>
      <td><input name="email" type="text" class="box" id="email" size="30" value="<?=$email;?>"></td>
    </tr>
    <tr> 
      <td>Subject</td>
      <td><input name="subject" type="text" class="box" id="subject" size="30" value="<?=$subject;?>"></td>
    </tr>
    <tr> 
      <td>Message</td>
      <td><textarea name="message" cols="55" rows="10" wrap="OFF" class="box" id="message"><?=$message;?></textarea></td>
    </tr>
    <tr align="center"> 
      <td colspan="2"><input name="send" type="submit" class="bluebox" id="send" value="Send Message" /> <!--onclick="return checkForm&#40;&#41;;"--></td>
    </tr>
    <tr align="center"> 
      <td colspan="2">&nbsp;</td>
    </tr>	
    
  </table>
</form>
<?php
&#125;

function isEmail&#40;$email&#41;
&#123;
	return&#40;preg_match&#40;"/^&#91;-_.&#91;&#58;alnum&#58;&#93;&#93;+@&#40;&#40;&#40;&#91;&#91;&#58;alnum&#58;&#93;&#93;|&#91;&#91;&#58;alnum&#58;&#93;&#93;&#91;&#91;&#58;alnum&#58;&#93;-&#93;*
&#91;&#91;&#58;alnum&#58;&#93;&#93;&#41;\.&#41;+&#40;ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|
be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|
com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk
|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht
|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li
|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu
|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org
|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh
|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug
|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw&#41;$|&#40;&#40;&#91;0-9&#93;&#91;0-9&#93;?|&#91;0-1&#93;
&#91;0-9&#93;&#91;0-9&#93;|&#91;2&#93;&#91;0-4&#93;&#91;0-9&#93;|&#91;2&#93;&#91;5&#93;&#91;0-5&#93;&#41;\.&#41;&#123;3&#125;&#40;&#91;0-9&#93;&#91;0-9&#93;?|&#91;0-1&#93;&#91;0-9&#93;&#91;0-9&#93;|&#91;2&#93;&#91;0-4&#93;&#91;0-9&#93;|
&#91;2&#93;&#91;5&#93;&#91;0-5&#93;&#41;&#41;$/i"
			,$email&#41;&#41;;
&#125;
?>

</body>
</html>
όπου έχει όλο τον κώδικα μέσα στο body, και στη φόρμα δεν έχει βάλει action.
Το έγραψα και με τον τρόπο που έχω μάθει αλλά φυσικά γίνεται διπλάσιο σε όγκο.

Ποιά είναι η πιο σωστή σύνταξη του κώδικα?
Ευχαριστώ

Άβαταρ μέλους
billt
Δημοσιεύσεις: 1175
Εγγραφή: 20 Φεβ 2004 16:17
Τοποθεσία: Θεσσαλονίκη

submit φορμας

Δημοσίευση από billt » 24 Μάιος 2007 01:59

Den exei simasia pou einai o kodikas php -toulaxiston autes oi entoles pou xrisimopoieis- sto paradeigma.

Otan den iparxei action sti forma ginete apostoli dedomenon pros tin idia selida pou einai i forma.

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης