8791 sujets

Développement web côté serveur, CMS

Bonjour,

Afin de facilité certaines mise à jour sur mon site web, j'utilise une base de donnée administrable via un panneau de contrôle fait maison. Jusqu'à maintenant les scripts fonctionnaient très bien, mais plus maintenant...
Mon script pour modifier des info ne fonctionne plus et j'ignore pourquoi.

Quand je clique pour enregistrer les infos ça me renvoie une page blanche et aucune des modification faite n'est enregistrer.

J'ai eu beau chercher, je ne voie pas où est l'erreur... pourtant le script fonctionnait bien avant...

Voilà le code complet de la page de modification.
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Modifier</title>
</head>

<body>
<script type="text/javascript" language="javascript">
function verif(){
	element=document.forms['form'].element['nom'];
	if(element.value==""){
		alert("Vous devez entrer un nom de fichier avant d'enregistrer!");
		return false;
	}
	element=document.forms['form'].element['lien'];
	if(element.value==""){
		alert("Vous devez entrer un nom de lien avant d'enregistrer!");
		return false;
	}
	element=document.forms['form'].element['thumbnail'];
	if(element.value==""){
		alert("Vous devez entrer un nom de thumbnail avant d'enregistrer!");
		return false;
	}
}
</script>
<?php
$id = $_GET['id'];

include('../config.php');
$requete = mysql_connect($dbhost,$dbuser,$dbpasswd) or die(mysql_error());
$requete = mysql_select_db($dbname) or die(mysql_error());
mysql_query("SET NAMES 'utf8'");

if (empty($_POST['enregistrer'])){
	if($requete = mysql_query("SELECT * FROM software WHERE id='$id'") or die("37"/*mysql_error()*/)){
		while($modif = mysql_fetch_array($requete)){
			$cam = $modif['camera'];
            $file = $modif['fichier'];
            $vers = $modif['version'];
            $dFr = $modif['dateFr'];
			$dEn = $modif['dateEn'];
			$descFr = stripslashes($modif['descriptionFr']);
            $descEn = stripslashes($modif['descriptionEn']);
		}
	?>
	<form action="software_modif.php?id=<?php echo $id;?>" method="post" name="form" id="form" onsubmit="return verif()">
		<table width="428" border="0" cellspacing="0" cellpadding="0">
              <tr>
                <th height="53" colspan="2" scope="col"><h1>
                  <legend>Modifier un Software</legend></h1></th>
              </tr>
              <tr>
                <td width="33%" height="31" align="right" valign="top" scope="col">Caméra :&nbsp;</td>
                <td width="67%" valign="top" scope="col">
                    <?php echo $cam;?>
                </td>
              </tr>
              <tr>
                <td height="31" align="right" valign="top" scope="col">Fichier :&nbsp;</td>
                <td valign="top" scope="col"><input name="fichier" type="text" size="30" value="<?php echo $file ?>" /></td>
              </tr>
              <tr>
                <td height="31" align="right" valign="top" scope="col">Version :&nbsp;</td>
                <td valign="top" scope="col"><input name="version" type="text" size="30" value="<?php echo $vers ?>" /></td>
              </tr>
              <tr>
                <td height="31" align="right" valign="top" scope="col">Date Fr :&nbsp;</td>
                <td valign="top" scope="col"><input name="dateFr" type="text" size="30" value="<?php echo $dFr ?>" /></td>
              </tr>
              <tr>
                <td height="31" align="right" valign="top" scope="col">Date En :&nbsp;</td>
                <td valign="top" scope="col"><input name="dateEn" type="text" size="30" value="<?php echo $dEn ?>" /></td>
              </tr>
              <tr>
                <td height="100" align="right" valign="top" scope="col">Description FR :&nbsp;</td>
                <td valign="top" scope="col"><textarea name="descriptionFr" cols="37" rows="5"><?php echo $descFr ?></textarea></td>
              </tr>
              <tr>
                <td height="100" align="right" valign="top" scope="col">Description EN :&nbsp;</td>
                <td valign="top" scope="col"><textarea name="descriptionEn" cols="37" rows="5"><?php echo $descEn ?></textarea></td>
              </tr>
              <tr>
                <td height="31" valign="top" scope="col">&nbsp;</td>
                <td valign="top" scope="col"><input name="enregistrer" type="submit" value="Enregistrer" /></td>
              </tr>
		</table>
	</form>
    <?php
	}
	else{
		$fichier = trim($_POST['fichier']);
		$version = trim($_POST['version']);
		$dateFr = trim($_POST['dateFr']);
		$dateEn = trim($_POST['dateEn']);
		$descriptionFr = trim(addslashes($_POST['descriptionFr']));
		$descriptionEn = trim(addslashes($_POST['descriptionEn']));
		
		if($requete = mysql_query('UPDATE software SET fichier = "'.$fichier.'", version = "'.$version.'", dateFr = "'.$dateFr.'", dateEn = "'.$dateEn.'", descriptionFr = "'.$descriptionFr.'", descriptionEn = "'.$descriptionEn.'" WHERE id="'.$id.'"')or die("100"/*mysql_error()*/)){
			echo "L'élément ".$id." a été modifié avec succès.";
		?>

		<br /><br /><a href="#" onclick="javascript:parent.opener.location.reload();self.close('modifier');">Retourner aux Update</a>

		<?php
		}
	}
}
?>
</body>
</html>

