2012-01-21 22 views
0

私は他の人と共有するテストサーバーの下にサイトを開発しています。一度すべてを終えたら、NearlyFreeSpeech.netでホストしてネームサーバーを切り替えました。私はテストサーバー上の特定のフォルダを持っていたので、すべてのURLを変更する必要がありました。私は検索と置換の代わりにこれをすべて手作業で行ったので、すべてが正しいと確信しています。新しいホスティング - 権限の問題?

しかし、私は一連の問題を持ってきたし、彼らはすべての関連するように見えます。最初は、アクセス権の問題のために特定のファイルにアクセスできませんでした。私はある種のMySQLの "許可が拒否されました"という種類のエラーが発生していました。私はまた、特定の条件をチェックする多くのPHPファイルを参照しています(必要なユーザー名は無料で、パスワードは正しいなどです)。何らかの理由で、コードの内容が同じであっても、私はテストサーバー上でそれを持っていた。これらのJSバリデーションを無効にした後、私はログイン/登録しようとしていますが、その多くはサーバー側の検証で不当なエラーを返すので、間違いが間違っています。

私はこのすべての間でCHMOD 777にいくつかの時間をすべてのファイルを設定してしまった、それはいくつかのエラーを処分しました。しかし、私はまだそれらの検証エラーが発生しているし、ときどきログインすると、セッションが開始されません。

提案がありますか?

EDIT:

特定の場合の例として:

$query = "SELECT * FROM registerusers WHERE username='$username'"; 
$res = mysql_query($query); 

if (mysql_num_rows($res) == 1) { 
    $output = false; 
} else { 
    $output = true; 
} 
    echo json_encode($output); 

これは常に1行を返します。私の元のスクリプトでは、if (mysql_num_rows > 0)を使用していました。ただし、ここでは、そのコードは機能しません。それを==に変更することで、常に1を返していると判断し、その句を実行します。ユーザー名が存在する場合は1を返します。私はまったく困惑しており、ホスティングを変えるだけでどのようにこのようなエラーが発生するのか本当に分かりません。オリジナルのポストとコメントから、問題はどんな確信を持っているかを決定するために、おそらくことはできませんので、

+0

どのようにファイルを転送しましたか?スクリプトでftp_putでファイルを転送し、FTP_BINARYの代わりにFTP_ASCIIのような型を持っていたときに、何らかの許可の問題があることを覚えています。 –

+0

MySQLの「許可が拒否されました」は、データベースの資格情報が間違っている可能性が高いためです。セッションに問題がある場合は、セッションを開始する前に何かをブラウザに出力している可能性があります。まず、開発マシンでこの問題をデバッグする必要があるかもしれません。 – halfer

+0

質問は本当にあいまいですが、アクセス権に関連するMySQLのエラーがある場合は、ストアドプロシージャ/関数/トリガ本体をチェックすることもできます。 spを作成すると、明示的に指定しなくても 'definer = [username]'が追加され、古いシステムのmysqlユーザが新しいシステムに存在しない可能性があります。移行プロセス。 – a1ex07

答えて

0

私は、固定のために、ここでの戦略を提供します。私がそれに取り組む方法は、Webアプリケーションが開発環境で正常に動作し、前のサーバーで正常に動作していることを前提としています。検証に失敗するという問題は、新しいサーバーでのみ発生します。

私はあなたのアプリケーション(または、PHP)を見ているか見てみましょうライブ環境への書類に追加します。たとえば、環境変数から読み込まれるクエリ文字列値は、新しいサーバーの別のenv varから読み取られる必要があります。そのような場合、これは珍しいphp.ini設定を指しているかもしれません。

これは、さまざまな方法で実行できます。私にとっては、SSH経由で問題のサーバにログオンし、ファイルをnano(または使用可能なテキストベースのエディタ)に持ってくることがあります。この戦略では、サーバー上のバージョンコントロールを展開用に使用するのが理想的です。つまり、Subversionを使用する場合は、単にsvn revert file.phpを実行するだけで、デバッグの編集を一挙に削除できます。しかし、共有ホスティングを使用している場合、これは利用できないかもしれません(私はあなたが言ったとは思わない)。

共有ホスティングの場合は、ホームルートにファイルが存在するかどうかによって、条件付きデバッグ文を追加できます。このファイルが存在する場合、公開デバッグ(print_r() vars to screen to exit)またはプライベートデバッグ(サーバーファイルにダンプして解析のためにFTPすることができます)のいずれかです。私はあなたのdevマシンでこれを行い、正常に動作していることを確認し、バージョン管理にコミットし、通常の方法でそれを送信し、修正されたことを確認してから現在のバージョンを削除します。

補足:私がコメントで述べたように、一時的にエラー/警告の報告を有効にします。これは、後天的に明らかな問題を明らかにする可能性があります。

1

mysql_num_rows()の代わりにmysql_fetch_row()を使用し、返される内容を確認してください。 私たちを更新してください - 私は不思議です!

関連する問題