Php φόρμα - επιλογή πεδίων inputs προς αποστολή

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

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

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Php φόρμα - επιλογή πεδίων inputs προς αποστολή

Δημοσίευση από korgr » 03 Αύγ 2009 23:13

Η αληθεια ειναι πως και εγω απορησα με αυτο που ζητουσες!
Αν το ξεκαθαριζες απο την αρχη θα ηταν καλυτερα :)
Εν ολιγοις δεν χρειαζεται να κανεις τιποτα απο αυτα που σκεφτεσαι. Το μονο που χρειαζεται ειναι σε καθε πεδιο να δινεις και το

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

value="<?=$valueOfField;?>"
Ετσι οταν επισκεπτεται πρωτη φορα καποιος την φορμα, οι μεταβλητες δεν υπαρχουν και θα εχεις κενα πεδια που θα συμπληρωθουν. Αν ομως εχεις διαβασει απο βαση υπαρχουσες τιμες τοτε αυτες θα εμφανισθουν αυτοματα στα πεδια σου. Οταν κανεις edit κανεις edit ολα τα πεδια (και αυτα που τυχον αλλαξε ο χρηστης και αυτα που δεν πειραξε οποτε γινονται overwrite με ιδιες τιμες).

Φυσικα μπορεις να επιλεξεις να εχεις δυο ξεχωριστες φορμες (μια για new add και μια για edit) αλλα η θεωρια ειναι ιδια!

Άβαταρ μέλους
felipsemassa
Δημοσιεύσεις: 30
Εγγραφή: 01 Αύγ 2009 08:05

Php φόρμα - επιλογή πεδίων inputs προς αποστολή

Δημοσίευση από felipsemassa » 03 Αύγ 2009 23:28

καλά επειδή δε θέλω να μπλέξουμε με τις βάσεις δεδομένων ακόμα ας θεωρήσουμε τη περίπτωση αυτή λυμένη με καλύπτει η απάντηση σου korgr !

όμως αυτό πως θα το πετύχουμε αν αποθηκεύουμε τα στοιχεία σε αρχείο κειμένου ;

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

<?php
if &#40;isset&#40;$_POST&#91;"forma"&#93;&#41; && !empty&#40;$_POST&#91;"forma"&#93;&#41;&#41;
&#123;
$pedia = $_POST&#91;'pedio'&#93;;

$phone = &#40;$_POST&#91;"thlefwno"&#93;&#41; ;
$street = &#40;$_POST&#91;"odos"&#93;&#41;;
$city = &#40;$_POST&#91;"polh"&#93;&#41;;

for &#40;$i=0;$i<=count&#40;$pedia&#41;;$i++&#41;&#123;
echo $_POST&#91;$pedia&#91;$i&#93;&#93;;
&#125;

saveas = '
$phone = &#40;$_POST&#91;"thlefwno"&#93;&#41; ;
$street = &#40;$_POST&#91;"odos"&#93;&#41;;
$city = &#40;$_POST&#91;"polh"&#93;&#41;;
';

$file = fopen&#40;"myfile.txt", "w"&#41;;
fwrite&#40;$file, $saveas&#41;;
fclose&#40;$file&#41;;

&#125;
?>

<form action="index.php" method="post">

<input type="text" name="thlefwno">
<input type="text" name="odos">
<input type="text" name="polh">

<INPUT NAME="pedio&#91;&#93;" TYPE="CHECKBOX" VALUE="thlefwno">
<INPUT NAME="pedio&#91;&#93;" TYPE="CHECKBOX" VALUE="odos">
<INPUT NAME="pedio&#91;&#93;" TYPE="CHECKBOX" VALUE="polh">

<input  type="submit" name="forma" value="Send">

</form> 
δεν νομίζω να είναι σωστό έτσι, αλλά νομίζω να καταλαβαίνεις την λογική, εδώ δεν έχουμε βάση δεδομένων, πως τα πεδία ή θα είναι κενά 1η φορά - ή θα διαβάζουν από τη βάση τις υπάρχουσες τιμές χρησιμοποιώντας την παράμετρο στο value="<?=$valueOfField;?>" ;
Τελευταία επεξεργασία από το μέλος felipsemassa την 03 Αύγ 2009 23:29, έχει επεξεργασθεί 1 φορά συνολικά.

Άβαταρ μέλους
Banavas
Script Master
Δημοσιεύσεις: 1367
Εγγραφή: 21 Νοέμ 2004 20:25
Επικοινωνία:

Php φόρμα - επιλογή πεδίων inputs προς αποστολή

Δημοσίευση από Banavas » 03 Αύγ 2009 23:28

Τώρα που εξήγησες τι ακριβώς θέλεις είναι ακόμα πιο απλό. Αδικα παιδεύεις τα παιδιά που προσπαθούν να μαντέψουν τι θέλεις να κάνεις και τα κατευθύνεις σε λάθος δρόμο.....

Έστω οτι ο χρήστης συμπληρώνει τα προσωπικά του στοιχεία που τα αποθηκεύεις σε μια βάση δεδομένων και ο χρήστης επανέρχεται για να αλλάξει κάποιο από τα στοιχεία του, πχ το τηλέφωνό του που έλλαξε νούμερο.
Υποθέτουμε οτι ο χρήστης συνδέθηκε σε κάποιο control panel για να κάνει την αλλαγή που θέλει. Εκεί υπάρχει κάποιο πλήκτρο μενού έστω "διόρθωση / αλλαγή στοιχείων".
Αυτό το πλήκτρο καλέι μία άλλη φόρμα ίδια με την αρχική αλλά αφού πρώτα διαβάσει από την βάση τα στοιχεία του χρήστη τα εμφανίζει μέσα στα πεδία. ( Γίνεται και με την ίδια φόρμα απλά γίνεται πιο περίπλοκη η φόρμα).
Αλλάζει τα στοιχεία που θέλει και σώζει τα στοιχεία στην βάση. Τα στοιχεία της φόρμας θα σωθούν όλα και θα επικαλύψουν τα παλιά. Επειδή όμως δεν έχουν γίνει αλλαγές (σε όσα δεν γίνουν αλλάγές) θα σωθούν πάλι τα παλιά δεδομένα που ήρθαν από την βάση. Σε αυτά που έγιναν αλλαγές θα σωθούν τα νέα στοιχεία.

Μπορείς να το χειριστείς και με άλλο τρόπο δηλαδή να φέρεις πάλι την αρχική φόρμα άδεια και να ελέγχεις όλα τα πεδία αν έχουν συμπληρωθεί και να τα ανανεώνεις στην βάση, δηλαδή ο χρήστης να συμπληρώνει μόνο όσα θέλει να αλλάξει.
Νομίζω οτι ο αρχικός τρόπος είναι πιο σωστός με χρήση της δεύτερης μεθόδου μόνο για το password αν υπάρχει στη φόρμα. Δηλαδή όλα τα πεδία έρχονται από την βάση και σωζονται ξανά είτε έγιναν αλλαγές είτε όχι εκτός από το password που το σώζεις μόνο άν έχει αλαχτεί.

Αν θες περισσότερη ασφάλεια μπορείς να προσθέσεις και μια εγγραφή σε ένα log αρχείο ώστε να καταγράφεις τις προσπάθειες αλλαγής των στοιχείων μαζί με την ΙΡ διεύθυνση του remote server, ακόμη και τις αποτυχημένες ώστε να ελέγχεις αργότερα τις εγγραφές. Εκεί μπορείς να δεις πολλές αποτυχημένες προσπάθειες από συγκεκριμένη ΙΡ που μάλλον θα είναι προσπάθεια παράνομης πρόσβασης.
Happy coding....
Μάρκος
http://lasernet.gr

Άβαταρ μέλους
Banavas
Script Master
Δημοσιεύσεις: 1367
Εγγραφή: 21 Νοέμ 2004 20:25
Επικοινωνία:

Php φόρμα - επιλογή πεδίων inputs προς αποστολή

Δημοσίευση από Banavas » 03 Αύγ 2009 23:32

felipsemassa έγραψε:καλά επειδή δε θέλω να μπλέξουμε με τις βάσεις δεδομένων ακόμα ας θεωρήσουμε τη περίπτωση αυτή λυμένη με καλύπτει η απάντηση σου korgr !

όμως αυτό πως θα το πετύχουμε αν αποθηκεύουμε τα στοιχεία σε αρχείο κειμένου ;


