Page 1 sur 4

Probleme insoluble

Posté : 26 avr. 2010, 21:20
par Invité
Bonsoir, je suis etudiant en GSI et dans le cadre du baccalauréat je suis amené à réaliser un site dynamique .Comme vous pouvez le devinez je rencontre quelques que problême ,Premiérement mon script de transfert ne fonctionne pas et je ne comprend pas pourquoi(mon prof également), malgré le fait que je l'ai épurer au maximum, c'est a dire simple recupé si vous recupération de variables, donc si vous pouviez m'aidez a reperez mon erreur ça serait vraiment cool.
Mon script:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<title>Untitled</title>
</head>
<body>
<?php
if(@$_POST['button']=="retour à l'acceuil")
{
header("Location:acceuil.html");
}

$Nom=$_POST['Nomnv'];
$Prenom=$_POST['Prenomnv'];
$Adresse=$_POST['adressenv'];
$Datedenaissance=$_POST['Datenaissancenv'];
$Login=$_POST['Loginnv'];
$Motdepasse=$_POST['Mdpnv'];
$ConfirmMDP=$_POST['TMdpnv'];
$Pays=$_POST['Paysnv'];
$Description=$_POST['Descriptionnv'];
$Avatar=$_POST['Avatarnv'];
$Sexe=$_POST['sexenv'];
if (!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$", $Login))

{

header("Location:formulaire.htm");

}



if (empty($Adresse))

{

header("Location:formulaire.htm");

}
if (empty($Motdepasse))

{

header("Location:formulaire.htm");

}
if ($ConfirmMDP!=$Motdepasse))


{

header("Location:formulaire.htm");
}
if (!is_numeric($Datedenaissance))

{
header("Location:formulaire.htm");

}

$db=mysql_connect("localhost","root","root") or die("erreur de connexion".mysql_error());


mysql_select_db("projet",$db) or die("erreur de connexion à la base Projet");


$sql="INSERT INTO Inscrit(NumInscrit,Nom, Prenom, Adresse, DatedeNaissance, Pays, Login, Code, Description, Avatar) VALUES(' ','$Nom','$Prenom','$Adresse','$Datedenaissance','$Login','$Motdepasse','$Description','$Avatar')";


mysql_query($sql);



header("Location:pageinscription.htm");



mysql_close();
?>
</body>
</html>

Re: Probleme insoluble

Posté : 26 avr. 2010, 21:23
par stealth35
hello t'as une parenthese en trop ici
if ($ConfirmMDP!=$Motdepasse)) 

Re: Probleme insoluble

Posté : 26 avr. 2010, 21:30
par diabless6
Juste au passage :
if(@$_POST['button']=="retour à l'acceuil")

ACCUEIL

et

Eregi: Cette fonction est OBSOLETE depuis PHP 5.3.0. Nous vous encourageons vivement à ne plus l'utiliser.

:wink:

Re: Probleme insoluble

