[アドバイスを求める] 5.2 ではセッション データベース エラーが発生するのに、5.5 では正常であるのはなぜですか?
ini 設定ファイルはすべてデフォルトです (そのはずです。変更した覚えはありません)
助けてください、わかりません
に返信議論(解決策)
エラーメッセージに示されたファイルとエラー行をよく見てください
エラーメッセージに示されたファイルとエラー行をよく見てください
リミッター これは理解できません
それCookie ヘッダーが送信されたようです (クライアントがサーバーに送信するか、その逆かは不明です)
すべてのエコーを削除しました。エラー メッセージはありませんが、データはデータベースに保存されません
session_start(); 前に出力がない場合は、echo... 行をコメントアウトして確認してください。
session_start(); その前に出力がないことはありません。echo... 行をコメントアウトして確認してください。
エコーはコメントされていますが、プロンプトはありません。データベースにデータがありません。これは、操作が失敗し、エラー プロンプトが表示されないことを意味します。
誰も解決できませんか?コード (スクリーンショットはありません!)
インポートされたファイル userSession.php
/**
* PhpStorm によって作成されました。
* ユーザー: Admin_BIN
* 日付: 2015/12/2
* 時間: 14:03
*/
function userSessionBegin(){
echo "
Begin
"
}
function userSessionEnd ( ){
echo "
End
";
}
/**
* 読み取り操作
* 実行タイミング: セッション機構がオープンされたときに実行
* 作業: 現在のセッションデータ領域から内容を読み取ります
* @param $sess_id string
* @return string
**/
function userSessionRead($sess_id){
echo "
Read< br />";
//データベースサーバー接続を初期化します
$link=mysqli_connect("localhost","root","root","matchsys");
mysqli_query($link,"set names utf8");
/ /Query
$sql="select session_content from `session` where session_id='$sess_id'";
$result=mysqli_query($link,$sql);
if($row=mysqli_fetch_assoc($result)); $row["session_content"];
}else{
//見つからない場合は空の文字列を返します
using use using using using using through using ‐ ‐ ‐ return ‐ $row["session_content"] ){
echo ";
Write
";
//データベースサーバー接続を初期化します
$link=mysqli_connect("localhost","root","root","matchsys");
mysqli_query($link, "set names utf8");
//$sql="`sess_id','$sess_content') に置き換えます。
//$sql="`session` 値に挿入します(' $sess_id','$sess_content') 重複キー更新 session_content='$sess_content',last_time=unix_timestamp()";
return mysqli_query($link,$sql);
}
/*
* 削除操作
* 実行タイミング: session_destory() はセッション破棄中に呼び出されます (){
echo "
Delete
"
//データベースサーバー接続を初期化します
$link=mysqli_connect("localhost","root") ,"root","matchsys");
mysqli_query($link,"set names utf8");
//削除
$sql="where session_id='$sess_id'"
return mysqli_query( $link,$sql);
}
function userSessionGC(){
echo "
GC
";
//Set
session_set_save_handler("userSessionBegin","userSessionEnd"," userSessionRead",
"userSessionWrite","userSessionDe lete ","userSessionGC");
メインファイル session_3.php
/**
* 書き込み操作
* 実行タイミング: スクリプト サイクルの終わり、PHP が終了するとき
* 作業: 現在のスクリプトによって処理されたセッション データをデータベースに永続化します。
* @param $sess_id string
* @param $sess_content string シリアル化されたセッションコンテンツ文字列
* @return bool
**/
require "./userSession.php";
$_SESSION["class_name"]="PHP";
データベース SQL
データベース matchSys charset utf8 を作成します。 ;
matchSys を使用;
テーブル `session` を作成します (
session_id varchar(40) not null デフォルト ''、
session_content text、
last_time int not null デフォルト 0、
主キー (session_id)
)charset=utf8 Engine=myisam ;
ありがとうございます! ! !
データベース選択を追加しようとしたのですが、これは同じです
列数が行の値数と一致しません。 1
不一致の値の数は 1 にランク付けされます
$sql="replace into `sess`values('$sess_id','$sess_content')"
テーブルには 3 つの列がありますが、挿入されたのは 2 つの列だけです
$time = time ();
$sql="replace into `sess_id','$sess_content', $time)";
列数が行 1 の値数と一致しません
$sql="replace into `sess`values('$sess_id','$sess_content')";
テーブルには 3 つの列がありますが、挿入したのは 2 つの列だけです
$time = time();
$sql="replace into `sess_id','$sess_content', $time)";
そのエラー メッセージはこれとは関係ありません。デフォルトを追加した場合でも、挿入しました。 2 つの値、3 番目の値はデフォルトで挿入されます
3 番目の値は指定されておらず、自動的にデフォルト値 0 になります
列数が値の数と一致しません行 1 このエラーを報告してください。
どうしても表示されない場合は、仕方ありません
テーブルのデータ列が指定された値と一致しません。このエラーは非常によく発生します。デフォルトを指定するか、値を指定してください。自分を騙さないでください!
テーブルには session_id、session_content、last_time の 3 つの列があります。
挿入コマンドは $sql="replace into `sess_id','$sess_content')" です
デフォルトを指定するだけですが、デフォルト以外のフィールドのリストが必要です
または値を指定するだけですが、指定しませんでした
欠けているのは、最後の列である last_time です。つまり、 giveまたは、後でこの値を入力したときに、関数 unix_timestamp()、
が与えられましたが、その値は確かに 0 だったので、それを削除しました。問題は解決されましたが、もう 1 つ問題が発生すると、問題はさらに複雑になります
挿入されてないって言ってませんでしたか?
そこで、コードを投稿するようにお願いしました
前に 5.2 は機能しないと言いましたが、5.5 は機能します。私が知りたいのは、なぜ 5.2 が機能しないのかということです
userSessionWrite のreturn mysqli_query($link,$sql) を
mysqli_query に変更します。 ($link,$ sql) または die(mysqli_error($link));
おわかりでしょう
私が言ったことはすべて実際のテストであり、単なる話ではありません
php 5.4 は列数が行 1 の値数と一致しません
これがエラーです
警告: session_start() [function.session-start]: セッション キャッシュ リミッターを送信できません - ヘッダーはすでに送信されています (出力は D:projectmyCodemystatephpczbkwork2015.05core で開始されました)

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。