δεν νομίζω να είναι σωστό έτσι, αλλά νομίζω να καταλαβαίνεις την λογική, εδώ δεν έχουμε βάση δεδομένων, πως τα πεδία ή θα είναι κενά 1η φορά - ή θα διαβάζουν από τη βάση τις υπάρχουσες τιμές χρησιμοποιώντας την παράμετρο στο value="<?=$valueOfField;?>" ;
Μπορείς να σώσεις τα στοιχεία σε cookies. Τώρα αν ο χρήστης τα σβύσει ας πρόσεχε .... :hammer:

Πάντως μην σε φοβίζει η βάση δεδομένων είναι πολύ απλά τα πράγματα και αν την αποφύγεις θα είναι πιο περίπλοκο για σένα.
Happy coding....
Μάρκος
http://lasernet.gr

Άβαταρ μέλους
felipsemassa
Δημοσιεύσεις: 30
Εγγραφή: 01 Αύγ 2009 08:05

Php φόρμα - επιλογή πεδίων inputs προς αποστολή

Δημοσίευση από felipsemassa » 03 Αύγ 2009 23:38

ναι φαίνεται πιο εύκολο το εγχείρημα με βάση δεδομένων από τη στιγμή που θα τραβάμε τα δεδομένα που υπάρχουν στη βάση από την πρώτη καταχώρηση του χρήστη, απλά δεν το έχω ψάξει καλά το θέμα php - βάση δεδομένων ακόμα, όμως ας το θεωρήσουμε για τώρα λυμένο μοιάζει πως η σκέψη μου για checkbox σε αυτή τη περίπτωση είναι περιττή !

Όμως αν χρησιμοποιήσουμε αρχείο κειμένου για τη αποθήκευση των στοιχείων που γράφει ο χρήστης, φαντάσου το κάπως όπως άλλαξα όσα γράψαμε λίγο παραπάνω με .txt, τότε δεν έχει βάση η ιδέα μου με τα κουτάκια ;

εδώ πως θα το λύναμε ;

Άβαταρ μέλους
Banavas
Script Master
Δημοσιεύσεις: 1367
Εγγραφή: 21 Νοέμ 2004 20:25
Επικοινωνία:

Php φόρμα - επιλογή πεδίων inputs προς αποστολή

Δημοσίευση από Banavas » 03 Αύγ 2009 23:51

δεν αλλάζει τίποτε από το σκεπτικό. Το μόνο που αλλάζει είναι το μέσο αποθήκευσης των δεδομένων από βάση σε αρχείο. Και επειδή ο χειρισμός των αρχείων είναι πιο δύσκολος από τον χειρισμό της βάσης σου συνέστησα να χρησιμοποιήσεις την βάση.
Happy coding....
Μάρκος
http://lasernet.gr

Άβαταρ μέλους
felipsemassa
Δημοσιεύσεις: 30
Εγγραφή: 01 Αύγ 2009 08:05

Php φόρμα - επιλογή πεδίων inputs προς αποστολή

Δημοσίευση από felipsemassa » 04 Αύγ 2009 06:01

πιο συγκεκριμένα όμως, αλλάζοντας λίγο τον κώδικα για να λειτουργεί γράφοντας και σε αρχεία κειμένου έχω φτάσει σε αυτό το σημείο

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

<?php

if &#40;isset&#40;$_POST&#91;"forma"&#93;&#41; && !empty&#40;$_POST&#91;"forma"&#93;&#41;&#41;
&#123;
$pedia = $_POST&#91;'pedio'&#93;;

$phone = $_POST&#91;"thlefwno"&#93; ;
$street = $_POST&#91;"odos"&#93;;
$city = $_POST&#91;"polh"&#93;;

for &#40;$i=0;$i<=count&#40;$pedia&#41;;$i++&#41;&#123;
echo $_POST&#91;$pedia&#91;$i&#93;&#93;;
&#125;

$saveas = '
$phone = "' . $_POST&#91;'thlefwno'&#93; . '";
$street = "' . $_POST&#91;'odos'&#93; . '";
$city = "' . $_POST&#91;'polh'&#93; . '";
';

$file = fopen&#40;"myfile.txt", "w"&#41;;
fwrite&#40;$file, $saveas&#41;;
fclose&#40;$file&#41;;

&#125;

?>

<form action="index2.php" method="post">

<input type="text" name="thlefwno">
<input type="text" name="odos">
<input type="text" name="polh">

