Page 1 sur 1

Code fonctionne pas ?

Posté : 24 nov. 2011, 19:36
par fatax
bonjour tout le monde

J'ai un petit probleme avec un script qui fonctionne tres bien chez Free mais pas chez Ovh ?
le probleme semble venir des ligne suivantes (récuperation des variables ?) :

- if ($action == "ajouter")
...
- echo "<FORM enctype='multipart/form-data' ACTION='saisie.php3?action=ajouter' METHOD=POST>";

------------------------------------------------

Voici le code complet : ( Je precise que ce code fonctionne parfaitement sur les pages perso de Free )
<?
require ("config/config.inc.php3");
include ("connect.inc.php3");

if ($action == "ajouter")
{ 
$result=verif($nom,$email,$commentaire);
  if ($result==false) 
  {
       echo "<br><br><center><font size=+2><b>Utiliser le bouton retour arrière pour modifier votre saisie</b></font></center>";  
  }  
  else
  {
    $instruction="INSERT INTO $table VALUES ( '', '$choix', '$categorie', '$nom', '$datesaisie', '$email', '$commentaire','$affiche','$url','$image','$telephone')";
$res=mysql($database, $instruction);
	
	$num_enreg= mysql_insert_id();
	if ($top_image=="oui")
	{
//	echo "<center><a href=\"chargement.php3?numero=".$num_enreg."\">Téléchargement de l'image</a></center>";
	header("Location: chargement.php3?numero=$num_enreg");
	}
	else
	{
	HAUTPAGE("Saisie des petites annonces");
	if ($envoi_mail=="o")
	{
	mail($adresse_email,"petites annonces","Une annonce a été passée.\n\nElle a le numéro :$num_enreg");
	}

    		echo "<center><br><br><font size=+2><font color=red><b>Merci, les informations concernant votre annonce sont maintenant enregistrées sous le numero : ".$num_enreg."</b></font></font><br><br>";

    	echo "<a href='index.php3'>RETOUR</a></center>";
	}
  }
}
else
{
HAUTPAGE("Saisie des petites annonces");
echo "<FORM enctype='multipart/form-data' ACTION='saisie.php3?action=ajouter' METHOD=POST>";
echo"<center><TABLE  WIDTH=80% CELLPADDING=5 CELLSPACING=2 BORDER=2 bgcolor=#8DFDFC>";
echo "<TR><TD align='left'>Choix</td><td>";
echo "         <SELECT NAME='choix'>";
    $TableRep=mysql($database,"SELECT * FROM  $table1");
$NombreEntrees=mysql_NumRows( $TableRep);

  $i=0; /* initialisation de la variable de boucle */
while ($i < $NombreEntrees) /* faire tant que la fin de la table n'est pas atteinte */ 
  {
  $choix = mysql_result($TableRep, $i, "choix"); 
echo "<OPTION VALUE='$choix'>$choix";
  $i++; /* On passe à l'enregistrement suivant */ 
  }

echo "		         </SELECT>";
echo "		</TD>";
echo "</tr>";
echo "<TR><TD align='left'>Catégorie</td><td>";
echo "         <SELECT NAME='categorie'>";
    $TableRep=mysql($database,"SELECT * FROM  $table2");
$NombreEntrees=mysql_NumRows( $TableRep);
  $i=0; /* initialisation de la variable de boucle */
while ($i < $NombreEntrees) /* faire tant que la fin de la table n'est pas atteinte */ 
  {
  $categorie = mysql_result($TableRep, $i, "categorie"); 
echo "<OPTION VALUE='$categorie'>$categorie";
  $i++; /* On passe à l'enregistrement suivant */ 
  }



echo "		         </SELECT>";
echo "		</TD>";
echo "</tr>";

echo "<tr>";
echo "	<td align= 'left'>";
echo "	</td></tr><tr><TD align='left'>	 ";
echo "    	Nom ou pseudo<font color=red> *</font></td><td>";
echo "		<INPUT TYPE='text' NAME='nom' VALUE='' SIZE=50 MAXLENGTH=50>";
echo "  </TD></TR><TR>";
echo "      <TD align='left'>";
echo "         E-mail</td><td>";
echo "         <INPUT TYPE='text' NAME='email' VALUE='' SIZE=50  MAXLENGTH=50>";
echo "      </TD>";
echo "   </TR>";
echo "   <TR>";
echo "      <TD align='left'>";
$datejour  = Date ("Y-m-d");
echo "</td><td><INPUT TYPE='hidden' NAME='datesaisie' VALUE='".$datejour."' SIZE=10 >";
echo "      </TD></TR><TR>";
echo "     <TD align='left'>";
echo "         Votre annonce<font color=red> *</font></td><td>";
echo "         <TEXTAREA NAME='commentaire' ROWS=6 COLS=55></TEXTAREA>";
echo "      </TD></TR><tr><td>";

echo "      <INPUT TYPE='hidden' NAME='affiche' VALUE='$affiche_annonces'>";
echo "	</td></tr><TR>";
echo "      <TD align='left'>";
echo "         Site</td><td>";
echo "         <INPUT TYPE='text' NAME='url' VALUE='' SIZE=50  MAXLENGTH=50>";
echo "      </TD>";
echo "   </TR>";
// gestion du module image;

if ($util_images=="o")
{
echo " <TR>";
echo "      <TD align='left'>";
echo "         Image<br>(30 ko maxi)</td><td>";
echo "         <INPUT TYPE='radio' NAME='top_image' VALUE='oui'> Oui " ;
echo "         <INPUT TYPE='radio' NAME='top_image' VALUE='non' checked> Non " ;
echo "   </TR>";
}
else
{
$top_image="non";
}

echo " <TR>";
echo "      <TD align='left'>";
echo "         Téléphone</td><td>";
echo "         <INPUT TYPE='text' NAME='telephone' VALUE='' SIZE=20  MAXLENGTH=20>";
echo "      </TD>";
echo "   </TR>";
echo "      <TR><TD colspan=2 align='center'>";
echo "         <CENTER>";
echo "         <INPUT TYPE='submit' NAME='Validation'  VALUE='Enregistrer'>";
echo "         <INPUT TYPE='reset' VALUE='Effacer' name='Annulation'>";
echo "         </CENTER>";
echo "      </TD>";
echo "</TR>";
echo "</TABLE>";
echo "<font color=red><B> * zone obligatoire</B></font></center>";
echo "</FORM>";
    echo "<br><center><a href='index.php3'>Retour</a></center>";

}; 
BASPAGE();
?>
Merci ;)

