Δεν περνάνε οι εγγραφές στη βάση

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

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

Απάντηση
Άβαταρ μέλους
Dalton
Δημοσιεύσεις: 58
Εγγραφή: 08 Μάιος 2012 11:14
Τοποθεσία: Αθήνα
Επικοινωνία:

Δεν περνάνε οι εγγραφές στη βάση

Δημοσίευση από Dalton » 02 Ιουν 2014 01:38

Γεια σε όλους, έχω μια εργασία η οποία ζητάει απ' το χρήστη να συμπληρώσει μια φόρμα και μέσω της php να περνάνε οι εγγραφές του κάθε και καλά εργαζόμενου μέσα σε μια βάση την οποία έχω φτιάξει. Αλλά μόλις συμπληρώσω τη φόρμα ούτε error βγάζει ούτε congatylations που έχω γράψει να εμφανίζει, απλά μια άσπρη οθόνη. Παρακάτω θα σας δώσω τον κώδικα της φόρμας και τον Php αλλά και τις στήλες του πίνακα της βάσης μου.

Στήλες:
E_cd int(10) (p.key)
First_Name varchar(15)
Last_Name >>
Username >>
Password >>
Gender varchar(10)
Date_of_Birth date
Education varchar(10)
Salary int(10)
T_cd int(3)
J_cd int(3)

Η φόρμα:

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

<!doctype html>
<html>
<head>
<title>Apply Form</title>
<meta charset="utf-8">
</head>
<form action="Apply.php" method="post">
<fieldset>
<legend>Register Form</legend>
<b>First Name&#58;</b> <input type="text" name="firstname" id="firstname"><br>
<b>Last Name&#58;</b> <input type="text" name="lastname" id="lastname"><br>
<b>Username&#58;</b> <input type="text" name="username" id="username"><br>
<b>Password&#58;</b> <input type="password" name="password" id="password"><br>
<b>Gender&#58;</b> <input type="radio" name="gender" id="male" value="male">Man <input type="radio" name="gender" id="female" value="female">Woman<br>
<b>Date of Birth&#58;</b> <input type="date" name="date" id="date"><br>
<b>Education&#58;</b> <select name="education">
				  <option value="AEI">AEI</option>
                  <option value="TEI">TEI</option>
                  <option value="High School">High School</option>
                  </select><br>
<b>Salary&#58;</b> <input type="number" name="salary" id="salary"><br>
<b>Town&#58;</b> <select name="town">
			 <option value="122">New York</option>
             <option value="123">California</option>
             <option value="124">Chicago</option>
             <option value="167">Boston</option>
             </select><br>
<b>Job&#58;</b> <select name="job">
	 	    <option value="667">Clerk</option>
            <option value="668">Staff</option>
            <option value="669">Analyst</option>
            <option value="670">Salesperson</option>
            <option value="671">Manager</option>
            <option value="672">President</option>
            </select><br> 
<input type="Submit" value="Submit" name="Submit" formaction="Apply.php"> <input type="button" value="Cancel">
</fieldset>
</form>
<body>
</body>
</html>
PHP:

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

<?
$dbServer="localhost";
$dbUser="root";
$dbPassword="";
$con=mysql_pconnect&#40;$dbServer,$dbUser,$dbPassword&#41; or die&#40;"cannot connect to database"&#41;;
mysql_select_db&#40;"jobquality"&#41; or die&#40;mysql_error&#40;&#41;&#41;;
$fname=$_POST&#91;'firstname'&#93;;
$lname=$_POST&#91;'lastname'&#93;;
$USN=$_POST&#91;'username'&#93;;
$PSW=$_POST&#91;'password'&#93;;
$gender=$_POST&#91;'gender'&#93;;
$DoB=$_POST&#91;'date'&#93;;
$education=$_POST&#91;'education'&#93;;
$salary=$_POST&#91;'salary'&#93;;
$town=$_POST&#91;'town'&#93;;
$job=$_POST&#91;'job'&#93;;
if &#40;isset &#40;$_POST&#91;'Submit'&#93;&#41;&#41;&#123;
	if &#40;!$fname | !$lname | !$USN | !$PSW&#41; die &#40;'You dont fill the required fields'&#41;;
    $insert=mysql_query&#40;"insert into Employees&#40;E_cd,First_Name,Last_Name,Username,Password,Gender,Date_of_Birth,Education,Salary,T_cd,J_cd&#41; values &#40;'$fname','$lname','$USN','$PSW','$gender','$DoB','$education','$salary','$town','$job'&#41;"&#41;;
	mysql_query&#40;$insert&#41;;
	echo 'CONGRATULATIONS'; &#125;
else echo 'ERROR';
?>
Υπάρχει κάποιο λάθος ή δεν το τρέχω σωστά από localhost?
*Δουλεύω με Wampp ενώ συνήθως δουλεύαμε Xamppp και μπορεί να κάνω κάτι λάθος*

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

Δεν περνάνε οι εγγραφές στη βάση

Δημοσίευση από fafos » 02 Ιουν 2014 11:31

auto ti sou vgazei?

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

<?

echo 'hello Aliens!';

?>

Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
Dalton
Δημοσιεύσεις: 58
Εγγραφή: 08 Μάιος 2012 11:14
Τοποθεσία: Αθήνα
Επικοινωνία:

Δεν περνάνε οι εγγραφές στη βάση

Δημοσίευση από Dalton » 02 Ιουν 2014 13:23

Χμμ... Τίποτα...
Δεν έχω κάνει εγκατάσταση PHP?

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

Δεν περνάνε οι εγγραφές στη βάση

Δημοσίευση από Khronos » 02 Ιουν 2014 13:31