<INPUT NAME="pedio&#91;&#93;" TYPE="CHECKBOX" VALUE="thlefwno">
<INPUT NAME="pedio&#91;&#93;" TYPE="CHECKBOX" VALUE="odos">
<INPUT NAME="pedio&#91;&#93;" TYPE="CHECKBOX" VALUE="polh">

<input  type="submit" name="forma" value="Send">

</form> 
με το παραπάνω φτιάχνω ένα αρχείο myfile.txt και μέσα γράφονται τα περιεχόμενα της παραμέτρου $saveas των inputs, δουλεύει, όμως κάθε φορά που χρησιμοποιώ τη φόρμα και στέλνω τα στοιχεία, το αρχείο myfile.txt ενώ ενημερώνεται με τα νέα στοιχεία, ενημερώνει και εκείνα τα στοιχεία που δεν είχα τσεκάρει να αποσταλούν, στέλνει και ενημερώνει στο αρχείο .txt εκείνα που έχω τσεκάρει αλλά και εκείνα που δεν έχω (!)

Αυτό που θα ήθελα είναι να αλλάζουν στο myfile.txt μόνο τα στοιχεία που έχω τσεκάρει τα chcekbox τους, κάποιο παράδειγμα ;

Άβαταρ μέλους
Banavas
Script Master
Δημοσιεύσεις: 1367
Εγγραφή: 21 Νοέμ 2004 20:25
Επικοινωνία:

Php φόρμα - επιλογή πεδίων inputs προς αποστολή

Δημοσίευση από Banavas » 04 Αύγ 2009 08:55

Πριν να εμφανίσεις την φόρμα διάβασε τις μεταβλητές από το αρχείο και πέρασέ τες στη φόρμα με το

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

value="<?=$valueOfField;?>"
που έδωσε ο korgr

έτσι οι τιμές που θα ανανεώρει στο αρχείο θα είναι ίδιες με τις παλιές αν δεν αλλαχτούν.
Happy coding....
Μάρκος
http://lasernet.gr

Άβαταρ μέλους
felipsemassa
Δημοσιεύσεις: 30
Εγγραφή: 01 Αύγ 2009 08:05

Php φόρμα - επιλογή πεδίων inputs προς αποστολή

Δημοσίευση από felipsemassa » 04 Αύγ 2009 09:13

καλημέρα Banavas

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

<?php
if &#40;isset&#40;$_POST&#91;"forma"&#93;&#41; && !empty&#40;$_POST&#91;"forma"&#93;&#41;&#41;
&#123;
$pedia = $_POST&#91;'pedio'&#93;;

$phone = $_POST&#91;"thlefwno"&#93; ;
$street = $_POST&#91;"odos"&#93;;
$city = $_POST&#91;"polh"&#93;;

for &#40;$i=0;$i<=count&#40;$pedia&#41;;$i++&#41;&#123;
echo $_POST&#91;$pedia&#91;$i&#93;&#93;;
&#125;

$saveas = '
$phone = "' . $_POST&#91;'thlefwno'&#93; . '";
$street = "' . $_POST&#91;'odos'&#93; . '";
$city = "' . $_POST&#91;'polh'&#93; . '";
';

$file = fopen&#40;"myfile.txt", "w"&#41;;
fwrite&#40;$file, $saveas&#41;;
fclose&#40;$file&#41;;

&#125;
?>

<form action="index.php" method="post">

<input type="text" name="thlefwno" value="<?php echo $phone;?>">
<input type="text" name="odos" value="<?php echo $street;?>">
<input type="text" name="polh" value="<?php echo $city;?>">

<INPUT NAME="pedio&#91;&#93;" TYPE="CHECKBOX" VALUE="thlefwno">
<INPUT NAME="pedio&#91;&#93;" TYPE="CHECKBOX" VALUE="odos">
<INPUT NAME="pedio&#91;&#93;" TYPE="CHECKBOX" VALUE="polh">

<input  type="submit" name="forma" value="Send">

</form>

γράφοντας το έτσι στα inputs μέσα μου γράφει ένα Notice
<b>Notice</b>: Undefined variable: phone in <b>index.php</b> on line <b>29</b><br />
ίσως φταίει οτι
Πριν να εμφανίσεις την φόρμα διάβασε τις μεταβλητές από το αρχείο και πέρασέ τες στη φόρμα με το


σε ποιο σημείο πριν ; ( κόλλησα :) )

