Pereiti prie turinio

Rekomenduojami pranešimai

Sveiki visi, taigi iškilo problema su registracijos.php failiuko kur kreipiasi i mysql. Peržiūrėjau koda visa bet taip ir nesuprantu del ko man meta tuos erorus. Ši programa turėtu priregistruoti žmogu kuris irase savo username ir passworda i duomenu baze 'test'.

 

registracija.php

<?php
// tikrinama ar ivygdyta forma
if(isset($_POST['username']))
{
//Priskiriami kintamieji
$user = $_POST['username'];
$pass = $_POST['password'];
$pass2 = $_POST['password2'];
//tikrinam ar nera tusciu lauku
if($user<>"" AND $pass<>"" AND $pass2<>"")
{
if($pass==$pass2)
{
      if(strlen($pass)>=4)
   {
	  $con =mysql_connect('localhost', 'root', '');
	  if(!con)
	  {
		die("Could not connect:".mysql_error());  
	  }

	  mysql_select_db("test", $con);
	  $pass = md5($pass);
	  if(mysql_num_rows(mysql_query("select * from vartotojai where username = '$user'")))
	  {
		echo"Vartotojas uzimtas";  
	  }else{
		mysql_query("insert into vartotojai (id, username, password) VALUES('' , '$user' , '$pass')");  
	    echo"Sekmingai uzsiregistravote";
	  }
   }else{
	 echo"Slaptazodis per trumpas";  
   }

}else{
	echo"Slaptazodziai nesutampa";
}

}else{
 echo"Ne visi laukai uzpildyti";
}
}
?>

<form method='POST'>
username <input type='text' name='username'><br>
Password <input type='password' name='password'><br>
Passwordx2 <input type='password' name='password2'><br>
<br>
<input type='submit' value='Registruotis'>
</form>

 

 

ir metami errorai:

<!-- saved from url=(0033)http://localhost/registracija.php -->
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><style></style></head><body><br>
<font size="1"><table class="xdebug-error xe-deprecated" dir="ltr" border="1" cellspacing="0" cellpadding="1">
<tbody><tr><th align="left" bgcolor="#f57900" colspan="5"><span style="background-color: #cc0000; color: #fce94f; font-size: x-large;">( ! )</span> Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\wamp64\www\registracija.php on line <i>16</i></th></tr>
<tr><th align="left" bgcolor="#e9b96e" colspan="5">Call Stack</th></tr>
<tr><th align="center" bgcolor="#eeeeec">#</th><th align="left" bgcolor="#eeeeec">Time</th><th align="left" bgcolor="#eeeeec">Memory</th><th align="left" bgcolor="#eeeeec">Function</th><th align="left" bgcolor="#eeeeec">Location</th></tr>
<tr><td bgcolor="#eeeeec" align="center">1</td><td bgcolor="#eeeeec" align="center">0.0010</td><td bgcolor="#eeeeec" align="right">245600</td><td bgcolor="#eeeeec">{main}(  )</td><td title="C:\wamp64\www\registracija.php" bgcolor="#eeeeec">...\registracija.php<b>:</b>0</td></tr>
<tr><td bgcolor="#eeeeec" align="center">2</td><td bgcolor="#eeeeec" align="center">0.0306</td><td bgcolor="#eeeeec" align="right">246152</td><td bgcolor="#eeeeec"><a href="http://www.php.net/function.mysql-connect" target="_new">mysql_connect</a>
(  )</td><td title="C:\wamp64\www\registracija.php" bgcolor="#eeeeec">...\registracija.php<b>:</b>16</td></tr>
</tbody></table></font>
<br>
<font size="1"><table class="xdebug-error xe-notice" dir="ltr" border="1" cellspacing="0" cellpadding="1">
<tbody><tr><th align="left" bgcolor="#f57900" colspan="5"><span style="background-color: #cc0000; color: #fce94f; font-size: x-large;">( ! )</span> Notice: Use of undefined constant con - assumed 'con' in C:\wamp64\www\registracija.php on line <i>17</i></th></tr>
<tr><th align="left" bgcolor="#e9b96e" colspan="5">Call Stack</th></tr>
<tr><th align="center" bgcolor="#eeeeec">#</th><th align="left" bgcolor="#eeeeec">Time</th><th align="left" bgcolor="#eeeeec">Memory</th><th align="left" bgcolor="#eeeeec">Function</th><th align="left" bgcolor="#eeeeec">Location</th></tr>
<tr><td bgcolor="#eeeeec" align="center">1</td><td bgcolor="#eeeeec" align="center">0.0010</td><td bgcolor="#eeeeec" align="right">245600</td><td bgcolor="#eeeeec">{main}(  )</td><td title="C:\wamp64\www\registracija.php" bgcolor="#eeeeec">...\registracija.php<b>:</b>0</td></tr>
</tbody></table></font>
Sekmingai uzsiregistravote
<form method="POST">
username <input type="text" name="username"><br>
Password <input type="password" name="password"><br>
Passwordx2 <input type="password" name="password2"><br>
<br>
<input type="submit" value="Registruotis">
</form></body></html>

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Kazka bandziau bet nesigavo nors erroru nemeto.

