Page 1 sur 1

Je vais devenir fou !!!

Posté : 02 mars 2006, 20:30
par Pulko
Bonsoir , je débute en php .

J'ai fais un script tout simple pour entrer des infos dans une base de données .
Le script fonctionne tres bien chez free mais lorsque je le déménage , j'ai l'erreur : Tous les champs doivent etre complets

Je ne comprends plus .

Voici mon script :
<?php 
// On commence par récupérer les champs 
if(isset($_POST['nom']))      $nom=$_POST['nom'];
else      $nom="";

if(isset($_POST['prenom']))      $prenom=$_POST['prenom'];
else      $prenom="";

if(isset($_POST['pseudo']))      $email=$_POST['pseudo'];
else      $pseudo="";

if(isset($_POST['email']))      $email=$_POST['email'];
else      $email="";

if(isset($_POST['phone']))      $icq=$_POST['phone'];
else      $phone="";

if(isset($_POST['jour']))      $icq=$_POST['jour'];
else      $jour="";

if(isset($_POST['mois']))      $icq=$_POST['mois'];
else      $mois="";

if(isset($_POST['annee']))      $icq=$_POST['annee'];
else      $annee="";

// On vérifie si les champs sont vides 
if(empty($nom) OR empty($prenom) OR empty($pseudo) OR empty($email) OR empty($phone) OR empty($jour) OR empty($mois) OR empty($annee)) 
    { 
    echo '<font color="red">Tous les champs doivent etre complets</font>'; 
    } 

// Aucun champ n'est vide, on peut enregistrer dans la table 
else      
    { 
       // connexion à la base
$db = mysql_connect('host', 'user', 'pass')  or die('Erreur de connexion '.mysql_error());
// sélection de la base  

    mysql_select_db('db_name',$db)  or die('Erreur de selection '.mysql_error()); 
     
    // on écrit la requête sql 
    $sql = "INSERT INTO infos_tbl(id, nom, prenom, pseudo, email, phone, jour, mois, annee) VALUES('','$nom','$prenom','$pseudo','$email','$phone','$jour','$mois','$annee')"; 
     
    // on insère les informations du formulaire dans la table 
    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 

    // on affiche le résultat pour le visiteur 
    echo '<title>Inscription prise en compte !</title>
<body bgcolor="#000000"><center><span class="Style1">Inscription prise en compte !</span><br>
</br>'; 

    mysql_close();  // on ferme la connexion 
    }  
?> 
Merci de votre aide :wink:

Posté : 02 mars 2006, 20:45
par albat
Modération :
Je comprends que ce bug puisse te faire t'arracher les cheveux,
mais tu n'imagines pas l'effet que produit sur un modérateurs
un message dont le titre n'a absolument rien d'explicite.
Je t'invite à corriger cela très rapidement... :tir2:

Posté : 02 mars 2006, 20:48
par albat
Grâce à l'opérateur ternaire, tu peux déjà simplifier ton code :
$nom    = (isset($_POST['nom'])    ? $_POST['nom']    : "");
$prenom = (isset($_POST['prenom']) ? $_POST['prenom'] : "");
// etc.
Tout de même plus élégant, non ? ;)

Posté : 02 mars 2006, 20:51
par albat
if(isset($_POST['phone']))   $icq=$_POST['phone']; else  $phone="";
if(isset($_POST['jour']))    $icq=$_POST['jour'];  else  $jour="";
if(isset($_POST['mois']))    $icq=$_POST['mois'];  else  $mois="";
if(isset($_POST['annee']))   $icq=$_POST['annee']; else  $annee=""; 
Tes champs $phone, $jour, $mois et $annee seront toujours vides...