Επεξεργασία Φόρμας.

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

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

Απάντηση
Άβαταρ μέλους
nik_the_Greek
Δημοσιεύσεις: 9
Εγγραφή: 06 Μάιος 2004 10:27
Τοποθεσία: Greece
Επικοινωνία:

Επεξεργασία Φόρμας.

Δημοσίευση από nik_the_Greek » 08 Μαρ 2006 20:23

Γεια σας φίλοι.
Εχω μια φορμα παραγγελίας η οποία στέλνει τα αποτελέσματα σε 2 mail. Αυτο που θελω ειναι :
1ον. Η φορμα να στέλνει πρωτα τα στοιχεία της φορμας στον αποστολέα για επιβεβαιωση του email του και με σχετικο απαντητικο λινκ να μπορει τοτε να επιβεβαιωσει την ταυτοτητα του.
2ον. Να εισαγω security εικονα στο τελος της φορμας για αποφυγή να εισαγουν στοιχεια οι spammers .
Εψαξα στο δικτυο για kapoio script αλλα δυστυχως δεν βρηκα τιποτις.

Καθε βοηθεια εκτιμαται.

Άβαταρ μέλους
ThyClub
Honorary Member
Δημοσιεύσεις: 5312
Εγγραφή: 17 Νοέμ 2003 00:21
Τοποθεσία: Hell's Kitchen
Επικοινωνία:

Επεξεργασία Φόρμας.

Δημοσίευση από ThyClub » 08 Μαρ 2006 20:39

Ο παρακάτω κώδικας εμφανίζει μια εικόνα για να γίνει input σε ένα πεδίο:
Απηθήκευση σαν imageClass.php

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

<?PHP
class SecurityImage &#123;
	var $oImage;
	var $iWidth;
	var $iHeight;
	var $iNumChars;
	var $iNumLines;
	var $iSpacing;
	var $sCode;

	function SecurityImage&#40;$iWidth = 150, $iHeight = 30, $iNumChars = 5, $iNumLines = 30&#41; &#123;
		// get parameters
		$this->iWidth = $iWidth;
		$this->iHeight = $iHeight;
		$this->iNumChars = $iNumChars;
		$this->iNumLines = $iNumLines;

		// create new image
		$this->oImage = imagecreate&#40;$iWidth, $iHeight&#41;;

		// allocate white background colour
		imagecolorallocate&#40;$this->oImage, 255, 255, 255&#41;;

		// calculate spacing between characters based on width of image
		$this->iSpacing = &#40;int&#41;&#40;$this->iWidth / $this->iNumChars&#41;;
	&#125;

	function DrawLines&#40;&#41; &#123;
		for &#40;$i = 0; $i < $this->iNumLines; $i++&#41; &#123;
			$iRandColour = rand&#40;190, 250&#41;;
			$iLineColour = imagecolorallocate&#40;$this->oImage, $iRandColour, $iRandColour, $iRandColour&#41;;
			imageline&#40;$this->oImage, rand&#40;0, $this->iWidth&#41;, rand&#40;0, $this->iHeight&#41;, rand&#40;0, $this->iWidth&#41;, rand&#40;0, $this->iHeight&#41;, $iLineColour&#41;;
		&#125;
	&#125;

	function GenerateCode&#40;&#41; &#123;
		// reset code
		$this->sCode = '';

		// loop through and generate the code letter by letter
		for &#40;$i = 0; $i < $this->iNumChars; $i++&#41; &#123;
			// select random character and add to code string
			$this->sCode .= chr&#40;rand&#40;65, 90&#41;&#41;;

			/********************************************/
			/* alternatively replace the line above     */
			/* with the following code to enable        */
			/* support for arbitrary characters         */
			/********************************************/

			// characters to use
			// $aChars = array&#40;'A', 'B', 'C', '3', 'g'&#41;;

			// get number of characters
			// $iTotal = count&#40;$aChars&#41; - 1;

			// get random index
			// $iIndex = rand&#40;0, $iTotal&#41;;

			// add selected character to code string
			// $this->sCode .= $aChars&#91;$iIndex&#93;;

			/********************************************/
			/* End of optional code                     */
			/********************************************/
		&#125;
	&#125;

	function DrawCharacters&#40;&#41; &#123;
		// loop through and write out selected number of characters
		for &#40;$i = 0; $i < strlen&#40;$this->sCode&#41;; $i++&#41; &#123;
			// select random font
			$iCurrentFont = rand&#40;1, 5&#41;;

			// select random greyscale colour
			$iRandColour = rand&#40;0, 128&#41;;
			$iTextColour = imagecolorallocate&#40;$this->oImage, $iRandColour, $iRandColour, $iRandColour&#41;;

			// write text to image
			imagestring&#40;$this->oImage, $iCurrentFont, $this->iSpacing / 3 + $i * $this->iSpacing, &#40;$this->iHeight - imagefontheight&#40;$iCurrentFont&#41;&#41; / 2, $this->sCode&#91;$i&#93;, $iTextColour&#41;;
		&#125;
	&#125;

	function Create&#40;$sFilename = ''&#41; &#123;
		// check for existance of GD GIF library
		if &#40;!function_exists&#40;'imagegif'&#41;&#41; &#123;
			return false;
		&#125;

		$this->DrawLines&#40;&#41;;
		$this->GenerateCode&#40;&#41;;
		$this->DrawCharacters&#40;&#41;;

		// write out image to file or browser
		if &#40;$sFilename != ''&#41; &#123;
			// write stream to file
			imagegif&#40;$this->oImage, $sFilename&#41;;
		&#125; else &#123;
			// tell browser that data is gif
			header&#40;'Content-type&#58; image/gif'&#41;;

			// write stream to browser
			imagegif&#40;$this->oImage&#41;;
		&#125;

		// free memory used in creating image
		imagedestroy&#40;$this->oImage&#41;;

		return true;
	&#125;

	function GetCode&#40;&#41; &#123;
		return $this->sCode;
	&#125;