Άβαταρ μέλους
Banavas
Script Master
Δημοσιεύσεις: 1367
Εγγραφή: 21 Νοέμ 2004 20:25
Επικοινωνία:

Php φόρμα - επιλογή πεδίων inputs προς αποστολή

Δημοσίευση από Banavas » 04 Αύγ 2009 09:18

Πριν από το <form....

όπως κάνει άνοιγμα του αρχείου για εγγραφή γράφεις και μετά το κλείνεις
παρόμοια θα το ανοίξεις για ανάγνωση "r" θα διαβάσεις τις μεταβλητές και θα το ξανακλείσεις.
Happy coding....
Μάρκος
http://lasernet.gr

Άβαταρ μέλους
felipsemassa
Δημοσιεύσεις: 30
Εγγραφή: 01 Αύγ 2009 08:05

Php φόρμα - επιλογή πεδίων inputs προς αποστολή

Δημοσίευση από felipsemassa » 04 Αύγ 2009 10:26

έκανα αυτό

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

<?php
if &#40;isset&#40;$_POST&#91;"forma"&#93;&#41; && !empty&#40;$_POST&#91;"forma"&#93;&#41;&#41;
&#123;
$pedia = $_POST&#91;'pedio'&#93;;

$phone = $_POST&#91;"thlefwno"&#93;;
$street = $_POST&#91;"odos"&#93;;
$city = $_POST&#91;"polh"&#93;;

for &#40;$i=0;$i<=count&#40;$pedia&#41;;$i++&#41;&#123;
echo $_POST&#91;$pedia&#91;$i&#93;&#93;;
&#125;

$saveas = '
$phone = "' . $_POST&#91;'thlefwno'&#93; . '";
$street = "' . $_POST&#91;'odos'&#93; . '";
$city = "' . $_POST&#91;'polh'&#93; . '";
';

$file = fopen&#40;"myfile.txt", "w"&#41;;
fwrite&#40;$file, $saveas&#41;;
fclose&#40;$file&#41;;


$fl = fopen&#40;"myfile.txt", "r"&#41;;
while&#40;true&#41;
&#123;
$mydata = fgets&#40;$fl&#41;;
if&#40;$mydata == null&#41;break;
echo $mydata;
&#125;
fclose&#40;$fl&#41;;


&#125;
?>

<form action="index.php" method="post">

<input type="text" name="thlefwno" value="<?php echo $phone;?>">
<input type="text" name="odos" value="<?php echo $street;?>">
<input type="text" name="polh" value="<?php echo $city;?>">

<INPUT NAME="pedio&#91;&#93;" TYPE="CHECKBOX" VALUE="thlefwno">
<INPUT NAME="pedio&#91;&#93;" TYPE="CHECKBOX" VALUE="odos">
<INPUT NAME="pedio&#91;&#93;" TYPE="CHECKBOX" VALUE="polh">

<input  type="submit" name="forma" value="Send">

</form> 

Τώρα όταν κάνω submit τη φόρμα μου διαβάζει και γράφει τα περιεχόμενα του αρχείου .txt
$phone = ""; $street = "b"; $city = "c";
όμως το πρόβλημα παραμένει, έρχονται και τα μη τσεκαρισμένα πεδία, κάθε φορά που κάνω submit (!)

χρειάζεται να δημιουργήσω κάτι παρόμοιο με την μεταβλητή $saveas, για να έχουμε αποτέλεσμα ;

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

$open = '
$phone = "' . $_GET&#91;'thlefwno'&#93; . '";
$street = "' . $_GET&#91;'odos'&#93; . '";
$city = "' . $_GET&#91;'polh'&#93; . '";
';
όμως αν κάνω κάτι σαν αυτό με την $open και αλλάξω τη γραμμή
$mydata = fgets($fl);
σε
$mydata = fgets($fl, $open);
τότε παίρνω Λάθος, ίσως η fgets δεν δέχεται ,$μεταβλητή ;

Άβαταρ μέλους
felipsemassa
Δημοσιεύσεις: 30
Εγγραφή: 01 Αύγ 2009 08:05

Php φόρμα - επιλογή πεδίων inputs προς αποστολή

Δημοσίευση από felipsemassa » 04 Αύγ 2009 13:40

