8791 sujets

Développement web côté serveur, CMS

Bonjour , je suis debutant en php et j'ai créé un petit site web pour une association avec dreamweaver
Le site fonctione normalement en local sous easyphp et sur un hebergeur gratuit( mais bourré de pubs)
J'ai trouvé un autre hebergeur et installé le site et la j'ai des erreurs lors des mises a jour de la news ou lors de la mise a jour des membres dans la partie admin.

Si je mets a jour la page index.php de l'admin j'ai ceci
Warning: Cannot modify header information - headers already sent by (output started at /home/eaudheur/public_html/admin/index.php:7) in /home/eaudheur/public_html/admin/index.php on line 53


si joint le debut de code php de cette page index.php de l'admin

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Index de l'administration</title>
<link href="../css/admin-style.css" rel="stylesheet" type="text/css" />
<?php require_once('../Connections/aa.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}
$currentPage = $_SERVER["PHP_SELF"];
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form2")) {
  $updateSQL = sprintf("UPDATE newspat SET news=%s WHERE id_news=%s",
                       GetSQLValueString($_POST['news'], "text"),
                       GetSQLValueString($_POST['id_news'], "int"));
mysql_select_db($database_aa, $aa);
  $Result1 = mysql_query($updateSQL, $aa) or die(mysql_error());
$updateGoTo = "../index.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?";
    $updateGoTo .= $_SERVER['QUERY_STRING'];
  }
header(sprintf("Location: %s", $updateGoTo));
}
mysql_select_db($database_aa, $aa);
$query_news = "SELECT * FROM newspat";
$news = mysql_query($query_news, $aa) or die(mysql_error());
$row_news = mysql_fetch_assoc($news);
$totalRows_news = mysql_num_rows($news);

$maxRows_listing = 3;
$pageNum_listing = 0;
if (isset($_GET['pageNum_listing'])) {
  $pageNum_listing = $_GET['pageNum_listing'];
}
$startRow_listing = $pageNum_listing * $maxRows_listing;


le site en question
http://www.alcooliquesanonymes.org/
( la partie admin est n'est pas securisée) afin de mieux comprendre mon probleme
Modifié par hitcher (01 Apr 2009 - 20:19)
Salut,

la fonction header (comme setcookie ou session_start) doit toujours être utilisée avant toute écriture de code html (pour être plus précis il est possible d'utiliser la bufferisation mais dans ton cas c'est inutile).

Il suffit donc de déplacer ton code PHP avant le DOCTYPE.

Au passage c'est une bonne idée de paramétrer easyPhP pour qu'il soit le plus proche possible de la configuration du serveur en ligne (je te laisse utiliser Google pour voir comment faire). Par exemple register_globals à off, etc.
Heyoan a écrit :
Salut,


Il suffit donc de déplacer ton code PHP avant le DOCTYPE.
.


je viens d'essayer mais a premiere vue ça ne fonctionne pas :
Voici ma page index.php de la partie admin

http://eaudheure.qc-host.com/index.zip

Car comme je debute j'ai peur de mal faire .
Donc si quelqu'un pouvais prendre le temps de lire mon code se serais sympa .
D'avance merci a tous et a toi Heyoan
hitcher a écrit :
je viens d'essayer mais a premiere vue ça ne fonctionne pas :
Voici ma page index.php de la partie admin
Pas eu de problème avec la page index.php sur ton site. Smiley murf

Par contre j'en ai eu avec update.php...
hitcher a écrit :
bizarre moi j'ai toujours se probleme sur les pages Admin\index.php ,update.php,insert.php
Ah oui, désolé ! Je n'avais pas vu la première fois qu'on pouvait modifier la news...

Au vu du message l'écriture est faite dans aa.php
merci d'avoir teste mais se fichier aa.php est dans mon repertoire de connetions et ne possede que ceci :

<?php
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
$hostname_aa = "localhost";
$database_aa = "eaudheur_aa";
$username_aa = "eaudheur_xxxxx";
$password_aa = "xxxx";
$aa = mysql_pconnect($hostname_aa, $username_aa, $password_aa) or trigger_error(mysql_error(),E_USER_ERROR); 
?>

donc j'arrive a ne plus rien comprendre Smiley decu
hitcher a écrit :
merci d'avoir teste mais se fichier aa.php est dans mon repertoire de connetions et ne possede que ceci
Il n'y aurait pas un saut de ligne ou un espace avant ou après ce code ?

Plus précisément avant <?php ou après ?>
Modifié par Heyoan (22 Mar 2009 - 18:25)
J'ai trouvé , enfin Heyoan a trouvé

il y avait 2 problemes :

le1) au niveau du doctype
le2) un ligne apres après ?> du fichier aa.php

Un tout grand merci Heyoan pour ta patience et toutes tes infos
Nours312 a écrit :
il semblerait que ce soit plutôt dans le fichier aa.php que dans l'index ...

exact
une ligne apres après ?> du fichier aa.php