Results 1 to 7 of 7

Thread: php ôîðìè

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Registered 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.

  2. #2
    Âåãàí íà ìåñíà äèåòà XaMaB's Avatar
    Join Date: Nov:2001
    Location: Ñîôèÿ
    Posts: 20,387
    Ïîñëåäíà ðåäàêöèÿ: èçâúðøåíà îò XaMaB; íà äíåøíà äàòà. 0.42 ñåêóíäè ñëåä ïóñêàíå íà ïîñòà

    In God we Trust (all others must submit a X.509 certificate). Àêî ñïîðèø ñ èäèîò, âåðîÿòíî è òîé ïðàâè ñúùîòî èëè ñè ïîïàäíàë íà ïàðòèåí (íåïúëåí) ÷ëåí

  3. #3
    Registered User
    Join Date: Dec:2015
    Location: Ïëîâäèâ
    Posts: 4
    Ìåðñè, èñòèíàòà å ,÷å çà ïîñëåäíèòå íÿêîëêî äíè èç÷åòîõ è èçãëåäàõ äîñòà òóòîðèàëè, íàäÿâàì ñå òîçè êîéòî ñè ïðàòèë äà ìè ïîìîãíå!

    EDIT: Èçãëåäàõ êëèï÷åòî, 47ìèíóòè ñå ìú÷èõ ñ àêöåíòà íà èíäèåöà, îáà÷å âñå ïàê ðàçáðàõ íÿêîëêî íåùà,çàòîâà áëàãîäàðÿ! Àêî ìîæå îáà÷å ,âñå ïàê íÿêîé íàâúòðå â íåùàòà äà ìè ïîìîãíå ïîíå ñ ðåäèðåêòâàíåòî êúì ñëåäâàùàòà ôîðìà, çàùîòî ïðîñòî íå ìîãà äà ÿ èçìèñëÿ òàçè ïðîâåðêà, âñè÷êèòå íà÷èíè êîèòî ïðîáâàõ áÿõà íå óñïåøíè, èëè ðåäèðåêòâà áåç ïðîâåðêà, èëè êîäúò ñå ÷óïè
    Last edited by MrBlazeAlot; 10th December 2015 at 22:02.

  4. #4
    Registered User tedych's Avatar
    Join Date: Nov:2003
    Location: Ïëîâäèâ
    Posts: 17,654
    Íå ñúì ãëåäàë êëèïà, íî êàòî êàçà, ÷å å èíäèåö (îñîáåíî òèÿ ñ ãàäíèòå àêöåíòè, çàùîòî èìà è ïî-êàäúðíè), äèðåêòíî òå ñúâåòâàì äà èìàø åäíî íàóì.
    ßâíî íîìåðúò ñ êóðñîâàòà å ïðîñòî äà îòáèåø íîìåðà.

    Ãîðíèÿò êîä èçãëåæäà äîñòà íåäîâúðøåí.
    Íå ðàçáðàõ êàêúâ å ïðîáëåìà ñ ðåäèðåêòà. Êàòî öÿëî òðÿáâà äà ñè èçÿñíèø ñòðóêòóðàòà íà ïðîâåðêèòå è áëîêîâåòå, êîãà êúäå òðÿáâà äà ñå ðåäèðåêòíå è êàê, ïðåäè èçîáùî äà òðúãíåø äà ïèøåø êîä.

    Àêî ñè òðúãíàë ñ ÷èñò PHP äà ïðàâèø ïðîâåðêèòå, ïðè ñúáìèòà ñè ãè ïðîâåðÿâàø åäíî ïî åäíî, è íàêðàÿ íà handler-à ïðîâåðÿâàø äàëè èçîáùî èìà ãðåøêà, è àêî èìà âðúùàø ñúùàòà ñòðàíèöà ñ ïîïúëíåíèòå äî ìîìåíòà îò ïîòðåáèòåëÿ äàííè (çà äà íå ãî ìú÷èø äà ãè ïîïúëâà ïîíå ïîâå÷åòî, îòíîâî) ïëþñ íÿêàêâà èíäèêàöèÿ êúäå å ñãðåøèë.
    Àêî ñà íàðåä, ïðàâèø åäèí header(..) êúì ñëåäâàùàòà ñòðàíèöà, êîÿòî ùå ÷åòå ñåñèÿòà ñ äî_ìîìåíòà_äàííèòå è âå÷å òè ðåøàâàø äàëè ùå ãè ïîêàçâà èëè ïðîñòî ùå äîïúëâà ñåñèÿòà ñ âòîðà ïîðöèÿ äàííè, ñ ïîäîáíà ëîãèêà íà ïðîâåðêà.

    Îòíîâî - òðúãíàë ñè íÿêàê îòçàä íàïðåä. Âèæ è ñè îáèãðàé ïîâå÷å çíàíèÿòà êàê ðàáîòè HTTP, ñåñèèòå, ðåäèðåêòâàíèÿòà, è êàòî öÿëî PHP, ñèíòàêñèñ è ò.í., çàùîòî èçãëåæäà èìàø çàòðóäíåíèÿ äîðè â áàçîâè ôóíêöèè íà åçèêà è ïðîòîêîëèòå.

  5. #5
    Registered User
    Join Date: Dec:2015
    Location: Ïëîâäèâ
    Posts: 4
    Êàòî öÿëî ñè ïðàâ çà ïîâå÷åòî íåùà, íî íå è çàòîâà ,÷å èñêàì äà îòáèÿ íîìåðà.. Ãîðíèÿ êîä èìà êîïè/ïåéñò ãðåøêè îò áúðçàíå, êîèòî âå÷å ñà îïðàâåíè, ñúùî òàêà ñå ñïðàâèõ ñ ïðîâåðêàòà çà âàëèäíîñò è ðåäèðåêò-à. Oòíîñíî ïîçíàíèÿòà ìè ïî php ñúùî ñè àáñîëþòíî ïðàâ, çàùîòî ñå çàíèìàâàì ñ íåãî ìíîãî îò ñêîðî, à è èñòèíàòà å, ÷å êàòî âòîðîêóðñíèê òåïúðâà íàâëèçàì ÎÎÏ-òî êàòî öÿëî.. Ïðîáëåìà ìè äîéäå îáà÷å, îò òàì, ÷å ïîäöåíèõ çàäàíèåòî è íå ñè îñòàâèõ äîñòàòú÷íî âðåìå è ñúùî òàêà, ÷å ïðåäìåòà ìè å èçáèðàåì è èìàì ñàìî ëåêöèè áåç óïðàæíåíèÿ (êîäúò å èçöÿëî íàïèñàí(ñãëîáåí) îò ìåí ñ ìèíèìàëíè ïîçíàíèÿ â îáëàñòòà, êàêòî îòáåëÿçà, áåç âúçìîæíîñò äà âèäÿ ïðèìåðè èëè äà ñå äîïèòàì çà ïîìîù. Ñúùî òàêà ãîëÿì ïðîöåíò îò âðåìåòî ìè çà ó÷åíå ïðîñòî å çàåò îò ìàòåìàòèêè.. Èíà÷å ôîðìèòå ñà þçúð ôðåíäëè è ñå ñàìîïîïúëâàò ñ èíôîðìàöèÿ îò ñåñèÿòà ïðè back,refresh è ïðåìèíàâà îò äðóãà ôîðìà.. Èíà÷å ìåðñè çà êðèòèêèòå, àç ñè ãè çàñëóæàâàì ;(.

    On topic:
    Ôîðìèòå ñà ãîòîâè, íåùàòà ðàáîòÿò, îñòàâà ìè ïðîâåðêà äàëè ñà íàëè÷íè âñè÷êè çàäúëæèòåëíè åëåìåíòè, çàïèñâàíå â áàçà äàííè è âèçóàëèçèðàíå îò òàì.. ïðîìåíÿì êîäà îò ïúðâîòî ìíåíèå íà ïîïðàâåíèÿ ñ ïðîâåðêàòà è äîïúëâàì ñ html-a, ïðîäúëæàâàì äà ðîâÿ íåò-à çà äà èçó÷àâàì sql-à..

  6. #6
    Registered User tedych's Avatar
    Join Date: Nov:2003
    Location: Ïëîâäèâ
    Posts: 17,654
    Èçâèíÿâàé àêî íåùî , çàùîòî â 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.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Copyright © 1999-2011 Õàðäóåð ÁÃ. Âúçìîæíî å ñúäúðæàíèåòî íà òàçè ñòðàíèöà äà å îáåêò íà àâòîðñêè ïðàâà.
iskamPC.com | mobility.BG | Bloody's Techblog | Êðèïòîâàëóòè è ìàéíèíã | 3D Vision Blog | Ìàãàçèí çà åëåêòðîííè öèãàðè