το καλύτερο που μπορώ να κάνω με όσα γνωρίζω είναι αυτό αλλά δεν είναι αυτό που θα ήθελα :(

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

<?php
if &#40;isset&#40;$_POST&#91;"forma"&#93;&#41; && !empty&#40;$_POST&#91;"forma"&#93;&#41;&#41;
&#123;
$pedia = $_POST&#91;'pedio'&#93;;

$phone = $_POST&#91;"thlefwno"&#93;;
$street = $_POST&#91;"odos"&#93;;
$city = $_POST&#91;"polh"&#93;;

for &#40;$i=0;$i<=count&#40;$pedia&#41;;$i++&#41;&#123;
echo $_POST&#91;$pedia&#91;$i&#93;&#93;;
&#125;

$saveas = '
$phone = "' . $_POST&#91;'thlefwno'&#93; . '";
$street = "' . $_POST&#91;'odos'&#93; . '";
$city = "' . $_POST&#91;'polh'&#93; . '";
';

$file = fopen&#40;"myfile.txt", "w+"&#41;;
fwrite&#40;$file, $saveas&#41;;
fclose&#40;$file&#41;;

&#125;

<form action="index.php" method="post">

<input type="text" name="thlefwno" value="<?php=$phone;?>">
<input type="text" name="odos" value="<?php=$street;?>">
<input type="text" name="polh" value="<?php=$city;?>">

<INPUT NAME="pedio&#91;&#93;" TYPE="CHECKBOX" VALUE="thlefwno">
<INPUT NAME="pedio&#91;&#93;" TYPE="CHECKBOX" VALUE="odos">
<INPUT NAME="pedio&#91;&#93;" TYPE="CHECKBOX" VALUE="polh">

<input  type="submit" name="forma" value="Send">

</form>

?>

Διάβασμα αρχείου .txt

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

$fl = fopen&#40;"myfile.txt", "r"&#41;;
while&#40;true&#41;
&#123;
$mydata = fgets&#40;$fl&#41;;
if&#40;$mydata == null&#41;break;
echo $mydata;
&#125;
fclose&#40;$fl&#41;; 
Banavas αν και νομίζω πως κατάλαβα τι είπες όπως και ο korgr αδυνατώ να στήσω το όλο σκηνικό, δεν έχω ξανακάνει κάτι παρόμοιο μόνο με λόγια είναι δύσκολο, δε μπορεί κάποιος από εσάς να απαντήσει με κώδικα ;

θα ήταν οτι καλύτερο στο σημείο αυτό (!)

Άβαταρ μέλους
Banavas
Script Master
Δημοσιεύσεις: 1367
Εγγραφή: 21 Νοέμ 2004 20:25
Επικοινωνία:

Php φόρμα - επιλογή πεδίων inputs προς αποστολή

Δημοσίευση από Banavas » 04 Αύγ 2009 16:08

Φαγώθηκες να χρησιμοποιήσεις αρχεία!!!! Σου το είπα από την αρχή οτι είναι πιο δύσκολο (όχι οτι δεν γίνεται). Και αντε και κατάφερες να γράφεις και να διαβάζεις τα στοιχεία από το αρχείο. Ο δεύτερος χρήστης θα ρθει και θα γράψει πάνω στα στοιχεία του πρώτου!!!!!!

Βασικά όπως θα είδες προσπαθούμε να σε βοηθήσουμε αλλά χρειάζεσαι περισσότερο διάβασμα, πειραματισμό και πείσμα για αυτό που θέλεις να κάνεις. Μπορούμε να σου λύσουμε απορίες και να ξεκολλήσεις από κάποιο σημείο όχι να σε εκπαιδευσουμε βήμα-βήμα, μήνυμα-μήνυμα.

Επειδή η συζήτηση έχει καταλήξει σε personal training και επειδή είμαι έτοιμος να την κοπανίσω σε λίγο για ΔΙΑΚΟΠΕΣ στη Χαλκιδική σταματώ εδώ.

Eλπίζω να σε βοηθήσει περισσότερο κάποιο από τα παιδιά του freestuff.
Happy coding....
Μάρκος
http://lasernet.gr

Άβαταρ μέλους
felipsemassa
Δημοσιεύσεις: 30
Εγγραφή: 01 Αύγ 2009 08:05

Php φόρμα - επιλογή πεδίων inputs προς αποστολή

Δημοσίευση από felipsemassa » 04 Αύγ 2009 17:35

Banavas έγραψε:Φαγώθηκες να χρησιμοποιήσεις αρχεία!!!! Σου το είπα από την αρχή οτι είναι πιο δύσκολο (όχι οτι δεν γίνεται). Και αντε και κατάφερες να γράφεις και να διαβάζεις τα στοιχεία από το αρχείο. Ο δεύτερος χρήστης θα ρθει και θα γράψει πάνω στα στοιχεία του πρώτου!!!!!!
κοίταξε,
αυτό που θέλω είναι να καταφέρω να τα συνδέσω όλα αυτά μαζί , δεν ρώτησα για την περίπτωση του 2ου χρήστη, φαγώθηκα ή επιμένω για να καταλάβω πως σε μια τέτοια περίπτωση ενώνονται όλα αυτά και λειτουργούν .
Banavas έγραψε: Βασικά όπως θα είδες προσπαθούμε να σε βοηθήσουμε αλλά χρειάζεσαι περισσότερο διάβασμα, πειραματισμό και πείσμα για αυτό που θέλεις να κάνεις. Μπορούμε να σου λύσουμε απορίες και να ξεκολλήσεις από κάποιο σημείο όχι να σε εκπαιδευσουμε βήμα-βήμα, μήνυμα-μήνυμα.

Επειδή η συζήτηση έχει καταλήξει σε personal training και επειδή είμαι έτοιμος να την κοπανίσω σε λίγο για ΔΙΑΚΟΠΕΣ στη Χαλκιδική σταματώ εδώ.

Eλπίζω να σε βοηθήσει περισσότερο κάποιο από τα παιδιά του freestuff.
είδα και το Εκτιμώ,
κάθε μια απάντηση σας, δεν υπάρχει λόγος τώρα να μπαίνουμε σε τέτοια συζήτηση νομίζω και φυσικά συμφωνώ πως χρειάζομαι περισσότερη ενασχόληση και πειραματισμό ελπίζω να μην σε έχω πείσει για το αντίθετο απλά απορίες θέτω το είπα εξ αρχής .

Έχω κολλήσει στη σύνδεση αυτό είναι όλο :)
δεν επιδίωξα και personal training, επεδίωξα τα μάθω πως θα δουλέψω με τα κουτάκια (!)

