Page inaccessible et traitement non realisé

Résolu
youka12 Messages postés 1 Statut Membre -  
MickaToast Messages postés 162 Statut Membre -
Bonjour,

j'ai un formulaire qui me dirige vers un fichier ii.php ou je fais le traitement mais il m'affiche une page blanche ii.php je ne sais pas quoi faire

voilà mon code : inscription.php

<form action="ii.php" method="POST">
<fieldset>
<label for="nom"><strong> nom </strong></label>
<input type="text" name="nom" id="nom" />

<label for="prenom"><strong>prénom </strong></label>
<input type="text" name="prenom" id="prenom" />

<label for="prenom"><strong>age </strong></label>
<input type="text" name="age" id="prenom" />

<!--<input type="date" name="date">-->

<label for="email"><strong>e-mail </strong></label>
<input type="email" name="email" id="email" />
<br />
<br />
<label for="prenom"><strong>adresse </strong></label>
<input type="text" name="adresse" id="prenom" />
<br/>
<br />
<label for="prenom"><strong>telephone</strong></label>
<input type="text" name="telephone" id="prenom" />

<label for="pays"><strong>vous etes :</strong></label>
<select name="type" id="pays">
<option value="individuel">individuel</option>
<option value="societé">societé</option>
<option value="groupe">groupe</option>
</select>

<label for="adresse1"><strong>Entrer votre login ! </strong></label>
<input type="texte" name="adresse1" id="adresse1" />

<?php

if(isset($_SESSION['in'])&&($_SESSION['in']==1)){
echo'ce login existe déja!!!';
}

?>

et le code ii.php :

<?php
session_start();
include('connexion.php');

if(isset($_POST['submit'])){

if(isset($_POST['nom'])&&isset($_POST['prenom'])&&isset($_POST['age'])&&isset($_POST['email'])&&isset($_POST['adresse'])&&isset($_POST['telephone'])&&isset($_POST['type'])&&isset($_POST['login'])&&isset($_POST['passe'])&&isset($_POST['passe1'])){

$nom=$_POST['nom'];
$prenom=$_POST['prenom'];
$age=$_POST['age'];
$mail=$_POST['email'];

$adresse=$_POST['adresse'];
$telephone=$_POST['telephone'];
$type=$_POST['type'];
$login=$_POST['login'];
$passe=$_POST['passe'];
$passe1=$_POST['passe1'];

$date=date("d-m-Y");

$sel='SELECT * FROM 'compteclient' WHERE 'login' = "'.$login.'" ';
$exe=mysql_query($sel);

if (mysql_num_rows($exe)==1){
$_SESSION['in']=0;
header('location:inscription.php');
}
else{
if($passe==$passe1){
$ins="INSERT INTO 'compteclient'('NComCli', 'nom', 'prenom', 'login', 'motDePasse', 'Type', 'dateCre', 'adresse', 'tel') VALUES ('','.$nom.','$prenom','$login','$passe','$type','$date','$adresse','$telephone')";
$ex=mysql_query($ins);
if($ex){$_SESSION['in']=1;
header('location:compteclient.html');}
}
else{
$_SESSION['in']=2;
header('location:inscription.html');}
}
}
}

?>