Modifié par juliesunset (10 Nov 2011 - 15:08)
Ok, je pense que le problème est plus profond...

La dite page de modification utilise le même code qu'une autre utilisé ailleurs et aucun problème pour l'autre page.

Cela dit, je viens de voir un bug sur les pages où les infos s'affichent et je ne sais pas d'où ça sort car je n'ais pas touché au fichiers qu'on m'indique... entouka pour ce que j'en comprend.

si quelqu'un peu m'aiguiller...?

La dite page
Up!

J'ai fait quelques modif à mon code, mais toujours aucun changement. Les info ne sont pas enregistré.

En fait j'ignore si le problème se situe au niveau du php ou du code js...

Ça devient embêtant...

Je vous met le nouveau code.
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Modifier</title>
</head>

<body>
<script type="text/javascript">
function verif(){
	element=document.forms['form'].element['fichier'];
	if(element.value==""){
		alert("Vous devez entrer un nom de fichier avant d'enregistrer!");
		return false;
	}
	element=document.forms['form'].element['version'];
	if(element.value==""){
		alert("Vous devez entrer un numéro de version avant d'enregistrer!");
		return false;
	}
	element=document.forms['form'].element['dateFr'];
	if(element.value==""){
		alert("Vous devez entrer la date avant d'enregistrer!");
		return false;
	}
	element=document.forms['form'].element['dateEn'];
	if(element.value==""){
		alert("Vous devez entrer la date avant d'enregistrer!");
		return false;
	}
}
</script>
<?php
$model = $_GET['camera'];

include('../config.php');
$requete = mysql_connect($dbhost,$dbuser,$dbpasswd) or die(mysql_error());
$requete = mysql_select_db($dbname) or die(mysql_error());
mysql_query("SET NAMES 'utf8'");