&#125;



?>
Αυτό που εσύ πρέπει να κάνεις είναι:
Αποθηκεύεις τον παρακάτω κώδικα σε ενα αρχείο πχ image.php

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

<?php
session_start&#40;&#41;;
// get parameters
isset&#40;$_GET&#91;'width'&#93;&#41; ? $iWidth = &#40;int&#41;$_GET&#91;'width'&#93; &#58; $iWidth = 150;
isset&#40;$_GET&#91;'height'&#93;&#41; ? $iHeight = &#40;int&#41;$_GET&#91;'height'&#93; &#58; $iHeight = 30;

// create new image
include 'imageClass.php';
$oSecurityImage = new SecurityImage&#40;$iWidth, $iHeight&#41;;
if &#40;$oSecurityImage->Create&#40;&#41;&#41; &#123;
	// assign corresponding code to session variable
	// for checking against user entered value
	$_SESSION&#91;'code'&#93; = $oSecurityImage->GetCode&#40;&#41;;
	
&#125; else &#123;
	echo 'Image GIF library is not installed.';
&#125;
?>
και εκεί που θέλεις να εμφανίζεται η εικόνα σου κάνεις αυτό:

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

<img src="image.php" />
Σε κάποιο άλλο αρχείο θα ελέγχεις αν ο κώδικας που έδωσε ο χρήστης είναι ίδιος με τον κώδικα που έχει αποθηκευτεί στο SESSION του:

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

<?php
if&#40;$_SESSION&#91;'code'&#93;==$_POST&#91;'code'&#93;&#41;&#123;
kane kati
&#125;else&#123;
mhn kaneis tpt
&#125;
?>
Για το email τώρα. Απλά δημιουργείς ενα μοναδικό string. Το αποθηκεύεις κάπου με το id του χρήστη και μετά το στέλνεις σαν link param με email στο χρήστη:

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

<?php
$string=md5&#40;time&#40;&#41;.$username&#41;;
?>
Επίσεις μεταφέρω το post σε μια κατηγορία που ταιριάζει καλύτερα. :wink:

Άβαταρ μέλους
nik_the_Greek
Δημοσιεύσεις: 9
Εγγραφή: 06 Μάιος 2004 10:27
Τοποθεσία: Greece
Επικοινωνία:

Επεξεργασία Φόρμας.

Δημοσίευση από nik_the_Greek » 08 Μαρ 2006 21:11

ThyClub .

Ευχαριστω για την πολυ αμεση απαντηση. Θα προσπαθησω να το καταφερω να δουλεψει.
Για το posτ ΟΚ δεν υπαρχει προβλημα και ...
αν μοιαζεις του Avatar εισαι κουκλα.

panosru
WebDev Moderator
Δημοσιεύσεις: 1885
Εγγραφή: 13 Σεπ 2005 16:13
Τοποθεσία: Camp

Επεξεργασία Φόρμας.

Δημοσίευση από panosru » 08 Μαρ 2006 22:40

nik_the_Greek έγραψε:ThyClub .

αν μοιαζεις του Avatar εισαι κουκλα.
Εικόνα

thy bgalto re c tha se pareksigisoun opos pane!!! :hammer:

:lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol:


@nik_the_Greek: antras einai re c :P
@thyckub: oraia class :D

Άβαταρ μέλους
ThyClub
Honorary Member
Δημοσιεύσεις: 5312
Εγγραφή: 17 Νοέμ 2003 00:21
Τοποθεσία: Hell's Kitchen
Επικοινωνία:

Επεξεργασία Φόρμας.

Δημοσίευση από ThyClub » 08 Μαρ 2006 23:23

@nik_the_Greek

lol το Εικόνα δεν το είδες βρέ;

@panosru
Το class δεν είναι δικό μου. Είμαι της άποψης οτι δεν χρειάζεται να ξανα ανακαλύπτουμε τον τροχό ;)

Άβαταρ μέλους
nik_the_Greek
Δημοσιεύσεις: 9
Εγγραφή: 06 Μάιος 2004 10:27
Τοποθεσία: Greece
Επικοινωνία:

Επεξεργασία Φόρμας.

Δημοσίευση από nik_the_Greek » 09 Μαρ 2006 11:01

Αγαπητέ ThyClub.
Φυσικά και το ειδα, ελπιζω να μην στραβοπηρες το λογοπαιγνιο.

Άβαταρ μέλους
ThyClub
Honorary Member
Δημοσιεύσεις: 5312
Εγγραφή: 17 Νοέμ 2003 00:21
Τοποθεσία: Hell's Kitchen
Επικοινωνία:

Επεξεργασία Φόρμας.

Δημοσίευση από ThyClub » 09 Μαρ 2006 13:47

No prob m8 :D

panosru
WebDev Moderator
Δημοσιεύσεις: 1885
Εγγραφή: 13 Σεπ 2005 16:13
Τοποθεσία: Camp

Επεξεργασία Φόρμας.

Δημοσίευση από panosru » 09 Μαρ 2006 16:59

ThyClub έγραψε:Είμαι της άποψης οτι δεν χρειάζεται να ξανα ανακαλύπτουμε τον τροχό ;)
kai go eimai ayths ths apopsis alla episeis eimai tis apopsis pos prepei na kseroume ap' ekso ki' anakatota o kodikas o poios xrhshmopoioume kai den to exoume grapsei emeis ;)

Απάντηση

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

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

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