Posté : 26 avr. 2010, 21:30
par Invité
Ha tiens , tout d'abord merci, mais j'aimerai bien comprendre pourquoi ,car ça veut dire que toutes les double parenthéses son fausses ou alors je suis pommé et sinon ,a part ces parenthése, je n'est pas fait d'erreur?(désolé pour les question un peu idiote sans doute mais c'est pour etre sur)

Re: Probleme insoluble

Posté : 26 avr. 2010, 21:34
par stealth35
Ha tiens , tout d'abord merci, mais j'aimerai bien comprendre pourquoi ,car ça veut dire que toutes les double parenthéses son fausses ou alors je suis pommé et sinon ,a part ces parenthése, je n'est pas fait d'erreur?(désolé pour les question un peu idiote sans doute mais c'est pour etre sur)
non y'a que la que ta mis 1 parenthese en trop :wink:

if ($ConfirmMDP!=$Motdepasse))

et +1 pour diablesse


EDIT : faut bossé avec l'affichage des erreurs sinon on s'en sort pas (encore mieux avec un vrai editeur (eclipse par exemple mais y'en a d'autre)
dans ton php.ini

Code : Tout sélectionner

display_errors = On error_reporting = E_ALL | E_STRICT

Re: Probleme insoluble

Posté : 26 avr. 2010, 21:35
par Dr@ke
Pendant que tu y es, tu peux aussi supprimer le @ et utiliser la fonction isset() à la place:
http://php.net/manual/fr/function.isset.php

Re: Probleme insoluble

Posté : 26 avr. 2010, 21:38
par Invité
merci a tous et sympa pour les conseil et desoler pour les fautes

Re: Probleme insoluble

Posté : 26 avr. 2010, 21:51
par Invité
Nouvelle question mais a propos de isset() quant il est écrit
isset — Détermine si une variable est définie
Définie veut dire que sa vérifie si elle récupere bien quelque chose ou ...?

Re: Probleme insoluble

Posté : 26 avr. 2010, 22:07
par Dr@ke
Regarde ici:
faq-tutoriels/isset-empty-null-sont-sur ... 49889.html

Sinon utilise le moins possible de @, voir même aucun.
Et n'oublie pas de faire ce que te conseille Stealth pour ton fichier php.ini.
Il est primordial de connaitre toutes les erreurs, ainsi ensuite on peut les corriger :wink:

Re: Probleme insoluble

Posté : 26 avr. 2010, 22:08
par diabless6
Nouvelle question mais a propos de isset() quant il est écrit
isset — Détermine si une variable est définie
Définie veut dire que sa vérifie si elle récupere bien quelque chose ou ...?
Si la variable existe ou pas.

Si elle existe, elle contiendra une valeur, sinon elle n'existera pas.

Re: Probleme insoluble

Posté : 27 avr. 2010, 01:25
par niuxe
Et l'eau,

J'ai lu en biais ton script et pas mal de choses m'ont déconcertées/choquées :

L'arobase est la politique de l'autruche ou de la langue de bois... Pour ma part, je me sers de cette technique lorsque qu'en amont j'ai déjà cerné le problème et que je le résous d'une manière plus élégante (exception par exemple).
Eregi: Cette fonction est OBSOLETE depuis PHP 5.3.0. Nous vous encourageons vivement à ne plus l'utiliser.


+10...
Regarde du coté de preg_match, preg_match_all, preg_replace (cf. php.net) pour les RegEx.
Après ton parttern, je ne l'ai pas essayé mais je suis sûr que si j'écris ceci, ce sera accepté :
un_nom.avec.des-carateres@un_domaine-avec_un__sous-domain.

Je pense que tu voudrais plutôt dire ceci n'est ce pas ?
$motif = "#^[0-9a-z._-]+@[0-9a-z._-]+\.[a-z._-]{2,4}$#";


Cependant, il existe une manière nettement plus élégante et plus efficace pour contrôler la saisie d'une adresse courriel. Regarde du coté de filter_var ou filter_input (cf. php.net).

Si ton code ne fonctionne pas, ça se comprend puisque tu utilises header à mauvais escient... Je suis surpris que ton prof ne l'ait pas vu. Sinon, si tu veux l'utiliser dans cette logique, tu vas devoir te tourner vers ob_start, ob_flush, ob_end_clean, etc. afin de coupler avec l'instruction header (cf. php.net)

Si la variable existe ou pas.

Si elle existe, elle contiendra une valeur, sinon elle n'existera pas.
Je crois que tu t'égares un tout petit peu. Tu peux très bien avoir une variable déclarée sans avoir avoir une valeur définie.
$une_var = NULL; 
Null est quelque chose de bien spécifique. Cela veut dire : « rien ou non défini » à l'inverse de 0 (zéro) ou vide (string vide). Tu retrouves la même chose en SQL. Lorsque tu cherches des champs dont la valeur est null, tu ne pourras pas faire ceci :
SELECT * FROM un_table WHERE un_champ = NULL; # oO
Mais plutôt cela :
SELECT * FROM un_table WHERE un_champ IS NULL OR un_autre_champ IS NOT NULL;
Perso, lorsque je veux savoir si ma variable est définie et qu'elle a bien une valeur, je procède ainsi par exemple :
if(isset($une_var) && !empty($une_var)){
	//si "une var" est déclarée ET qu'elle n'est pas vide
	//etc.
}
non y'a que la que ta mis 1 parenthese en trop :wink:

if ($ConfirmMDP!=$Motdepasse))
Je pense que c'est la parenthèse extérieur droite qu'il faudrait supprimer, nan ?
if ($ConfirmMDP!=$Motdepasse)) :lol:

Bon code ^^

Re: Probleme insoluble

Posté : 27 avr. 2010, 10:00
par stealth35
non y'a que la que ta mis 1 parenthese en trop :wink:

if ($ConfirmMDP!=$Motdepasse))
Je pense que c'est la parenthèse extérieur droite qu'il faudrait supprimer, nan ?
if ($ConfirmMDP!=$Motdepasse)) :lol:

Bon code ^^
arf :mrgreen: :wink:

Re: Probleme insoluble

Posté : 27 avr. 2010, 11:00
par telnes
peut etre en ajoutant une à gauche sinon

if (($ConfirmMDP!=$Motdepasse))

non :)

Re: Probleme insoluble

Posté : 27 avr. 2010, 17:55
par Invité
Alors , premierement merci pour toute vos reponses , ensuite quelqu'un pourrait il m'indiquer comment editer ses messages cela me permettrait d'ajuster mon script a vos conseil et pour les question ce sera plus clair

Re: Probleme insoluble

Posté : 27 avr. 2010, 18:11
par Invité
C'est bon pour edit j'ai lu la faq ce que j'aurai du faire avant de posez la question .Maintenant concernant l'expression reguliére , elle est pas infallible mais elle quand même suffisament sur pour le site que je dois faire(c'est a dire un truc pas trop sophistiqué) mais je vais me renseigner sur la fonction dont tu me parle ça semble plus "élégant " comme tu dit, et enfin pour le header mon prof avais émis des doutes mais il était ps convaincu , je vais le remplacer par un lien hypertexte sa sera plus simple.