Pereiti prie turinio

Į MySQL įsideda ta pati informacija


Rekomenduojami pranešimai

Sveiki, kai įvedu informacija į savo formą ir paspaudžiu, kad įvestu informacija į MySQL lentelę po puslapio atnaujinimo toliau dedasi ta pati informacija. Maždaug kiek refresh'ų padarau tiek kartų ta pati informacija atsiranda MySQL lentelėje.

 

Štai kodas po įvestos informacijos (esu pradedantis tai tiesiog noriu išsiaiškinti kaip padaryti, kad neatsiradinėtų ta pati informacija po kiekvieno atnaujinimo puslapio.):

 

<!DOCTYPE html>
<head>
<title>PHP Mokymasis</title>
<meta charset=utf-8>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<?php
	$vardas = htmlentities($_POST['vardas']);
	$slaptazodis = htmlentities($_POST['slaptazodis']);
	$elpastas = htmlentities($_POST['elpastas']);
	$url = "login.php";
	@ $db = new mysqli('localhost', '*****', '*****', 'php_mokykla');

		if (mysqli_connect_errno())
			 {
			 echo "Failed to connect to MySQL: " . mysqli_connect_error();
 			}

 		$uzklausa = "INSERT INTO nariai (vardas, slaptazodis, elpastas) VALUES ('$_POST[vardas]', '$_POST[slaptazodis]', '$_POST[elpastas]')";

 		$rezultatas = $db -> query($uzklausa);

 			echo "Sėkmingai prisiregistruota!<br />";
 			echo "<a href=$url>Spausk čia ir prisijungsi</a>";

 		$db -> close();

?>
</body>

Nuoroda į pranešimą
Dalintis kituose puslapiuose

bandyk gale dadet header('Location: index.html');

 

tau tiesiog post reiksmes niekur nedingsta, jos lieka :) turi perkraut, kad jos dingtu ;)

 

EDIT: ne taip supratau, sorry, pasidaryk tiesiog el.pasta unique duombazeje, kad nedetu vienodu, tada gausi errora bandydamas dar karta idet :)

Redagavo justutiz
Nuoroda į pranešimą
Dalintis kituose puslapiuose

               $uzklausa = "INSERT INTO nariai (vardas, slaptazodis, elpastas) VALUES ('$_POST[vardas]', '$_POST[slaptazodis]', '$_POST[elpastas]')";

 

SQL injekcija. Kas iš mysqli naudojimo, jei nesugebi parametrų pribindinti. htmlentities() yra skirtas atvaizdavimui HTML'e.

Redagavo Silke
Nuoroda į pranešimą
Dalintis kituose puslapiuose

bandyk gale dadet header('Location: index.html');

 

tau tiesiog post reiksmes niekur nedingsta, jos lieka :) turi perkraut, kad jos dingtu ;)

 

EDIT: ne taip supratau, sorry, pasidaryk tiesiog el.pasta unique duombazeje, kad nedetu vienodu, tada gausi errora bandydamas dar karta idet :)

 

Ačiū labai. Unique padėjo :) O tai pavyzdžiui, kad būtų apsaugota sakykim ir vardas tai galima taip pat padaryti ir vardas unique ?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

O kaip šis variantas?

<!DOCTYPE html>
<head>
       <title>PHP Mokymasis</title>
       <meta charset=utf-8>
       <link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
       <?php
               $vardas = htmlentities($_POST['vardas']);
               $slaptazodis = htmlentities($_POST['slaptazodis']);
               $elpastas = htmlentities($_POST['elpastas']);
               $url = "login.php";
               @ $db = new mysqli('localhost', '*****', '*****', 'php_mokykla');

                       if (mysqli_connect_errno())
                        {
                        echo "Failed to connect to MySQL: " . mysqli_connect_error();
                       }

               $uzklausa = "INSERT INTO nariai (vardas, slaptazodis, elpastas) VALUES ('$_POST[vardas]', '$_POST[slaptazodis]', '$_POST[elpastas]')";

               //Postinam duomenis
               if(isset($_POST['registruotis'])){
               $rezultatas = $db -> query($uzklausa);
                       echo "Sėkmingai prisiregistruota!<br />";
                       echo "<a href=$url>Spausk čia ir prisijungsi</a>";
                       }
               $db -> close();


//Sukuriame forma
              echo "<form method='POST' action='$url'>
<label>Prisijungimo vardas</label>
<input type='text' name='vardas' value='$vardas' />

<label>Slaptažodis</label>
<input type='password' name='slaptazodis' />


<label>El. Paštas</label>
<input type='text' name='elpastas' value='$elpastas' />

<input type='submit' name='registruotis' value='Registruotis' />
</form>";

       ?>
</body>

Redagavo CheateRis
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Ačiū labai. Unique padėjo :) O tai pavyzdžiui, kad būtų apsaugota sakykim ir vardas tai galima taip pat padaryti ir vardas unique ?

 

pasidomėk įvairiais karkasais, nežinau kaip kiti, bet codeigniter `form_validation` biblioteka turi tokį callbacką kaip "is_unique" tai berods nurodai `is_unique[table.row_name]` ir tau tikrina. Jeigu neuinikalus grąžina FALSE

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ą...