簡體   English   中英

用於登錄和注銷的 PHP 和會話

[英]Php and session for login and logout

我有一個我無法解決的問題。 我在 html 中做了一個登錄頁面,訪問 accesso.php 有兩個參數:用戶名和密碼。 一旦發生這種情況,如果用戶名和密碼正確,我就可以向此特定登錄名添加數據。 如果我返回登錄表單並在字段中使用另一個用戶名和密碼進行簽名以刪除某些記錄(第 112 行),則沒有以前登錄的記錄,並在刷新時自行更新。 你知道幫我安排會議嗎? 這是我的代碼。

<html>
<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<style type="text/css">
#main{
margin:0 auto;
padding:0;
background-color:grey;
/*Stile shadow dietro css3*/
/*-moz-box-shadow: 5px 5px 100px #FFF;*/
/*-webkit-box-shadow: 5px 5px 50px #FFF;*/
/*box-shadow: 10px 10px 5px #FFF;*/
/*consiglio sempre di specificare le dimensioni del main*/
width:500px;
height:950px;
margin-top:110px;

/*Bordi arrotondati css3*/
-moz-border-radius: 85px;
-webkit-border-radius: 15px;
border-radius: 15px;

}

#centro{
position:absolute;
margin-left:70px;
margin-top:20px;


}
h1{

color:red;
}

p{

color:red;
}

</style>
</head>
<?php



$archivio=mysql_connect("localhost","root","");
$select=mysql_select_db("disco");
$username = $_POST["utente"]; //username 
$password = $_POST["password"]; //password

session_start();
$provaT = $_SESSION['username'];//nome del locale non so come lo trova

echo $provaT;//stampa a video nome del locale


mysql_query("SET NAMES utf8"); // per caratteri speciali
$sql = "SELECT * FROM locali WHERE username = '$username' AND password = '$password'"; //query verifica se username e password coincidono
$res = mysql_query($sql) or die (mysql_error());

if(mysql_num_rows($res) > 0)//se è presente
{



   while($row = mysql_fetch_array($res)) {
  $_SESSION['username'] = $row['nome']; // la sessione prende il nome della colonna nome del db


   ?>

<body background="texture_disco.jpg">
<div id="main">
<div id="centro">
<?php
echo "<h1>Benvenuto ".$row['nome']."</h1>";

$space = str_replace(' ',"",$provaT);
$risultato=mysql_query("SELECT * FROM $space");
?>

<form method="post" action="prova.php" >
<h5>titolo</h5>


<input type="name" name="nome" value="" id="nome">
<br>
<br>
<br>
<textarea name="des" rows="20" cols="45">
Scrivi qui la tua recensione (Max 1000 caratteri ...)

</textarea>
<br>
<br>
<input type="name" name="link" value="" id="link">
<br>
<br>
<input type="submit" value="Inserisci Evento">

</form>
<form  method="post" action="delete.php" >
<select name ="record">
<?php

while($ok=mysql_fetch_array($risultato))
{

echo "<option value='".$ok['_id']."'>".$ok['nome']."</option>";

}

echo '<h1>'.$ok['nome'].'</h1>';
?>
</select>
<input type="submit" value="Elimina evento" name="delete">
</form>

<input type="submit" value="Elimina sessione" name="delete">

  <?php }
}

else
{
header("Location: errore.php");

}
$gammaT=mysql_close($archivio);





?>

</html>

這是文件刪除了數據庫中條目的門

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />


<style type="text/css">

#contEst{
top:70;
margin:0 auto;
padding:0;
margin-top:-30px;
background-image:url('sfondo.jpg');
/*Stile shadow dietro css3*/
/*-moz-box-shadow: 5px 5px 100px #FFF;*/
/*-webkit-box-shadow: 5px 5px 50px #FFF;*/
/*box-shadow: 10px 10px 5px #FFF;*/
/*consiglio sempre di specificare le dimensioni del main*/
width:500px;
height:500px;
margin-top:100px;

/*Bordi arrotondati css3*/
-moz-border-radius: 85px;
-webkit-border-radius: 15px;
border-radius: 15px;



}


</style>
</head>






<body>
<div id="contEst">
<?php

session_start();

$provaR = $_SESSION['username'];
echo '<h1>'.$provaR.'</h1>';
$archivio=mysql_connect("localhost","root","");
$beta=mysql_select_db("disco");
$space = str_replace(' ',"",$provaR);
$risultato=mysql_query("SELECT * FROM $space");
$canc = $_POST["record"];
$spazi_titolo =mysql_real_escape_string($canc);

$via=mysql_query("DELETE FROM $space WHERE _id='$canc'");
 session_destroy();
mysql_close($archivio);

////////////////



/////////////////
echo '<h3>'."Voce cancellata correttamente".'</h3>';
//echo("$provaR"); stampa nome locale
 //echo '<a href="http://localhost/disco/Accesso.php"><input type="submit" value="Torna alla Home"></a>';


if(!$_COOKIE){
 echo '<a href="http://localhost/disco/Accesso.php"><input type="submit" value="Torna alla Home"></a>';

}

else{

echo "errore";
}

?>

</div>

</body>

</html>

在這個文件“test.php”中,我在數據庫中添加了條目

<html>
<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

</head>

<?php
session_start();
$provaT = $_SESSION['username'];
$title = $_POST['nome'];
$des = $_POST['des'];
$link = $_POST["link"];
$archivio=mysql_connect("localhost","root","");
$beta=mysql_select_db("disco");
$spaziT =str_replace(" ", "", $provaT);
$spazi =mysql_real_escape_string($des);
$spazi_title =mysql_real_escape_string($title);
mysql_query("INSERT INTO $spaziT(nome,descrizione,link) VALUES('$spazi_title','$spazi','$link')");


echo "Nuovo evento creato";

  mysql_close($archivio);

   echo '<a href="http://localhost/disco/icone.html"><input type="submit" value="Torna alla Home"></a>';
?>




</html>

無論發生什么,這都行不通:

header("Location: errore.php");

標題僅在您尚未向瀏覽器輸出任何文本時才有效...

在這里閱讀: http : //www.php.net/manual/en/function.header.php

請記住,header() 必須在發送任何實際輸出之前調用,無論是通過普通的 HTML 標記、文件中的空行還是來自 PHP。 使用 include 或 require 函數或其他文件訪問函數讀取代碼,並且在調用 header() 之前輸出空格或空行,這是一個非常常見的錯誤。 使用單個 PHP/HTML 文件時存在同樣的問題。

你也從未關閉這些標簽

<body background="texture_disco.jpg">
    <div id="main">
        <div id="centro">

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM