büyük php konular

5 Cevap php

Ben basit bir giriş sistemi oluşturmak için çalışıyorum. Ben (doğru kullanıcı adı ve şifre ile) giriş formunu çalıştırdığınızda bu php çalıştırmak için görünmüyor. Herhangi bir öneriniz?

<?php
$host="linuxserver"; // Host name
$username="jparry2"; // Mysql username
$password=""; // Mysql password
$db_name="jparry2"; // Database name
$tbl_name="customer"; // Table name

// Connect to server and select databse.
mysqli_connect("$host", "$username", "$password")or die("cannot connect");
mysqli_select_db("$db_name")or die("cannot select DB");

// username and password sent from form 
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];

// To protect MySQL injection
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);

$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysqli_query($sql);

// Mysql_num_row is counting table row
$count=mysqli_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row

if($count==1){
// Register $myusername, $mypassword and redirect to file “login_success.php”
session_register("myusername");
session_register("mypassword"); 
header("location:login_success.php");
}
else {
echo "Wrong Username or Password";
}
?>

<html>
<body>

</body>
</html>

edit giriş formu kodu eklendi

<html>
<head><title>Login</title></head>
<body>


<form action='checklogin.php'
                method='POST' style='margin: .5in'>
    <p><label for='user_name' style='font-weight: bold;
   	      padding-bottom: 1em'>USER ID: </label>
       <input type='text' name='myusername' id='myusername'
	      value='' /></p>
    <p><label for='password' style= 'font-weight: bold'>Password: </label>
       <input type='password' name='mypassword' id='mypassword'
	      value='' /></p>
    <p><input type='submit' value='Login'> </p>
       <input type='hidden' name='sent' value='yes'/>

<a href= "/home/jparry2/public_html/register.php">Register</a>

    </form>

</body>
</html>

5 Cevap

Tarayıcınız php dosyasını indirmek istediğinde eğer php yorumlayıcı çağrılan değil demektir. yani yüklü veya doğru yapılandırılmamış yok.

Eğer herhangi bir hata mesajı alıyor musunuz? Bana ok gibi görünüyor. Örneğin eğer blok şey yankılanıyordu denediniz mi? Bu sizin yanlış anlamanıza yardımcı olabilir.

Kontrol veya deneyebilirsiniz bazı şeyler:

  • Hata raporlama var mı?
  • `Var_dump ($ _POST) koyun; die (); $ _POST değişkenleri doğru teslim olup olmadığını görmek için sayfanın üstüne.
  • Eğer header() fonksiyonundan önce tarayıcıya şey çıkış olmadığından emin olun. Eğer kapalı error_reporting ve kullandığınız tarayıcıya bir şey outputted Eğer header() boş bir beyaz sayfa neden olabilecek ölümcül bir hata neden olur.

Sizin kod birkaç diğer notlar:

  • Çift tırnak içine değişkenleri koymak gerekmez, onlar kendi üzerinde çalışmaya: mysqli_select_db("$db_name") olur mysqli_select_db($db_name)
  • Eğer mysql_real_escape_string yapıyoruz eğer stripslashes() gerekmez. İkincisi kendi işini idare edecek.

Bazı tarayıcılarda, Location başlığı harf duyarlıdır ve böylece header("location:login_success.php"); çağrısı [) (3] {(a comment çalışmıyor olabilir } dokümantasyon sayfasında suggests that this occurs in IE7). Try capitalizing the l Location.

Siz herhangi bir "session_start ()" yapmayın, böylece oturum kullanılamaz.

Belki sizin "login_success.php" komut başladı gerekir.

Ben revize ederek, Daniel katılıyorum header("Location: login_success.php");

Ayrıca, bu yazma sırasında beri bir yan not olarak, açıkça işe yaramadı ne açıkladı değildi, ama sen olması gereken oturum değişkenleri eklerken session_start().

Ayrıca PHP: session_register böyle bir şey denemek session_register() PHP alınan 5.30 itibariyle önerilmemektedir beri $_SESSION['variable'] kullanmayı deneyin

if($count==1){
session_start();
// Register $myusername, $mypassword and redirect to file “login_success.php”
$_SESSION['username'] = $myusername;
$_SESSION['mypassword'] = $mypassword;
session_write_close(); // makes sure nothing was lost during redirect
header('Location: nextpage.php');
}