2011-07-27 3 views
0

J'ai créé un formulaire de connexion sur un autre serveur et il a parfaitement fonctionné, maintenant je TRANSFÉRÉ à un autre serveur et im obtenir beaucoup de nouvelles erreurs:formulaire de connexion PHP problème

Avertissement: Impossible de modifier les informations d'en-tête - têtes déjà envoyés par (la sortie a démarré à /home/davethom/public_html/login.php:16) dans /home/davethom/public_html/login.php à la ligne 55

mais le login réel fonctionne ce message apparaît juste, c'est probablement juste moi stupide et manquant quelque chose,

www.scottechtrio.co.cc/login.html nom d'utilisateur: 1 mot de passe: 1

+0

Quel était votre 'error_reporting();' sur votre dernier serveur? Réglez-le sur 'error_reporting (0);' pour none. – Sparkup

+0

Vous obtenez également 'Warning: extract() [function.extract]: Le premier argument doit être un tableau dans /home/davethom/public_html/priceupdate.php sur la ligne 65' sur la mise à jour des prix. – Sparkup

+0

Comment éditer les paramètres du serveur? – lewis

Répondre

4

Vous appelez probablement la fonction header(), ou une autre fonction qui envoie des en-têtes, comme setcookie(), après avoir commencé à envoyer une sortie.

Ces fonctions doivent être appelées avant toute sortie est envoyée au navigateur:

  • Avant toute echo/print est fait,
  • Avant tout caractère (y compris les espaces blancs) en dehors des <?php ... ?> balises
1

Vérifiez les espaces dans votre code. Supprimez les balises de fermeture php (le cas échéant) à la fin de votre page php.

0
  1. Je pense que vous devez désactiver la directive display_errors dans le fichier php.ini.
  2. Si vous ne parvenez pas à modifier le fichier php.ini, appelez la fonction suivante au-dessus de tous vos fichiers php. Ini_set ('display_errors', 'Off')

Vous pouvez également utiliser le fichier .htaccess dans le site Web de votre application avec le contenu suivant.

php_flag display_errors  Off 
0

Vous ne devriez pas simplement désactiver le rapport d'erreurs; vous devez corriger votre code afin qu'il ne provoque aucune erreur.

Comme indiqué par Pascal MARTIN, cette erreur se produit lorsque vous appelez une fonction qui envoie un en-tête HTTP après que vous avez déjà envoyé la sortie au navigateur. session_start() envoie un en-tête de cookie, donc ceci (comme header() et setcookie()) doit être appelé avant de sortir un contenu. Vérifiez la ligne 55 dans /home/davethom/public_html/login.php pour trouver la fonction incriminée et assurez-vous qu'aucun contenu n'est envoyé au navigateur avant de l'appeler.

Le contenu de la page est tout élément envoyé au navigateur pour être rendu à l'utilisateur. Cela pourrait être vos balises d'ouverture (ou) ou même certains espaces errants, sortie accidentellement quelque part. Recherchez les déclarations d'écho ou d'impression, ou tout ce qui ne se trouve pas dans un ensemble de délimiteurs (même les nouvelles lignes ou les espaces ici seront problématiques).

Comme aide au débogage: pour savoir précisément ce qui a été envoyé au navigateur lorsque cette erreur se produit, mettez die(); immédiatement après la ligne 55, visitez la page de votre navigateur, puis utilisez le navigateur pour voir la source qu'il a reçue du serveur jusqu'à présent.

Voir http://uk.php.net/manual/en/function.header.php pour plus d'informations sur l'envoi incorrect des en-têtes après le contenu.