Διατήρηση περιεχομένων φόρμας εγγραφή χρήστη.

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

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

Απάντηση
nikos-manias
Δημοσιεύσεις: 38
Εγγραφή: 15 Ιαν 2010 10:13

Διατήρηση περιεχομένων φόρμας εγγραφή χρήστη.

Δημοσίευση από nikos-manias » 30 Ιαν 2010 12:31

Καλησπέρα σε όλους!

Έχω φτιάξει μια φόρμα μέσω της οποίας ο χρήστης θα δηλώνει τα στοιχεία του και θα γράφετε στη βάση δεδομένων των εγγεγραμμένων μελών. Έχω καταφέρει να τα φτιάξω όλα αυτά.
Επίσης πραγματοποιώ και ελέγχους για το άν ο χρήστης έχει συμπληρώσει όλα τα απαραίτητα πεδία,εαν το username και το email υπάρχουν ήδη και άν έχει συμπληρώσει το αντίγραφο του κωδικού σωστά. Όλοι αυτοί οι έλεγχοι γίνονται με php. Έτσι στην περίπτωση που κάποιος έλεγχος εντοπίσει κάποιο λάθος τότε ξαναπροβάλεται η ίδια φόρμα αφού έχω εκτυπώσει ένα μύνημα πριν από αυτή.

Ο κώδικας php είναι γραμμένος μέσα στο ίδιο αρχείο με τη φόρμα και απλά στη φόρμα έχω βάλει
<form id="form1" name="form1" method="post" action="<?=$_SERVER['PHP_SELF']?>">

Η λειτουργία που θέλω να πετύχω είναι η εξής.

Όταν ο χρήστης δώσει πχ username που υπάρχει ήδη και εντοπιστεί κάποιο από τα λάθη που ανέφερα πρίν ,να ξαναπροβάλεται η φόρμα αλλά τα πεδία να έχουν τις προηγούμενες τιμές έτσι ώστε ο χρήστης να χρειαστεί απλά να αλλάξει αυτά που έχουν το λάθος



Ευχαριστώ πολύ!!!





<?php require_once('Connections/tolData.php'); ?>
<?php require_once('Connections/functions.php'); ?>
<?php require_once ('Mail.php'); ?>



<?php

if(isset($_POST['register']))
{
if($_POST['name']!='' && $_POST['username'] != '' && $_POST['password']!='' && $_POST['email']!='')
{
$sql="SELECT * from users WHERE username='$_POST[username]' OR email='$_POST[email]'";
$checkuser=mysql_query($sql);
if(mysql_num_rows($checkuser)==1)
{
$error='Το όνομα χρήστη ή η διεύθυνση email που εισάγατε υπάρχει ήδη. Παρακαλώ δοκιμάστε κάποιο διαφορετικό.';
}
else if($_POST[password] != $_POST[passwordcheck])
{
$error='Οι κωδικοί που εισάγατε δεν ταιριάζουν. Παρακαλώ Ξαναδοκιμάστε.';
}
else if(checkemail($_POST[email]) == false)
{
$error='Η διεύθυνση email που δώσατε δέν είναι έγκυρη. ';
}
else
{

//Κώδικας για αποστολή email ενεργοποίησης λογαριασμού.
}
}
}

else
{
$error='Παρακαλούμε συμπληρώστε όλα τα πεδία!';
}
}
?>
<!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></title>

<link href="main.css" rel="stylesheet" type="text/css" />
</head>

<body>
<div id="container">

<div id="mainbody">


<div id="middleColumn">
<div id="middleHeader">Εγγραφή νέου χρήστη.</div>

<div id="middleContent">
<?php if(isset($error)){ echo $error;}?>
<?php if(isset($msg)){ echo $msg;} else {//if we have a mesage we don't need this form again.?>

<form id="form1" name="form1" method="post" action="<?=$_SERVER['PHP_SELF']?>">
<div id="userData">
<p>&nbsp;</p>
<table border="0">
<tr>
<th width="40%" scope="row">Όνοματεπώνυμο:</th>
<td width="60%" ><input type="text" name="name" id="name" /></td>
</tr>
<tr>
<th scope="row">Επιθυμητό όνομα χρήστη:</th>
<td><input type="text" name="username" id="username" /></td>
</tr>
<tr>
<th scope="row">Κωδικός:</th>
<td><input type="password" name="password" id="password" /></td>
</tr>
<tr>
<th scope="row">Επιβεβαίωση Κωδικού:</th>
<td><input type="password" name="passwordcheck" id="passwordcheck" /></td>
</tr>
<tr>
<th scope="row">e-mail:</th>
<td><input type="text" name="email" id="email" /></td>
</tr>
</table>
</form>

<? } ?>

