Je vais devenir fou !!!

Petit nouveau ! | 2 Messages

02 mars 2006, 20:30

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:

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

02 mars 2006, 20:45

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:

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

02 mars 2006, 20:48

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 ? ;)

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

02 mars 2006, 20:51

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...