if (empty($_POST['enregistrer'])){
	if($requete = mysql_query("SELECT * FROM software WHERE camera='$model'") or die("42"/*mysql_error()*/)){
		while($modif = mysql_fetch_array($requete)){
			
            $file = $modif['fichier'];
            $vers = $modif['version'];
            $dFr = $modif['dateFr'];
			$dEn = $modif['dateEn'];
			$descFr = stripslashes($modif['descriptionFr']);
            $descEn = stripslashes($modif['descriptionEn']);
		}
	?>
	<form action="software_modif.php?camera=<?php echo $model;?>" method="post" name="form" id="form" onsubmit="return verif()">
		<table width="428" border="0" cellspacing="0" cellpadding="0">
              <tr>
                <th height="53" colspan="2" scope="col"><h1>
                  <legend>Modifier un Software</legend></h1></th>
              </tr>
              <tr>
                <td width="33%" height="31" align="right" valign="top" scope="col">Caméra:&nbsp;</td>
                <td width="67%" valign="top" scope="col">
                    <?php echo $model;?>
                </td>
              </tr>
              <tr>
                <td height="31" align="right" valign="top" scope="col">Fichier:&nbsp;</td>
                <td valign="top" scope="col"><input name="fichier" type="text" size="30" value="<?php echo $file ?>" /></td>
              </tr>
              <tr>
                <td height="31" align="right" valign="top" scope="col">Version:&nbsp;</td>
                <td valign="top" scope="col"><input name="version" type="text" size="30" value="<?php echo $vers ?>" /></td>
              </tr>
              <tr>
                <td height="31" align="right" valign="top" scope="col">Date Fr:&nbsp;</td>
                <td valign="top" scope="col"><input name="dateFr" type="text" size="30" value="<?php echo $dFr ?>" /></td>
              </tr>
              <tr>
                <td height="31" align="right" valign="top" scope="col">Date En:&nbsp;</td>
                <td valign="top" scope="col"><input name="dateEn" type="text" size="30" value="<?php echo $dEn ?>" /></td>
              </tr>
              <tr>
                <td height="100" align="right" valign="top" scope="col">Description&nbsp;FR:&nbsp;</td>
                <td valign="top" scope="col"><textarea name="descriptionFr" cols="37" rows="5"><?php echo $descFr ?></textarea></td>
              </tr>
              <tr>
                <td height="100" align="right" valign="top" scope="col">Description&nbsp;EN:&nbsp;</td>
                <td valign="top" scope="col"><textarea name="descriptionEn" cols="37" rows="5"><?php echo $descEn ?></textarea></td>
              </tr>
              <tr>
                <td height="31" valign="top" scope="col">&nbsp;</td>
                <td valign="top" scope="col"><input name="enregistrer" type="submit" value="Enregistrer" /></td>
              </tr>
		</table>
	</form>
    <?php
	}
	else{
		$fichier = trim($_POST['fichier']);
		$version = trim($_POST['version']);
		$dateFr = trim($_POST['dateFr']);
		$dateEn = trim($_POST['dateEn']);
		$descriptionFr = trim(addslashes($_POST['descriptionFr']));
		$descriptionEn = trim(addslashes($_POST['descriptionEn']));
		
		if($requete = mysql_query("UPDATE software SET fichier = '$fichier', version = '$version', dateFr = '$dateFr', dateEn = '$dateEn', descriptionFr = '$descriptionFr', descriptionEn = '$descriptionEn' WHERE camera='$model'")or die("105"/*mysql_error()*/)){
			echo "L'élément ".$model." a été modifié avec succès.";
		?>

		<br /><br /><a href="#" onclick="javascript:parent.opener.location.reload();self.close('modifier');">Retourner aux Update</a>

		<?php
		}
	}
}
?>
</body>
</html>
J'ai pourtant un "or die" à ma ligne 105... ligne qui devrait normalement s'afficher après l'enregistrement, mais j'ai un page blanche à la place
Tu as une page blanche, sans doute parce que ton script php se plante. Il faut que tu configures ton environnement pour afficher les erreurs.
ça peut aider mais je ne suis pas convaincu que sunset les aient desactivé.

(mais pour la piste: error_reporting(E_ALL); ini_set('display_errors','On'); )

j'ai une page blanche chez moi aussi

bon j'imagine que tu veux updater la base après avoir appuyer sur enregistrer?
j'imagine aussi que software_modif.php est ton nom de fichier que tu nous montre là?

tu sais faut pas hésiter a commenté son code ou a l'expliquer au pauvre lecteur de forum que nous sommes!!

si j'imagine bien