<?php
// tikrinama ar ivygdyta forma
if(isset($_POST['username']))
{
//Priskiriami kintamieji
$user = $_POST['username'];
$pass = $_POST['password'];
$pass2 = $_POST['password2'];
//tikrinam ar nera tusciu lauku
if($user<>"" AND $pass<>"" AND $pass2<>"")
{
if($pass==$pass2)
{
      if(strlen($pass)>=4)
   {
	   $link = mysqli_connect("localhost", "root", "", "test");
	   if (mysqli_connect_errno()) {
          printf("Connect failed: %s\n", mysqli_connect_error());
          exit();
          }

	  $pass = md5($pass);
	  if(mysqli_fetch_row(mysqli_query($link,"select * from vartotojai where username = '$user'")))
	  {
		echo"Vartotojas uzimtas";  
	  }else{
		mysqli_query($link,"insert into vartotojai (id, username, password) VALUES('' , '$user' , '$pass')");  
	    echo"Sekmingai uzsiregistravote";
	  }
   }else{
	 echo"Slaptazodis per trumpas";  
   }

}else{
	echo"Slaptazodziai nesutampa";
}

}else{
 echo"Ne visi laukai uzpildyti";
}
}
?>

<form method='POST'>
username <input type='text' name='username'><br>
Password <input type='password' name='password'><br>
Passwordx2 <input type='password' name='password2'><br>
<br>
<input type='submit' value='Registruotis'>
</form>

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Neveikia kaip ? Vistiek arba mysql error'as turi buti (nes id - '' negali būti) ar php error'as. Arba bent jau kurioje vietoje iš šių (Sekmingai uzsiregistravote, Ne visi laukai uzpildyti, ......) sustoja skripto vykdymas ?

 

Jeigu nepavyksta debug'inti, skripto viršuj pridėk:

<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);


....

 

taip pat php.ini nustatyk display_errors = On

Nuoroda į pranešimą
Dalintis kituose puslapiuose

O Dieve :ph34r:

 

Bent jau nerašyk if'ų if'ų if'uose, kaip pats susigaudai paskui tame?

 

$errors = [];

if( ! $username ) {
 $errors[] = 'Neįvestas vartotojo vardas.';
}
if( ! $password ) {
 $errors[] = 'Neįvestas slaptažodis.';
}

.... 

if( empty( $errors ) ) {
 //praėjo visas patikras - dedi į db
} else {
 var_dump( $errors );
}

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Sveiki visi, ačiū už jūsų patarimus ir kritika. Susitvarkiau šias bėdas. Labai ačiū už pagalba.

 

jei kam įdomu, įdedu ir padaryta kodą registracijos:

 

registracija.php

 

<?php

   define('DB_SERVER', 'localhost');
   define('DB_USERNAME', 'root');
define('DB_PASSWORD', '');
define('DB_DATABASE', 'test');
$db = mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE);
$msg = "";

if(isset($_POST['registracija']))
{
$user  = $_POST["username"];
$pass  = $_POST["password"];
   $pass2 = $_POST["password2"];

if($user<>"" AND $pass<>"" AND $pass2<>"")
{
if($pass==$pass2)
{
      if(strlen($pass)>=4)
   {

	$user = mysqli_real_escape_string($db, $user);
	$pass = mysqli_real_escape_string($db, $pass);
	$pass = md5($pass);

    $sql="SELECT username FROM vartotojai WHERE username='$user'";
	$result=mysqli_query($db,$sql);
	$row=mysqli_fetch_array($result,MYSQLI_ASSOC);
	if(mysqli_num_rows($result) == 1)
	{
	 $msg = "Atsiprasome... Sis vartotojo vardas jau egzistuoja, prasome pasirinkti kita";
	}
	else
	{
		$query = mysqli_query($db, "INSERT INTO vartotojai (username, password)VALUES ( '$user', '$pass')");
		if($query)
		{
	     $msg = "Jus sekmingai uzsiregistravote";
		}
	}
   }else{
	$msg = "Slaptazodis per trumpas turi buti bent 4 simboliu.";
   }

}else{
	$msg = "Slaptazodziai nesutampa";
}

}else{
 	$msg = "Ne visi laukai uzpildyti";
}
}
?>

<form method='POST'>
<tr>
<td colspan="2" align="center" class="error"><?php echo $msg;?></td>
</tr>
<br>
<h4>username</h4> 
<input type='text' name='username'>
<h4>Password</h4>
<input type='password' name='password'>
<h4>Passwordx2</h4> 
<input type='password' name='password2'>
<br></br>
<br></br>
<input type='submit' value='Registruotis'name="registracija">

</form>

Redagavo Justinas244
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.

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