Interprétation php + bouton submit [Résolu/Fermé]

Signaler
Messages postés
167
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
29 avril 2014
-
Messages postés
167
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
29 avril 2014
-
Bonjour,

Je développe un site. J'utilise des "si... alors... sinon...." pour savoir ce que j'affiche selon si l'utilisateur est connecté ou non. Mon problème: tout est affiché, donc mes conditions ne sont pas prises en compte. Voici un exemple :


if ( (empty ($_SESSION["pseudonyme"]) ) || ($_SESSION["pseudonyme"] == "") )
{ ?>
<a href="pageconnexion.php" target=_top>Connexion</a><br>
<a href="pageinscription.php" target=_top>Inscription</a><br>
<?}
else
{?>
<a href="pagemoncompte.php" target=_top> Mon compte </a> <br>
<?
}
?>



De plus, j'ai un autre soucis, peut être est-il en rapport avec le premier (?). J'ai des formulaires avec un bouton "enregistrer" puis un bouton "annuler" tels que :


<input type="submit" value="Enregistrer" onclick="window.location.replace('codeconnexion.php')"/>

<input type="button" value="Annuler" onclick="window.location.replace('index.php')"/>


Lorsque je clique sur "Enregistrer" (donc bouton submit), il y a un gros bug: "Apache HTTP Serveur a rencontré un problème et doit fermer...". Le bouton "Annuler" fonctionne correctement en me redirigeant sur la page index.php . Je précise que le formulaire en question contient bien dans ses paramètres "action="fichier-executant-le-code.php"" ...



En espérant avoir été assez claire...
Je vous remercie d'avance pour votre aide.



32 réponses

Messages postés
186
Date d'inscription
mardi 13 avril 2010
Statut
Membre
Dernière intervention
23 mars 2016
13
Bonjour,

Deja pour ton if , il vaut mieux utiliser :


if(isset($_SESSION['pseudonyme']))
Messages postés
784
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
5 juin 2014
51
Pour ce qui est du code PHP, voilà une petite correction :

<?php
if (isset($_SESSION["pseudonyme"]) || $_SESSION["pseudonyme"] == ""){
?> 
<a href="pageconnexion.php" target=_top>Connexion</a><br> 
<a href="pageinscription.php" target=_top>Inscription</a><br> 
<?php
}
else{
?> 
<a href="pagemoncompte.php" target=_top> Mon compte </a> <br> 
<?php
}
?> 

Messages postés
167
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
29 avril 2014
10
Pourquoi est-il préférable de remplacer "empty" par "isset" ? (j'essaye de comprendre un peu ce que j'écris ^^')

J'ai copié collé ton code à la place du mien, et il signale une erreur à la ligne où se trouve justement ce "isset":
if (isset($_SESSION["pseudonyme"]) || $_SESSION["pseudonyme"] == ""){

Je te remercie pour ton aide !
Messages postés
167
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
29 avril 2014
10
Je précise que dans le message d'erreur, il est marqué que la variable _SESSION n'est pas défini ... ?
Messages postés
186
Date d'inscription
mardi 13 avril 2010
Statut
Membre
Dernière intervention
23 mars 2016
13
ah lol, dans ton fichier.php juste apres <?php tu ecrit session_start();
sa te permet bah de demarrer une session , pour gérer les variables $_session.
Tu devra le mettre au debut de tout tes fichiers utilisant les $_session.

pour le isset, c'est "est-ce que la variable $_session['pseudo'] est instancié ?"
or pour le empty "est-ce que la variable $_session['pseudo'] est vide ?"

Donc d'apres moi e: ( (empty ($_SESSION["pseudonyme"]) revient au meme que ($_SESSION["pseudonyme"] == "") )
Messages postés
167
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
29 avril 2014
10
Ah oui d'accord merci beaucoup pour tes explications très claires !! =)

Cependant, même après avoir sauvegarder mes modifications, et mis à jour la page, la même erreur reste affichée.... >_<'
Messages postés
186
Date d'inscription
mardi 13 avril 2010
Statut
Membre
Dernière intervention
23 mars 2016
13
alors si tu est sous wamp, tu click sur l'icon wamp dans ta barre, PHP -> PHP settings, et la tu coche "register globals" tu redemar wamp et normalement c'est bon !!
Messages postés
167
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
29 avril 2014
10
Et si je travaille avec easyphp ... ?
(non ! non ! je ne suis pas casse pied xD)
Messages postés
186
Date d'inscription
mardi 13 avril 2010
Statut
Membre
Dernière intervention
23 mars 2016
13
Bah il doit y avoir quasiment la même chose, sa doit être dans les configurations de PHP.
En gros c'est pour utiliser les variables superglobales comme $_SESSION.

C'est sur que tu doit avoir qqch a cocher

Sinon tu instal wamp, c'est rapide, et facile d'utilisation ;)
Messages postés
167
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
29 avril 2014
10
D'accord je vais essayer de fouiller dans tous ces fichiers bizarres ^^'.
Je te remercie encore de m'avoir aider aussi vite ! =) A bientôt ...
Messages postés
167
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
29 avril 2014
10
Mon problème avec les sessions a été réglé, merci justoo76 !
Quelqu'un aurait une solution pour mes boutons submit ? Je rappelle mon problème, lorsque je clique sur le bouton pour valider mon formulaire, j'ai un gros bug où une fenêtre d'erreur apparaît me demandant si je souhaite envoyer le rapport d'erreur...
Messages postés
1253
Date d'inscription
jeudi 20 août 2009
Statut
Membre
Dernière intervention
14 mars 2012
94
L'histoire du rapport d'erreur, on dirait que c'est Apache qui plante..
Juste une question, qu'est sensé faire la partie "onclick=window.location.replace('blabla.php')" ?
Messages postés
186
Date d'inscription
mardi 13 avril 2010
Statut
Membre
Dernière intervention
23 mars 2016
13
Yeahh !!

Pour ton submit , tu peux poster ton code et expliquer plus en détail l'erreur ? stp
Messages postés
167
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
29 avril 2014
10
Rep à biboo_ :
la partie "onclick=window.location.replace('blabla.php')" permet de rediriger vers une autre page en gros (elle fonctionne pour annuler), mais je l'ai enlevé pour le bouton submit, c'était juste un test foireux que j'avais fais, désespérément xD...

Rep à justoo76 :
comme l'a dit biboo_ c'est en effet un message d'apache : "Apache HTTP server a rencontré un problème et doit fermer. Nous vous prions de nous excuser pour le désagrément encouru" ... Envoyer le rapport d'erreurs / Ne pas envoyer. Puis ensuite ma page affiche : "Erreur de chargement de la page .... Connexion réinitialisée".

Voilà, j'espère avoir été assez claire...
Messages postés
1253
Date d'inscription
jeudi 20 août 2009
Statut
Membre
Dernière intervention
14 mars 2012
94
Pour la redirection, tu devrais utiliser "window.location.href" :]
Messages postés
167
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
29 avril 2014
10
J'ai essayé, mais ça ne marche pas, enfin en tout les cas pour le bouton annuler ça marche bien, donc ce n'est pas très grave pour la façon de coder je pense.