Καλές διακοπές Banavas και πραγματικά ευχαριστώ για όλες τις απαντήσεις σου, ελπίζω και γώ κάποιος ορεξάτος, δίχως τέτοιες κορώνες να εξηγήσει λίγα πράγματα παραπάνω, όποιος θέλει :)

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Php φόρμα - επιλογή πεδίων inputs προς αποστολή

Δημοσίευση από korgr » 04 Αύγ 2009 17:43

Επομενο σου βημα ειναι η εκμαθηση MySQL
Trust me on this!
Ειμαι απο τους λίγους που το αφησε ως τελευταια προτεραιοτητα (πεισμα και γινατι θα το ελεγα καλυτερα) με αποτελεσμα να γινω ενας guru των text based databases. Οταν καποια στιγμη καταλαβα ποσα εχανα που δεν ειχα μπλεχτει με MySQL, αποτελεσε μονοδρομο για μενα η εκμαθηση της. Σε συμβουλευω να κανεις το ιδιο.
Αν οχι, τουλαχιστον να σου δωσω τις πρωτες κατευθυντηριες γραμμες.
Για να αποθηκευσεις πολλαπλες εγγραφες σε txt files πρεπει να ακολουθησεις το μοντελο "Στηλες & Γραμμες" οπως καθε βαση δεδομενων.
Σε ενα txt εχουμε γραμμες και καθε μια απο αυτες ξεχωριζει με new line δλδ τον χαρακτηρα "\n"
Για να δημιουργησεις στηλες θα πρεπει να ορισεις ενα δικο σου χαρακτηρα (ή ενα αλφαριθμητικο με περισσοτερους χαρακτηρες) για να αποτελεσει τον "διαχωριστη" των πεδιων.
Συνηθως χρησιμοποιειται το | ως διαχωριστης (επειδη σπανια το συνανταμε στο περιεχομενο των εγγραφων).
Ενα παραδειγμα ενος τμηματος τετοιου αρχειου με 2 εγγραφες που εχει 3 πεδια (id, name, phone) θα μπορουσε να ειναι:

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