Βάλε όπου έχεις <?, αυτό <?php

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

Δεν περνάνε οι εγγραφές στη βάση

Δημοσίευση από fafos » 02 Ιουν 2014 13:34

Khronos έγραψε:Βάλε όπου έχεις <?, αυτό <?php
right... :lol:

to WAMPP erxetai by default apaitontas to <?php... mporeis na to apenergopoihseis alla an prokeitai na asxolhtheis epaggelmatika kapote me thn PHP mathe na vazeis kai to php dipla sto tag...
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
Dalton
Δημοσιεύσεις: 58
Εγγραφή: 08 Μάιος 2012 11:14
Τοποθεσία: Αθήνα
Επικοινωνία:

Δεν περνάνε οι εγγραφές στη βάση

Δημοσίευση από Dalton » 02 Ιουν 2014 15:28

Το εμφανίζει, ευχαριστώ πολύ για τη βοήθεια!
Κάτι άλλο, επειδή έχω DreamweaverCC τα html τα δείχνει σαν αρχεία του Dreamweaver, τα php όμως όχι, δεν θα έπρεπε και αυτά (και δεν βγάζει επιλογή Άνοιγμα με... ώστε να ορίσω το Dreamweaver σαν πρόγραμμα εκτέλεσης)?
Συνημμένα
Χωρίς τίτλο.png
(13.19 KiB) Μεταφορτώθηκε 108 φορές

Άβαταρ μέλους
Alice_Cooper
Δημοσιεύσεις: 1948
Εγγραφή: 11 Μάιος 2007 00:33
Τοποθεσία: Ioannina
Επικοινωνία:

Δεν περνάνε οι εγγραφές στη βάση

Δημοσίευση από Alice_Cooper » 04 Ιουν 2014 10:31

an patiseis shift+deksi vgazei to "anoigma me..."??

Άβαταρ μέλους
DataHellas
Δημοσιεύσεις: 39
Εγγραφή: 24 Μάιος 2005 08:57
Τοποθεσία: Αθήνα
Επικοινωνία:

Δεν περνάνε οι εγγραφές στη βάση

Δημοσίευση από DataHellas » 04 Ιουν 2014 20:30

Απενεργοποίησε το short_open_tag στο php.ini ώστε να μάθεις να γράφεις σωστά php. Οι συντομεύσεις του στυλ <%= 'test'; ?> είναι για τα πανηγύρια.

Βάλε password στον χρήστη "root" και μην συνδέεσαι στη βάση ως root. Το ξέρω ότι είναι τοπικό site αλλά θα πρέπει να σου γίνει συνήθεια να μην συνδέεσαι ως root ποτέ.

Δεύτερο, άλλαξε το mysql_pconnect με το mysql_connect, το "pconnect" είναι για μόνιμη (persistent) σύνδεση με την βάση που είμαι σίγουρος δεν την χρειάζεσαι.

Τρίτον, validation! Εσύ γράφεις html και php εγώ διαβάζω "hack me please". Να αντιμετωπίζεις το user request πάντα ως ύποπτο και να το περνάς στη βάση μόνο αφού ελέγξεις την ορθότητά του και το φιλτράρεις. Αν τα υποβληθέντα στοιχεία δεν είναι ΟΚ να εμφανίζεις σχετικό μήνυμα σφάλματος. Tip: Η χρήση ακεραίων στις φόρμες τις καθιστούν πολύ πιο ασφαλείς και εύκολες στο Validation από ότι τα strings.

Παράδειγμα:
$job = (isset($_POST['job'])) ? (int)$_POST['job'] : 0;
if ($job < 1) {
die('Job cannot be empty!');
}

gvre
Δημοσιεύσεις: 992
Εγγραφή: 14 Οκτ 2010 11:34
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

Δεν περνάνε οι εγγραφές στη βάση

Δημοσίευση από gvre » 04 Ιουν 2014 22:17

Dalton έγραψε:

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

<?
$job=$_POST&#91;'job'&#93;;
if &#40;isset &#40;$_POST&#91;'Submit'&#93;&#41;&#41;&#123;
	if &#40;!$fname | !$lname | !$USN | !$PSW&#41; die &#40;'You dont fill the required fields'&#41;;
    $insert=mysql_query&#40;"insert into Employees&#40;E_cd,First_Name,Last_Name,Username,Password,Gender,Date_of_Birth,Education,Salary,T_cd,J_cd&#41; values &#40;'$fname','$lname','$USN','$PSW','$gender','$DoB','$education','$salary','$town','$job'&#41;"&#41;;
	mysql_query&#40;$insert&#41;;
	echo 'CONGRATULATIONS'; &#125;
else echo 'ERROR';
?>
Άσχετο με το πρόβλημά σου, αλλά:
1. Το mysql_* extension είναι deprecated. Χρησιμοποίησε pdo ή mysqli και prepared statements.
2. Το $_POST['submit'] δεν είναι πάντα διαθέσιμο, όταν το post γίνεται από κάποιες εκδόσεις τού IE. Είναι προτιμότερο να έχεις ένα hidden πεδίο στη φόρμα σου και να ελέγχεις αν υπάρχει στο $_POST.
3. Θα πρέπει πρώτα να ελέγχεις αν έχει γίνει post η φόρμα σου και στη συνέχεια να παίρνεις τιμές από το $_POST.
4. Για το <? είπαν οι υπόλοιποι. Αν θέλεις να κάνεις echo μια μεταβλητή μέσα σε html και έχεις PHP >= 5.4, μπορείς να χρησιμοποιήσεις το <?= $var ?> αντί του <?php echo $var; ?>

Απάντηση

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

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

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