c'est vraiment ce submit qui pose un gros problème... c'est pas évident de continuer à coder avec ce soucis!
Enfin merci quand même de m'aider =)
Messages postés
784
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
5 juin 2014
51
Pourquoi s'embêter avec un onClick ? Un submit exécute la page que tu as définit dans "action" de ton form, ou es le pb ?
Messages postés
167
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
29 avril 2014
10
Oui le onclick était un test, je ne l'ai plus dans mon code, donc je récapitule mon code pour le bouton enregistrer :
<input type="submit" value="Enregistrer" />

J'ai également essayé en ajoutant un name et id, mais toujours le meme problème : rapport d'erreur d'apache... je précise aussi que dans mon form j'ai bien mis en action le bon fichier php...
Messages postés
784
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
5 juin 2014
51
Pourrais-tu re-poster l'ensemble du code s'il te plait ?

S'il y a une erreur appache, ça sonne pas bon à mon avis :s
Messages postés
167
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
29 avril 2014
10
<html>
<head>
<title>SITE<title>
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="css_bleu.css" />
</head>

<body>
<div id="principal" width="100%">

<!-- Ici c'est l'en tête de la page -->
<div id="en_tete" align=center>
<img src="bannierepub.jpg" width="100%">
</div>

<!-- Ici c'est le menu/sommaire -->
<div id="menu" align=left>
<object data="pagesommaire.php" type="text/html"/>
</div>

<!-- Ici c'est le contenu principal de la page -->
<div id="corps">
<h2 align=center>Connexion</h2>

<br><br>
<form name="formco" method="post" action="codeconnexion.php">
<table>
<tr>
<td> Pseudonyme : </td>
<td><input type="text" name="pseudo"></td>
</tr>
<tr>
<td> Mot de passe : </td>
<td><input type="password" name="mdp"></td>
</tr>
</table><br>

<p>
<input type="submit" value="Enregistrer"/>  
<input type="button" value="Annuler" onclick="window.location.replace('index.php')"/>
</p>
</form>
</div>

</div>
</body>
</html>
Messages postés
784
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
5 juin 2014
51
C'est plus le php qui nous intéresserais :p
Messages postés
167
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
29 avril 2014
10
Boulet ! ...désolée xD

<?php
// Inclusion et execution du fichier db.php
require('connexionBDD.php');


if(empty($_POST["pseudo"]) || empty($_POST["mdp"]))
{ // === Cas ou login et motdepasse sont vides
echo 'Attention, remplissez tous les champs.';
}
else
{
// Recherche des utilisateurs.
$req = mysql_query("Select pseudonyme ,motdepasse from client") or die ("Erreur requete: ".mysql_error());

if( mysql_num_rows($req) == 0 )
{ echo 'Problème sur la BDD';
header('location: index.php');
}
else
{ $i = 0;
$trouve =0;

while ( ( $i<mysql_num_rows($req) ) && ($trouve ==0) )
{
$donnee = mysql_fetch_array($req);
if ( ($donnee['Pseudo']==$_POST["pseudo"]) && ( $donnee['motdepasse']==$_POST["mdp"] ))
{ $trouve =1;
$_SESSION["pseudonyme"]=$donnee["pseudo"];
}
$i=$i+1;
}
if( $trouve == 0)
{ header('location: index.php');
}
}
}
@mysql_close();
header('location: index.php');
?>
Messages postés
167
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
29 avril 2014
10
et le problème, c'est que ça me le fait à TOUS les boutons submit .... =(