1|George|2104785985\n
2|John|2103729078\n
Φαντασου αυτα τα περιεχομενα αποθηκευμενα σε ενα αρχειο με ονομα "phonebook.txt"
Για να χειριστεις αυτα τα δεδομενα θα πρεπει να μεταφερεις το περιεχομενα του txt file στη μνημη με την μορφη ενος δισδιαστατου πινακα (αν δεν εχεις ασχοληθει με τετοιους πινακες, καιρος να αρχισεις τωρα, συνειδητοποιωντας γιατι η MySQL ειναι μονοδρομος για ολους μας :P )

Παμε να δουμε πως το κανουμε αυτο:

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

<?
$phonebook=file&#40;"phonebook.txt"&#41;; //ολα τα περιεχομενα του txt σε ενα μονοδιαστατο πινακα με ονομα phonebook
$tmp = explode &#40;"|", chop&#40;$phonebook&#91;0&#93;&#41;&#41;; // δημιουργουμε ενα προσωρινο πινακα με καθε πεδιο της πρωτης γραμμης
$cols=sizeof&#40;$tmp&#41;; // βρισκουμε ποσα πεδια &#40;στηλες&#41; εχει το αρχειο
$rows=sizeof&#40;$phonebook&#41;; // βρισκουμε ποσες γραμμες εχει ο πινακας
for &#40;$n=0;$n<$rows;$n++&#41;&#123;
$record = explode &#40;"|", chop&#40;$phonebook&#91;$n&#93;&#41;&#41;;
for &#40;$m=0;$m<$cols;$m++&#41;&#123;
$table&#91;$m&#93;&#91;$n&#93;=$record&#91;$m&#93;; // προσεξε τον δισδιαστατο πινακα $table με τους δυο δεικτες $m & $n, ο πρωτος δεικτης αναφερεται στη στηλη και ο δευτερος στη γραμμη!
&#125;
unset&#40;$record&#41;;
&#125;
?>
Μετα απο αυτο θα εχεις ολο το txt στον δισδιαστατο πινακα $table
Να θυμασαι πως οι δεικτες αρχιζουν να μετρουν απο το 0 οποτε αν θες πχ να αναφερθεις στο δευτερο πεδιο της πρωτης γραμμης:

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

echo&#40;$table&#91;1&#93;&#91;0&#93;&#41;; // το 1=δευτερο πεδιο και το 0=πρωτη γραμμη...
Για να μπορεις να εντοπιζεις μια συγκεκριμενη γραμμη (εγγραφη της βασης σου), θα πρεπει να περνας ως παραμετρο στο url σου το id
Αν υποθεσουμε πως θες να διορθωσεις τα στοιχεια του John τοτε το id που θα περασεις πρεπει να εχει τιμη 2.
Στο script θα χτενισεις το αρχειο ωστε να βρεις σε ποια γραμμη ειναι αποθηκευμενο το id=2
Εχουμε λοιπον:

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

<?
// εχει προηγηθει ο κωδικας που σου εδωσε τα $rows & $cols...
$index="";
for &#40;$n=0;$n<$rows;$n++&#41;&#123;
if&#40;$_GET&#91;'id'&#93;==$table&#91;0&#93;&#91;$n&#93;&#41;&#123; // χρησιμοποιουμε δεικτη 0 που ειναι το πρωτο πεδιο δλδ το id, και αν ταυτιστει με την παραμετρο που περασες με get var $id, τοτε...
$foundrecord=true; // βρεθηκε η εγγραφη...
$index=$n; // στον δεικτη $n του πινακα
break; // δεν χρειαζεται να συνεχισει η αναζητηση στον πινακα, βγες απο το loop
&#125;
&#125;
if&#40;$foundrecord&#41;&#123;
$name = $table&#91;1&#93;&#91;$index&#93;; // δεικτης 1 = δευτερο πεδιο = ονομα!
$phone = $table&#91;2&#93;&#91;$index&#93;; // δεικτης 2 = τριτο πεδιο = αρ. τηλεφώνου!
// τις μεταβλητες αυτες τις χρησιμοποιεις στο value="<?=$valueOfField;?>" που ανεφερα στο προηγουμενο μηνυμα μου
&#125;
?>
Δεν θα επεκταθω περισσοτερο μηπως και καταλαβεις που πας να μπλεξεις και αποφασισεις να διαβασεις για ...MySQL :lol:

Απάντηση

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

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

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