la page blanche qui est dût à une mauvaise imbrication des {}.

 <?php

	}

	else{

		$fichier = trim($_POST['fichier']);

		$version = trim($_POST['version']);
.... patati ... patata un update




sauf que là tu es encore dans le
if($requete = mysql_query("SELECT * FROM pdf_membre WHERE id='$model'") or die("42"/*mysql_error()*/)){

moralité a l'intérieur du cas if (empty($_POST['enregistrer'])){
=> j'ai pas appuyé sur enregistrer.


donc if descendre ce code plus bas apres le dernier } de ton code actuel.

et sinon

faut savoir debugger j'ai passé plus de temps a copié adapter ton code chez moi pour voi l'erreur qu'a te repondre et je parle pas de trouvé l'erreur.

un coup de echo 'pikachu'; par là un coup de echo 'tintin'; par ici et comprends par où passe ton code.

Pascal
Modifié par CPascal (09 Nov 2011 - 21:57)
Pour explication:
J'ai une page (software_admin.php) dans laquelle s'affiche toutes les info de la bdd. quand je clique sur le bouton pour modifier, une fenêtre apparaît (software_modif.php, fichier dont je vous ais donné le code ci-haut). À partir de là je peux modifier les info de la bdd. Quand je clique sur "enregister", normalement il devrait y avoir ces lignes qui s'affiche:

echo "L'élément ".$model." a été modifié avec succès.";
		?>

		<br /><br /><a href="#" onclick="javascript:parent.opener.location.reload();self.close('modifier');">Retourner aux Update</a>


Du coup on clique sur "Retourner aux Update" et la ma page "software_admin.php" s'update automatiquement.

Mais là ce n'est pas ce qui se passe. Après avoir cliqué sur "enregistrer" j'ai une page blanche et aucune données n'est enregistré.

Ce qui est le plus bizarre, c'est je j'utilise le "même" code (même principe, juste les infos ne sont pas les mêmes) et lui fonctionne très bien. J'ai eu beau comparé, je ne vois pas où est l'erreur.


CPascal: Merci pour les piste "error_reporting(E_ALL); ini_set('display_errors','On');", je vais regarder ça.

Mais du coup j'ai pas trop compris tes explications... Désolé, je suis plutôt visuel...
moi je me comprends pourtant Smiley bawling Smiley lol

alors je reprends ton code et je le change (comme ce que j'ai dit plus haut).

retest apres, tu auras peut-être des erreurs plus intéressantes (ou pourquoi pas ça marchera) qui pourront nous indiquer ton vrai probleme. parce que la page blanche c'était pineuts.

je pense comme jo_link_noir. si (et seulement si ) tu n'as pas changé ton code c'est un soucis de configuration.

<!DOCTYPE HTML>

<html>

<head>

<meta charset="utf-8">

<title>Modifier</title>

</head>



<body>

<script type="text/javascript">

function verif(){

	element=document.forms['form'].element['fichier'];

	if(element.value==""){

		alert("Vous devez entrer un nom de fichier avant d'enregistrer!");

		return false;

	}

	element=document.forms['form'].element['version'];

	if(element.value==""){

		alert("Vous devez entrer un numéro de version avant d'enregistrer!");

		return false;

	}

	element=document.forms['form'].element['dateFr'];

	if(element.value==""){

		alert("Vous devez entrer la date avant d'enregistrer!");

		return false;

	}

	element=document.forms['form'].element['dateEn'];

	if(element.value==""){

		alert("Vous devez entrer la date avant d'enregistrer!");

		return false;

	}

}

</script>

<?php

$model = $_GET['camera'];



include('../config.php');

$requete = mysql_connect($dbhost,$dbuser,$dbpasswd) or die(mysql_error());

$requete = mysql_select_db($dbname) or die(mysql_error());

mysql_query("SET NAMES 'utf8'");



if (empty($_POST['enregistrer'])){

	if($requete = mysql_query("SELECT * FROM software WHERE camera='$model'") or die("42"/*mysql_error()*/)){

		while($modif = mysql_fetch_array($requete)){

			

            $file = $modif['fichier'];

            $vers = $modif['version'];

            $dFr = $modif['dateFr'];

			$dEn = $modif['dateEn'];

			$descFr = stripslashes($modif['descriptionFr']);

            $descEn = stripslashes($modif['descriptionEn']);

		}

	?>

	<form action="software_modif.php?camera=<?php echo $model;?>" method="post" name="form" id="form" onsubmit="return verif()">

		<table width="428" border="0" cellspacing="0" cellpadding="0">

              <tr>

                <th height="53" colspan="2" scope="col"><h1>

                  <legend>Modifier un Software</legend></h1></th>

              </tr>

              <tr>

                <td width="33%" height="31" align="right" valign="top" scope="col">Caméra:&nbsp;</td>

                <td width="67%" valign="top" scope="col">

                    <?php echo $model;?>

                </td>

              </tr>

              <tr>

                <td height="31" align="right" valign="top" scope="col">Fichier:&nbsp;</td>

                <td valign="top" scope="col"><input name="fichier" type="text" size="30" value="<?php echo $file ?>" /></td>

              </tr>

              <tr>

                <td height="31" align="right" valign="top" scope="col">Version:&nbsp;</td>

                <td valign="top" scope="col"><input name="version" type="text" size="30" value="<?php echo $vers ?>" /></td>

              </tr>

              <tr>

                <td height="31" align="right" valign="top" scope="col">Date Fr:&nbsp;</td>

                <td valign="top" scope="col"><input name="dateFr" type="text" size="30" value="<?php echo $dFr ?>" /></td>

              </tr>

              <tr>

                <td height="31" align="right" valign="top" scope="col">Date En:&nbsp;</td>

                <td valign="top" scope="col"><input name="dateEn" type="text" size="30" value="<?php echo $dEn ?>" /></td>

              </tr>

              <tr>

                <td height="100" align="right" valign="top" scope="col">Description&nbsp;FR:&nbsp;</td>

                <td valign="top" scope="col"><textarea name="descriptionFr" cols="37" rows="5"><?php echo $descFr ?></textarea></td>

              </tr>

              <tr>

                <td height="100" align="right" valign="top" scope="col">Description&nbsp;EN:&nbsp;</td>

                <td valign="top" scope="col"><textarea name="descriptionEn" cols="37" rows="5"><?php echo $descEn ?></textarea></td>

              </tr>

              <tr>

                <td height="31" valign="top" scope="col">&nbsp;</td>

                <td valign="top" scope="col"><input name="enregistrer" type="submit" value="Enregistrer" /></td>

              </tr>

		</table>

	</form>

    <?php

	} 

            }  else {
		$fichier = trim($_POST['fichier']);

		$version = trim($_POST['version']);

		$dateFr = trim($_POST['dateFr']);

		$dateEn = trim($_POST['dateEn']);

		$descriptionFr = trim(addslashes($_POST['descriptionFr']));

		$descriptionEn = trim(addslashes($_POST['descriptionEn']));

		

		if($requete = mysql_query("UPDATE software SET fichier = '$fichier', version = '$version', dateFr = '$dateFr', dateEn = '$dateEn', descriptionFr = '$descriptionFr', descriptionEn = '$descriptionEn' WHERE camera='$model'")or die("105"/*mysql_error()*/)){

			echo "L'élément ".$model." a été modifié avec succès.";

		?>



		<br /><br /><a href="#" onclick="javascript:parent.opener.location.reload();self.close('modifier');">Retourner aux Update</a>



		<?php

		}

}

?>

</body>

</html>

Modifié par CPascal (09 Nov 2011 - 23:06)
Smiley eek Ben ça marche!
OMG! C'était que ça! C'est là que je vois la différence entre mes 2 codes (celui qui marchait plus et celui qui marchait encore). J'ai dû faire une mauvaise manip à un moment ou un autre.

Entouka, merci beaucoup pour ton aide avec ton oeil de lynx! Smiley biggrin

Et désolé pour la demande d'explications supplémentaire, comme je disait je suis très visuel, pour moi un texte explicatif est parfois trop abstrait. J'ai besoin de voir pour comprendre.


Juste un petit retour comme ça sur "error_reporting(E_ALL); ini_set('display_errors','On');". J'ai essayé, mais tout ce que ça me donnait c'est une série de chiffre... rien de compréhensible pour moi donc... Bon, après j'ignore si je l'utilisait correctement, mais bon, ça na plus d'importance maintenant que mon code marche!
Modifié par juliesunset (10 Nov 2011 - 15:10)