Probleme insoluble

Invité
Invité n'ayant pas de compte PHPfrance

26 avr. 2010, 21:20

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>

ViPHP
ViPHP | 5462 Messages

26 avr. 2010, 21:23

hello t'as une parenthese en trop ici
if ($ConfirmMDP!=$Motdepasse)) 

Eléphant du PHP | 250 Messages

26 avr. 2010, 21:30

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:
Modifié en dernier par diabless6 le 26 avr. 2010, 21:32, modifié 1 fois.
J'ai un petit éléphant rose chez moi avec dessus PHP woman :p
Pour une Europe sans hypocrisie, n'y barratins.
L'euro caca j'en veux plus. Les conneries c'est fini.

Invité
Invité n'ayant pas de compte PHPfrance

26 avr. 2010, 21:30

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)

ViPHP
ViPHP | 5462 Messages

26 avr. 2010, 21:34

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
Modifié en dernier par stealth35 le 26 avr. 2010, 21:37, modifié 1 fois.

Mammouth du PHP | 985 Messages

26 avr. 2010, 21:35

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
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

Invité
Invité n'ayant pas de compte PHPfrance

26 avr. 2010, 21:38

merci a tous et sympa pour les conseil et desoler pour les fautes

Invité
Invité n'ayant pas de compte PHPfrance

26 avr. 2010, 21:51

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

Mammouth du PHP | 985 Messages

26 avr. 2010, 22:07

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:
Modifié en dernier par Dr@ke le 26 avr. 2010, 22:09, modifié 1 fois.
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

Eléphant du PHP | 250 Messages

26 avr. 2010, 22:08

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.
J'ai un petit éléphant rose chez moi avec dessus PHP woman :p
Pour une Europe sans hypocrisie, n'y barratins.
L'euro caca j'en veux plus. Les conneries c'est fini.

Eléphant du PHP | 453 Messages

27 avr. 2010, 01:25

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 ^^
La Tux attitude avec les kiw'z syou plait
Komodo Edit - Inkscape - Dia

ViPHP
ViPHP | 5462 Messages

27 avr. 2010, 10:00

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:

Eléphant du PHP | 422 Messages

27 avr. 2010, 11:00

peut etre en ajoutant une à gauche sinon

if (($ConfirmMDP!=$Motdepasse))

non :)
toujours faire une recherche sur http://www.php.net et/ou sur http://www.google.fr :)
utiliser http://ideone.com/ pour vos codes :)

Invité
Invité n'ayant pas de compte PHPfrance

27 avr. 2010, 17:55

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

Invité
Invité n'ayant pas de compte PHPfrance

27 avr. 2010, 18:11

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.