Results 1 to 7 of 7
Thread: php ôîðìè
Hybrid View
-
10th December 2015 19:25 #1Registered User
Join Date: Dec:2015
Location: Ïëîâäèâ
Posts: 4
php ôîðìè
Çäðàâåéòå, êîëåãè! Èìàì íóæäà îò ìàëêî ïîìîù è ìè ïðåïîðú÷àõà äà ñè ïðîáâàì êúñìåòà òóê.. Èìàì äà ïðàâÿ êóðñîâà ðàáîòà íà php, åòî çà êàêâî ñòàâà âúïðîñ íà êðàòêî:
Òðÿáâà äà íàïðàâÿ 3 îòäåëíè ôîðìè, èíôîðìàöèÿòà îò âñÿêà ôîðìà òðÿáâà äà ñå çàïèñâà â ñåñèÿ è íàêðàÿ, àêî âñè÷êè çàäúëæèòåëíè ïîëåòà ñà ïîïúëíåíè, èíôîðìàöèÿòà îò ñåñèÿòà äà ñå ïðåõâúðëè â áàçà äàííè, äà ñå èçòðèå ñåñèÿòà è íà åêðàíà äà ñå âèçóàëèçèðà èíôîðìàöèÿòà âúâåäåíà îò íàñòîÿùèÿ ïîòðåáèòåë.. è îò òóê çàïî÷âàò õèëÿäèòå ìè ïðîáëåìè.. Ïúðâàòà ôîðìà ÿ íàïðàâèõ, ñúñ âàëèäàöèè è òí, îáà÷å ïðîáëåìà å ÷å íå çíàì êàêâà ïðîâåðêà äà íàïèøà çà ïðåõâúðëÿíåòî êúì âòîðàòà èëè äîðè êúäå òðÿáâà äà áúäå ñëîæåíà, çà äà ðåäèðåêòíå ñàìî ïðè âàëèäíà èíôîðìàöèÿ è ïîïúëíåíè ïîëåòà..
Òà íàé-íàëåæàùî â ìîìåíòà ìè å äà óñïåÿ äà ðåäèðåêòíà ôîðìàòà ïðè óñïåøíà âàëèäàöèÿ, ïî-äîëó ùå äîáàâÿ è öåëèÿ êîä íà ôîðìàòà..
Ñúùî òàêà áèõ íàìåðèë çà èçêëþ÷èòåëíî ïîëåçíè âñÿêàêâè íàñîêè çà ïðåõâúðëÿíå íà èíôîðìàöèÿ îò ñåñèÿ â áàçà äàííè è âèçóàëèçàöèÿ íà èíôîðìàöèÿ îò áàçàòà äàííè..
Áëàãîäàðÿ ïðåäâàðèòåëíî!
```
<?php
session_start();
// define variables and set to empty values
$nameErr = $Errlname = $lnameErr = $usrnameErr = $mailErr = $pnErr = "";
$name = $fname = $lname = $usrname = $mail = $pn = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) {
$nameErr = "First name is required";
} else {
$name = test_input($_POST["name"]);
// check if name only contains letters and whitespace
if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
$nameErr = "Only letters and white space allowed";
}
}
if (empty($_POST["lname"])) {
$lnameErr = "Last name is required";
} else {
$lname = test_input($_POST["lname"]);
$valid=true;
// check if name only contains letters and whitespace
if (!preg_match("/^[a-zA-Z ]*$/",$lname)) {
$lnameErr = "Only letters and white space allowed";
}
}
if (empty($_POST["usrname"])) {
$usrnameErr = "Username is required";
} else {
$usrname = test_input($_POST["usrname"]);
// check if name only contains letters and whitespace
if (!preg_match("/^[a-zA-Z ]*$/",$usrname)) {
$usrnameErr = "Only letters and white space allowed";
}
}
if (empty($_POST["mail"])) {
$mailErr = "Email is required";
} else {
$mail = test_input($_POST["mail"]);
// check if e-mail address is well-formed
if (!filter_var($mail, FILTER_VALIDATE_EMAIL)) {
$mailErr = "Invalid email format";
}
}
$fname = test_input($_POST["fname"]);
$_SESSION["name"] = $name;
$_SESSION["fname"] = $fname;
$_SESSION["lname"] = $lname;
$_SESSION["usrname"] = $usrname;
$_SESSION["mail"] = $mail;
if ($nameErr != "" || $lnameErr != "" || $mailErr != "" || $usrnameErr != "") {
$referer = $_SERVER['HTTP_REFERER'];
}
else{ header("Location: real2.php");}
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
<!DOCTYPE HTML>
<html>
<head>
<style>
.error {color: #FF0000;}
</style>
</head>
<body>
<ul>
<li><a href="formopit.php">Personal Information</a></li>
<li><a href="real2.php">Address </a></li>
<li><a href="step3.php">Contact</a></li>
</ul>
<h2>PHP Form Validation Example</h2>
<p><span class="error">* required field.</span></p>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
Name: <input type="text" name="name" value="<?php if (isset($_SESSION['name']) && $_SESSION['name'] != "")
{echo $_SESSION['name'] ;}
else {echo '';}?>">
<span class="error">* <?php echo $nameErr;?></span>
<br><br>
Fathers Name: <input type="text" name="fname" value="<?php if (isset($_SESSION['fname']) && $_SESSION['fname'] != "")
{echo $_SESSION['fname'] ;}
else {echo '';}?>">
<span class="error"> <?php if (isset($_Errfname) && $Errfname != "")
{echo $Errfname ;}
else {echo '';}?></span>
<br><br>
Last Name: <input type="text" name="lname" value="<?php if (isset($_SESSION['lname']) && $_SESSION['lname'] != "")
{echo $_SESSION['lname'] ;}
else {echo '';}?>">
<span class="error">* <?php if (isset($_SESSION['Errlname']) && $_SESSION['Errlname'] != "")
{ echo $_SESSION['Errlname'];}
else {echo '';}?></span>
<br><br>
User Name: <input type="text" name="usrname" value="<?php if (isset($_SESSION['usrname']) && $_SESSION['usrname'] != "")
{echo $_SESSION['usrname'] ;}
else {echo '';}?>">
<span class="error">* <?php echo $usrnameErr;?></span>
<br><br>
E-mail: <input type="text" name="mail" value="<?php if (isset($_SESSION['mail']) && $_SESSION['mail'] != "")
{echo $_SESSION['mail'] ;}
else {echo '';}?>">
<span class="error"> <?php echo $mailErr;?></span>
<br><br>
Phone Number: <input type="tel" name="pn" value="<?php if (isset($_SESSION['pn']) && $_SESSION['pn'] != "")
{echo $_SESSION['pn'] ;}
else {echo '';}?>">
<br><br>
<input type="submit" name="gotonotes" value="Submit">
</form>
<?php
?>
</body>
</html>
```Last edited by MrBlazeAlot; 11th December 2015 at 13:30.
-
10th December 2015 19:49 #2Ïîñëåäíà ðåäàêöèÿ: èçâúðøåíà îò XaMaB; íà äíåøíà äàòà. 0.42 ñåêóíäè ñëåä ïóñêàíå íà ïîñòà
In God we Trust (all others must submit a X.509 certificate). Àêî ñïîðèø ñ èäèîò, âåðîÿòíî è òîé ïðàâè ñúùîòî èëè ñè ïîïàäíàë íà ïàðòèåí (íåïúëåí) ÷ëåí
-
10th December 2015 19:54 #3Registered User
Join Date: Dec:2015
Location: Ïëîâäèâ
Posts: 4
Ìåðñè, èñòèíàòà å ,÷å çà ïîñëåäíèòå íÿêîëêî äíè èç÷åòîõ è èçãëåäàõ äîñòà òóòîðèàëè, íàäÿâàì ñå òîçè êîéòî ñè ïðàòèë äà ìè ïîìîãíå!
EDIT: Èçãëåäàõ êëèï÷åòî, 47ìèíóòè ñå ìú÷èõ ñ àêöåíòà íà èíäèåöà, îáà÷å âñå ïàê ðàçáðàõ íÿêîëêî íåùà,çàòîâà áëàãîäàðÿ! Àêî ìîæå îáà÷å ,âñå ïàê íÿêîé íàâúòðå â íåùàòà äà ìè ïîìîãíå ïîíå ñ ðåäèðåêòâàíåòî êúì ñëåäâàùàòà ôîðìà, çàùîòî ïðîñòî íå ìîãà äà ÿ èçìèñëÿ òàçè ïðîâåðêà, âñè÷êèòå íà÷èíè êîèòî ïðîáâàõ áÿõà íå óñïåøíè, èëè ðåäèðåêòâà áåç ïðîâåðêà, èëè êîäúò ñå ÷óïè
Last edited by MrBlazeAlot; 10th December 2015 at 22:02.
-
11th December 2015 00:51 #4
Íå ñúì ãëåäàë êëèïà, íî êàòî êàçà, ÷å å èíäèåö (îñîáåíî òèÿ ñ ãàäíèòå àêöåíòè, çàùîòî èìà è ïî-êàäúðíè), äèðåêòíî òå ñúâåòâàì äà èìàø åäíî íàóì.
ßâíî íîìåðúò ñ êóðñîâàòà å ïðîñòî äà îòáèåø íîìåðà.
Ãîðíèÿò êîä èçãëåæäà äîñòà íåäîâúðøåí.
Íå ðàçáðàõ êàêúâ å ïðîáëåìà ñ ðåäèðåêòà. Êàòî öÿëî òðÿáâà äà ñè èçÿñíèø ñòðóêòóðàòà íà ïðîâåðêèòå è áëîêîâåòå, êîãà êúäå òðÿáâà äà ñå ðåäèðåêòíå è êàê, ïðåäè èçîáùî äà òðúãíåø äà ïèøåø êîä.
Àêî ñè òðúãíàë ñ ÷èñò PHP äà ïðàâèø ïðîâåðêèòå, ïðè ñúáìèòà ñè ãè ïðîâåðÿâàø åäíî ïî åäíî, è íàêðàÿ íà handler-à ïðîâåðÿâàø äàëè èçîáùî èìà ãðåøêà, è àêî èìà âðúùàø ñúùàòà ñòðàíèöà ñ ïîïúëíåíèòå äî ìîìåíòà îò ïîòðåáèòåëÿ äàííè (çà äà íå ãî ìú÷èø äà ãè ïîïúëâà ïîíå ïîâå÷åòî, îòíîâî) ïëþñ íÿêàêâà èíäèêàöèÿ êúäå å ñãðåøèë.
Àêî ñà íàðåä, ïðàâèø åäèí header(..) êúì ñëåäâàùàòà ñòðàíèöà, êîÿòî ùå ÷åòå ñåñèÿòà ñ äî_ìîìåíòà_äàííèòå è âå÷å òè ðåøàâàø äàëè ùå ãè ïîêàçâà èëè ïðîñòî ùå äîïúëâà ñåñèÿòà ñ âòîðà ïîðöèÿ äàííè, ñ ïîäîáíà ëîãèêà íà ïðîâåðêà.
Îòíîâî - òðúãíàë ñè íÿêàê îòçàä íàïðåä. Âèæ è ñè îáèãðàé ïîâå÷å çíàíèÿòà êàê ðàáîòè HTTP, ñåñèèòå, ðåäèðåêòâàíèÿòà, è êàòî öÿëî PHP, ñèíòàêñèñ è ò.í., çàùîòî èçãëåæäà èìàø çàòðóäíåíèÿ äîðè â áàçîâè ôóíêöèè íà åçèêà è ïðîòîêîëèòå.
-
11th December 2015 13:29 #5Registered User
Join Date: Dec:2015
Location: Ïëîâäèâ
Posts: 4
Êàòî öÿëî ñè ïðàâ çà ïîâå÷åòî íåùà, íî íå è çàòîâà ,÷å èñêàì äà îòáèÿ íîìåðà.. Ãîðíèÿ êîä èìà êîïè/ïåéñò ãðåøêè îò áúðçàíå, êîèòî âå÷å ñà îïðàâåíè, ñúùî òàêà ñå ñïðàâèõ ñ ïðîâåðêàòà çà âàëèäíîñò è ðåäèðåêò-à. Oòíîñíî ïîçíàíèÿòà ìè ïî php ñúùî ñè àáñîëþòíî ïðàâ, çàùîòî ñå çàíèìàâàì ñ íåãî ìíîãî îò ñêîðî, à è èñòèíàòà å, ÷å êàòî âòîðîêóðñíèê òåïúðâà íàâëèçàì ÎÎÏ-òî êàòî öÿëî.. Ïðîáëåìà ìè äîéäå îáà÷å, îò òàì, ÷å ïîäöåíèõ çàäàíèåòî è íå ñè îñòàâèõ äîñòàòú÷íî âðåìå è ñúùî òàêà, ÷å ïðåäìåòà ìè å èçáèðàåì è èìàì ñàìî ëåêöèè áåç óïðàæíåíèÿ (êîäúò å èçöÿëî íàïèñàí(ñãëîáåí) îò ìåí ñ ìèíèìàëíè ïîçíàíèÿ â îáëàñòòà, êàêòî îòáåëÿçà, áåç âúçìîæíîñò äà âèäÿ ïðèìåðè èëè äà ñå äîïèòàì çà ïîìîù. Ñúùî òàêà ãîëÿì ïðîöåíò îò âðåìåòî ìè çà ó÷åíå ïðîñòî å çàåò îò ìàòåìàòèêè.. Èíà÷å ôîðìèòå ñà þçúð ôðåíäëè è ñå ñàìîïîïúëâàò ñ èíôîðìàöèÿ îò ñåñèÿòà ïðè back,refresh è ïðåìèíàâà îò äðóãà ôîðìà.. Èíà÷å ìåðñè çà êðèòèêèòå, àç ñè ãè çàñëóæàâàì ;(.
On topic:
Ôîðìèòå ñà ãîòîâè, íåùàòà ðàáîòÿò, îñòàâà ìè ïðîâåðêà äàëè ñà íàëè÷íè âñè÷êè çàäúëæèòåëíè åëåìåíòè, çàïèñâàíå â áàçà äàííè è âèçóàëèçèðàíå îò òàì.. ïðîìåíÿì êîäà îò ïúðâîòî ìíåíèå íà ïîïðàâåíèÿ ñ ïðîâåðêàòà è äîïúëâàì ñ html-a, ïðîäúëæàâàì äà ðîâÿ íåò-à çà äà èçó÷àâàì sql-à..
-
11th December 2015 14:18 #6
Èçâèíÿâàé àêî íåùî
, çàùîòî â 99% îò ñëó÷àèòå òóê ñå ïîÿâÿâàò õîðà, êîèòî íàèñòèíà ãëåäàò äà îòáèÿò íÿêîé èçïèò è äîòàì.
ßâíî ñè ñå ïîîïðàâèë è ñàì.
Íÿêîëêî íåùà ñàìî, ïîíå â êîíòåêñòà íà êîäà îò ïúðâèÿ ïîñò.
Èìåòî íà ôóíêöèÿòà test_input() íå å ñúâñåì ïîäõîäÿùî çà òîâà, êîåòî èçâúðøâà ðåàëíî. Èìåòî ïðåäïîëàãà ïðèìåðíî äà âúðíå true/false äàëè èíïóò-à å âàëèäåí. Òè èçâúðøâàø íÿêàêúâ ìèêñ îò íåùà, êîèòî íå å äîáðå äà ñà â åäíà ôóíêöèÿ. Ìîæå ïðèìåðíî äà òè òðÿáâà óñåðíåéìà çà äðóãè îïåðàöèè ïðåäè äà ãî htmlspecialchar() çà èçõîä â html êîäà. Îòäåëíî stripslashes() çàùî ãî ïðàâèø...  ïîñëåäíèòå âåðñèè PHP òîâà âå÷å å èçëèøíî, çàùîòî îò 5.4.0 å äàæå ïðåìàõíàòî àâòîìàòè÷íîòî åñêåéïâàíå íà èíïóò-à â ñêðèïòà.
htmlspecialchars() å äîáðå äà ïðàâèø íåïîñðåäñòâåíî â õòìë êîäà, êúäåòî âå÷å ùå ñè ñèãóðåí ÷å íÿìà äà òè òðÿáâà ïîâå÷å â íîðìàëåí âèä. Àêî ñå ïîëçâà íà ïîâå÷å îò 1 ìÿñòî, ñè ãî ïðàâèø íàä õòìë êîäà â ïðîìåíëèâà (çà äà íå âèêàø ôóíêöèÿòà íåíóæíî ïî íÿêîëêî ïúòè çà åäèí è ñúù ñòðèíã). Ïðåäïîëàãàì ïîëçâàø UTF-8 åíêîäèíã íàâñÿêúäå, èíà÷å htmlspecialchars() ìîæå äà íå å äîñòàòú÷íà (òÿ çàìåíÿ ñàìî 5-6 íàé-âàæíè õòìë ñèìâîëà).
Äàæå âèêàíåòî íà htmlspecialchars() prez test_input() òè ãåíåðèðà ãðåøêè â êîäà, çàùîòî ñëåä òîâà ïðàâèø ïðîâåðêè íà áàçà ðåçóëòàíòíèÿ ñòðèíã (ïîäãîòâåí çà õòìë èçõîä), êàòî ðåãåêñè è äðóãè, è òîâà å íåïðàâèëíî è îïàñíî.
Ïðè ïðîâåðêèòå ïðàâèø íåùà êàòî echo $_SESSION['name'] ; , äèðåêòíî â HTML êîäà - âúïðåêè, ÷å íàãîðå â òåçè ñåñèéíè ïðîìåíëèâè çàïàçâàø 'ñàíèðàíè' ñòîéíîñòè, íå å äîáðà ïðàêòèêà äà èçâåæäàø òàêà äèðåêòíî îò $_SESSION[] íåùàòà â html-à. Îòäåëíî â ñåñèéíèòå ïðîìåíëèâè çàïàçâàø è htmlspecialchar()-èðàíè ñòîéíîñòèòå, êîåòî å ãðåøíî îòíîâî - ïàçèø èñòèíñêèòå äàííè, à htmlspecialchars() ïðàâèø ñàìî ïðè èçâåæäàíåòî, à íå ãè ïàçèø òàêà è â ñåñèÿòà.
Ãîðå èìàø
if (!preg_match("/^[a-zA-Z ]*$/",$usrname)) { ....
Òîçè ðåãåêñ òåñòâà çà íóëà èëè ïîâå÷å ñèìâîëè îò íàáîðà â ñêîáèòå - ïî-ñêîðî çâåçäàòà òðÿáâà äà ÿ çàìåíèø ñ + (çà 1 èëè ïîâå÷å), êàòî âåðîÿòíî ùå èñêàø èìåòî äà å ïîíå ñ äúëæèíà 3 è íàãîðå ñèìâîëà è âåðîÿòíî äà å ïîä 30 èëè íåùî òàêîâà ñèìâîëà. Íåùî êàòî :
if (!preg_match("/^[a-zA-Z ]{3,30}$/", $usrname) || trim($usrname) === "" ) {... (êàòî òóê ïî-äîáðå äà ðàçìåíèì äâåòå ïðîâåðêè, çàùîòî âòîðàòà trim() å ïî-áúðçà è ùå èìà ñëó÷àè äà íå ñå ñòèãà äî preg_match-a)
çàùîòî òîé ìîæå äà âúâåäå è ñàìî èíòåðâàëè, êîèòî íÿìà äà õâàíåø â ñúîáùåíèåòî ïðè ïðîâåðêèòå. Ïðîâåðêàòà íà username ìîæå äà å äîñòà ïî-ñîôèñòèöèðàíà ðàçáèðà ñå.
Ïîíå çàñåãà òîâà ìè íàïðàâè âïå÷àòëåíèå
.
Last edited by tedych; 11th December 2015 at 14:29.




Reply With Quote
Lenovo ThinkPad 15 èëè IdeaPad 15
5th May 2023, 22:16 in Ìîáèëíè êîìïþòðè