Re: Code fonctionne pas ?

Posté : 24 nov. 2011, 20:17
par moogli
Salut,

Méthodes de conception obsolète ;)

Ton code est prévu pour le paramètre register globals on or ce n'est plus le cas par défaut sur php5.
Plus d'info http://phpdebutant.org/article149.php

Je te conseil aussi pourquoi ne pas utiliser les balises courtes

@+

Re: Code fonctionne pas ?

Posté : 24 nov. 2011, 20:27
par fatax
Salut,

Méthodes de conception obsolète ;)

Ton code est prévu pour le paramètre register globals on or ce n'est plus le cas par défaut sur php5.
Plus d'info http://phpdebutant.org/article149.php

Je te conseil aussi pourquoi ne pas utiliser les balises courtes

@+

Salut,

Merci pour ta reponse
Je me disais bien que c'etait un truc de ce genre la mais ca ne marche pas mieux en mettant la regsiterglobal à 1 sur le htaccess

Re: Code fonctionne pas ?

Posté : 24 nov. 2011, 21:16
par moogli
Je ne sais pas si ton hébergeur permet ce type fantaisie ;)
Après il y a un histoire 1 ou on (dans le php.ini c'est on)

Sinon la solution la plus pérenne c'est quand même de ré coder la chose correctement c'est la long vu la taille du code et plus largement réalisable à grand coup de chercher et remplace (de tout bon éditeur ;) ).

Tu peux aussi vérifier la conf exact avec un phpinfo();

À tu remplacer les <? Par des <?php ?

@+

Re: Code fonctionne pas ?

Posté : 24 nov. 2011, 21:59
par fatax
Je ne sais pas si ton hébergeur permet ce type fantaisie ;)
Après il y a un histoire 1 ou on (dans le php.ini c'est on)

Sinon la solution la plus pérenne c'est quand même de ré coder la chose correctement c'est la long vu la taille du code et plus largement réalisable à grand coup de chercher et remplace (de tout bon éditeur ;) ).

Tu peux aussi vérifier la conf exact avec un phpinfo();

À tu remplacer les <? Par des <?php ?

@+

J'ai suivi ton conseil mais j'ai d'autres messages d'erreur maintenant

---> Notice: Undefined index: ajouter
---> Notice: Undefined index: action

voici ce que j'ai modifié pour la recuperation des variables :

if ($action == $_POST['ajouter'])

Excuse moi pour mon niveau très faible (voir nul) en php ;)

Merci

Re: Code fonctionne pas ?

Posté : 25 nov. 2011, 10:21
par moogli
ACTION='saisie.php3?action=ajouter' action est dans l'url donc c'est pas du POST mais du GET

de plus la tu mélange propriété et valeur.

sans parler du fait que tu compare une variable qui n'existe pas à une valeur (si j'omets le fait que $_POST['ajouter'] n'existe pas :) )

donc if (isset($_GET['action']) && $_GET['action'] == 'ajouter')


@+

Re: [ RESOLUS ] Code fonctionne pas ?

Posté : 25 nov. 2011, 17:15
par fatax
ACTION='saisie.php3?action=ajouter' action est dans l'url donc c'est pas du POST mais du GET

de plus la tu mélange propriété et valeur.

sans parler du fait que tu compare une variable qui n'existe pas à une valeur (si j'omets le fait que $_POST['ajouter'] n'existe pas :) )

donc if (isset($_GET['action']) && $_GET['action'] == 'ajouter')


@+

Salut

j'ai configurer le serveur avec la registerglobal à 1
et j'ai aussi specifié PHP4 à la place de PHP5 sur le fichier htaccess, ca marche impec comme sur free sans retoucher le code...
A l'avenir je ferais comme tu me dit, c'est quand meme bien mieux


merci beaucoup pour ta patience et ton savoir ;)

=D>