Pereiti prie turinio

Registracijos klaidų tikrinimas ir atvaizdavimas


Rekomenduojami pranešimai

Sveiki, taigi darau registracijos sistemą (php/mysql) ir dabar nebežinau kaip padaryti, noriu padaryti jog užpildžius tam tikrus laukelius ir pamygus Registruotis rodomos klaidos būtų tame pačiame lange.

 

Dabar pas mane yra forma kurio action nukreipia į kitą failą (register2.php) tame faile aš prisijungiu prie SQL duomenų bazės, tikrinu ar laisvas slapyvardis ir ar žmogus taisyklingai užpildė duotus laukelius, jei yra kokia beda atvaizduoju su echo, bet nežinau kaip tas bedas atvaizduoti tame puslapyje kur yra mygtukas Registruotis...

 

register2.php atrodo taip: http://pastebin.lt/1044/

Nuoroda į pranešimą
Dalintis kituose puslapiuose

header() f-ja siunčia naršyklei header'į. šiuo atveju pasakytų kad reikia užkrauti puslapį register.php

 

Get tai yra metodas kuriuo perduodami formos duomenys. Gali pasidaryti kažką panašaus:

 


$error['steam'] = 1;

$error['nick'] = 1;

$error['email'] = 1;

header('Location: register.php?err=' . rawurlencode(serialize($error)));

 

Tada registracijos formoje darai unserialize, patikrini ar tame inpute buvo klaida ir atvaizduoji pranešimą apie klaidą virš inputo.

 

O kas dėl patikrinimo, na ten nėra būtina baisiai optimizuoti nes registracijos ne itin dažnas dalykas. Na bet galėtum SQL užklausų skaičių sumažinti iki vienos.

 

 

 

Redagavo ivg
Nuoroda į pranešimą
Dalintis kituose puslapiuose

register.php faile padariau štai taip, toje vietoje kur noriu jog rodytų errorus:

http://pastebin.lt/1045/

o register2.php faile taip:

http://pastebin.lt/1046/

 

Ir man iškarto meta errorą: Notice: Undefined variable: error in C:\wamp\www\test\register.php on line 53

 

EDIT: o jei tikrinimą darysiu tame pačiame faile kur ir forma, kaip man su formos action daryti ?

Redagavo addinol
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Suprantu kad klaidos svarbios, bet šiuo metu norėčiau labiau sužinoti ne kokios jos svarbios, o kaip jas ištaisyti ? :)

 

Darau prielaidą, kad tavo register.php failo 53 eilutėje yra šitas kodas:

if($error > 0)

 

Pati klaida "Notice: Undefined variable: error in C:\wamp\www\test\register.php on line 53" sako, kad nėra $error kintamojo, o tu toje eilutėje tikrini ar kintamasis yra daugiau už 0. Ištaisyti galima tiesiog patikrinus ar egzistuoja $error kintamasis

if(isset($error) && $error > 0)

, bet kaip paminėjo xvivax, geresnis sprendimas yra daryti validaciją tam pačiam faile, o redirectinti su header() tik kai sėkmingai įvykdyta registracija.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Undefined index: Submit in C:\wamp\www\test\register.php on line 6

 

$_POST['submit'], nesuprantu kur čia bėda gali būti..

 

Kai atsidarai puslapį nesiųsdamas jokios formos informacijos, $_POST masyvas būna tuščias, todėl ir PHP skundžiasi kad $_POST masyve nėra rakto "submit". Tiesiog pakeisk tą eilutę į

if (isset($_POST['submit']))

arba

if (!empty($_POST))

Redagavo alter
Nuoroda į pranešimą
Dalintis kituose puslapiuose

aj jo :))) dėkui. Dar beje klausimas kaip padaryti atgal grįžimo mygtuką, darant toje pačioje formoj'e jog jų abiejų type nebūtų submit, bet jis vykdytų kokią nors funkciją.

 

Vietoj

<input type="submit" value="Tekstas">

naudok

<button id="atgal">Tekstas</button>
arba
<input type="button" value="Tekstas">

ir paskui jau su JavaScript nuspresk ką jis turi daryti.

Redagavo alter
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...