19 réponses

  1. -helper- Messages postés 92 Statut Membre 27
     
    Salut !

    Oulala ! Faille de sécurité... Alerte à l'injection SQL !!!
    Il faut TOUJOURS échapper les variables venant de l'utilisateur...
    En particulier lorsque c'est utilisé dans une requête SQL après...

    A bon entendeur...

    S@M
    2
  2. MickaToast Messages postés 162 Statut Membre 24
     
    Si une page devient vide, il faut regarder les premières instructions. Ici, je vois ceci : if(isset($_POST['submit'])){

    Or, aucune case de formulaire comporte le name="submit".
    0
  3. youka12
     
    salut !

    si il y a une case la voilà !

    <input type="submit" name="submit" value="S'inscrire" /><br /> </center>

    mais c'est le méme problème !!
    0
  4. MickaToast Messages postés 162 Statut Membre 24
     
    Il y a une erreur alors dans cette ligne :
    if(isset($_POST['nom'])&&isset($_POST['prenom'])&&isset($_POST['age'])&&isset($_POST['email'])&&isset($_POST['adresse'])&&isset($_POST['telephone'])&&isset($_POST['type'])&&isset($_POST['login'])&&isset($_POST['passe'])&&isset($_POST['passe1'])){ 

    Vérifie bien dans ton formulaire qu'il y a bien tout ces $_POST et qu'il sont bien envoyé.
    Par exemple, sur ta page ii.php je te conseil de mettre temporairement en première ligne ceci :
    echo $_POST['nom'];
    echo $_POST['prenom'];
    echo $_POST['age'];
    echo $_POST['email'];
    echo $_POST['adresse'];
    echo $_POST['telephone'];
    echo $_POST['type'];
    echo $_POST['login'];
    echo $_POST['passe'];
    echo $_POST['passe1'];

    Puis, tu vas sur inscription.php, tu fais un formulaire et tu l'envoie. Si il y a une parse error qui dit qu'un $_POST n'existe pas, c'est que le problème vient de ce $_POST.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. youka12
     
    salut !
    j'ai vérifié et ça m'affiche tous les coordonnées que j'ai tapé !! ça veux dire que les $_POST marchent !!

    je ne sais pas ce qui fais problème parce que j'ai annulé la vérification(la ligne des isset....) et quand j'effectue l'ajout dans la base de données rien ne se rajoute !
    0
  7. MickaToast Messages postés 162 Statut Membre 24
     
    Est-ce que passe est bien exactement pareil à passe1, sur cette ligne :
    if($passe==$passe1){

    Si oui, alors le problème vient de quand tu envoie tes informations sur la base de donnée. Ta table est bien créée ? Tu as bien ajouté les colonnes 'nom', 'prenom' etc.. avant d'envoyer tes requêtes?

    De plus, je te conseil de tester ceci :

    Après la ligne :
    $ex=mysql_query($ins); 


    Ajoute ces lignes pour vérifier l'erreur lors de l'envoie sur la base de donnée

    if (!$ex) {
        die('Requête invalide : ' . mysql_error());
    }


    La fonction die te renverra alors exactement ce qu'il ne va pas dans ton code (si php n'a pas réussi à effectuer la requête SQL).
    0
  8. youka12
     
    je ne sais pas où est le problème dans cette requette :
    $ins='INSERT INTO compteclient(NOffre,nom,prenom,logi,motDePasse,Type,dateCre,adresse,tel) VALUES
    ('','$nom','.$prenom.','.$login.','.$passe.','.$type.','.$date.','.$adresse.','.$telephone.')';
    0
  9. youka12
     
    salut !

    qu'est ce que je peux faire pour regler ce problème merçi d'avance !!
    0
  10. youka12
     
    oui je l'ai essayé et ça m'affiche
    ce message :Requête invalide : Data truncated for column 'Type' at row 1
    0
  11. MickaToast Messages postés 162 Statut Membre 24
     
    Très bien, le problème vient donc de ta colonne "Type" dans ta base de donnée.

    Il faut que tu vérifie si elle est bien configurée, par exemple si tu rentre du texte dans ton formulaire et que dans ta base de donnée ça doit être des nombres, il y aura erreur. Si tu as défini "Type" avec un varchar de 255 et que tu rentres un texte plus grand, tu auras l'erreur "Valeur tronqué pour la colonne", c'est exactement ton erreur.

    Si tu ne sait pas comment faire, dit moi ce qui est attendu dans $_POST["type"] (c'est un texte court, un texte long?) et donne moi aussi les paramètres de "Type" dans ta base de donnée.

    PS: Courage, on arrive au but :D
    0
  12. youka12
     
    oué oué !!! merçi beaucoupppppp !! et bezzzzzaaaaaaff à la marocaine !!

    bn le type c'etait une enumeration je l'ai changé en varchar é ça a marché !!

    c'est mon pfe je dois le terminer dans quelques jours et je suis pressé par le temps !
    0
  13. MickaToast Messages postés 162 Statut Membre 24
     
    Très bien, content que tout fonctionne bien maintenant !

    Bonne soirée à toi !
    0
  14. youka12
     
    Bonjour,
    je veux afficher un texte et j'ai mais ce code .
    <?php
    include('connexion.php');
    $q="SELECT * FROM 'offre' where 'NOffre'='3'";
    $qq=mysql_query($q);
    if(!$qq){die('errroor'.mysql_error());}
    $qqq=mysql_fetch_row($qq);
    if(!$qqq){die('error'.mysql_error());}
    echo $qqq['description'];
    ?>
    l'erreur c'est : NOTICE: UNDEFINED INDEX: DESCRIPTION IN C:\W....
    0
  15. MickaToast Messages postés 162 Statut Membre 24
     
    Surement parce que ['description'] n'est pas une colonne de votre table ?
    0
  16. youka12
     
    voilà la colonne :
    10 description varchar(3000) latin1_swedish_ci Non

    et meme si je mets une autre colonne de la table offre ça me donne la meme erreur !! je ne sais pas où existe le probleme
    0
  17. MickaToast Messages postés 162 Statut Membre 24
     
    Essayez de faire $qqq[0], $qqq[1], etc... à la place.
    0
  18. youka12
     
    Merçii !! ça marche avec 0 mais j'ai compris le principe sue lequel ça fonctionne !!
    0
  19. MickaToast Messages postés 162 Statut Membre 24
     
    Vous pouvez aussi afficher la structure de la variable en utilisant print_r($qqq);
    0