</div>
</div>
</div>
</div>
</body>

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Διατήρηση περιεχομένων φόρμας εγγραφή χρήστη.

Δημοσίευση από fafos » 30 Ιαν 2010 16:03

To kalytero einai na xrhsimopoieis kai php kai javascript-ajax gia na kaneis elegxo..

opos exeis ta errors, an kapoios grapseis ta panta lathos h forma kanei to ekshs:

gyrnaei error oti o username to email yparxei..

stelno pali thn forma.. gyrnaei lathos oti den tairiazoun ta passwords..

stelno pali thn forma.. gyrnaei lathos oti to email den einai sosto..


1. xrhsimopoihse ajax gia na kanei elegxo gia username kai email

2. pali ajax gia elenxo tairiasmatos password kai sostou email

3. den xreiazesai else if.. gia kathe elegxo theleis aplo if kai to $error tha einai etsi:

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

$error='';
if&#40;mysql_num_rows&#40;$checkuser&#41;==1&#41;
&#123;
$error .='Το όνομα χρήστη ή η διεύθυνση email που εισάγατε υπάρχει ήδη. Παρακαλώ δοκιμάστε κάποιο διαφορετικό.<br>';
&#125;
 if&#40;$_POST&#91;password&#93; != $_POST&#91;passwordcheck&#93;&#41;
&#123;
$error .='Οι κωδικοί που εισάγατε δεν ταιριάζουν. Παρακαλώ Ξαναδοκιμάστε.<br>';
&#125;
 if&#40;checkemail&#40;$_POST&#91;email&#93;&#41; == false&#41;
&#123;
$error .='Η διεύθυνση email που δώσατε δέν είναι έγκυρη. <br>';
&#125; 
prosexe to $error=''; pou dino sthn arxh kai thn teleia pou vazo prin to =

auta ta errors tha ta dosei mono stous xrhstes pou den exoun javascript ston browser.. oi ypoloipoi tha eidopoihthoun apo thn javascript gia ta errors..

gia na mhn ksanagrafoun oi xrhstes sthn forma dose se kathe pedio to value="<? echo $_POST[kati];?>".. px.

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

<input type="text" name="name" id="name" value="<? echo $_POST&#91;name&#93;;?>" />

Άβαταρ μέλους
loxy
Δημοσιεύσεις: 208
Εγγραφή: 17 Ιούλ 2007 01:18

Διατήρηση περιεχομένων φόρμας εγγραφή χρήστη.

Δημοσίευση από loxy » 13 Φεβ 2010 12:51

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

  if&#40;!empty&#40;$_POST&#91;'LoginName'&#93;&#41; && !empty&#40;$_POST&#91;'Password'&#93;&#41;&#41;
  &#123;    	 
   if&#40; $_SESSION&#91;'security_code'&#93; == $_POST&#91;'security_code'&#93; && !empty&#40;$_SESSION&#91;'security_code'&#93; &#41; &#41; 
   &#123;

  ΑΠΟΘΗΚΕΥΣΗ ΣΤΟΙΧΕΙΩΝ ΣΤΗ Β.Δ.
   ΚΑΙ ΑΠΟΣΤΟΛΗ MAIL ΕΝΕΡΓΟΠΟΙΗΣΗΣ
   
           
unset&#40;$_SESSION&#91;'security_code'&#93;&#41;;
 &#125; 
   else 
   &#123;
		
   echo 'Sorry, you have provided an invalid security code';
   &#125;

&#125;

else
&#123;
<form method="post" action="register1.php" name="registerform" onsubmit="return validate_form&#40;this&#41;; " id="registerform">

ΕΜΦΑΝΙΣΕ ΤΗ ΦΟΡΜΑ 
    
&#125;
?>


Με δεδομενο τον παραπανω κωδικα . υπαρχει καποιο λαθος στη λογικη που χρησιμοποιω και δεν εμφανιζονται οσα σωστα πεδια πληκτρολογησα , μετα απο καποιο λαθος κατα την εγγραφη ;

Χρησιμοποιησα την προταση του fafos :

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

<input class="a" type="text" name="Email" id="Email" value="<? echo $_POST&#91;'Email'&#93;;?>"/>

Απάντηση

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

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

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