Mysql_fetch_array() expects parameter 1 to be resource
Fermé
sylvain83
Messages postés
62
Date d'inscription
mardi 25 septembre 2012
Statut
Membre
Dernière intervention
30 avril 2014
-
25 sept. 2013 à 09:42
sylvain83 Messages postés 62 Date d'inscription mardi 25 septembre 2012 Statut Membre Dernière intervention 30 avril 2014 - 11 nov. 2013 à 11:46
sylvain83 Messages postés 62 Date d'inscription mardi 25 septembre 2012 Statut Membre Dernière intervention 30 avril 2014 - 11 nov. 2013 à 11:46
A voir également:
- Mysql_fetch_array() expects parameter 1 to be resource
- Qwerty to azerty - Guide
- Be-foot.com avis - Forum Consommation & Internet
- Welcome to nginx! ✓ - Forum Applis & Sites
- Press del to enter setup ✓ - Forum Windows
- 1 to en gb ✓ - Forum Logiciels
69 réponses
sylvain83
Messages postés
62
Date d'inscription
mardi 25 septembre 2012
Statut
Membre
Dernière intervention
30 avril 2014
1
1 oct. 2013 à 08:35
1 oct. 2013 à 08:35
Bon je n y arrive pas :(
En relisant mon code je me rends compte qu il vérifie déja :
if(isset($_POST['Enseignant'])) $Enseignant=$_POST['Enseignant'];
else $Enseignant="";
non ? En modifiant ce code sans avoir à utiliser strlen ne puis je pas faire en sorte que tous les champs soient saisis avant traitement ??
Merci beaucoup et bonne journée.
En relisant mon code je me rends compte qu il vérifie déja :
if(isset($_POST['Enseignant'])) $Enseignant=$_POST['Enseignant'];
else $Enseignant="";
non ? En modifiant ce code sans avoir à utiliser strlen ne puis je pas faire en sorte que tous les champs soient saisis avant traitement ??
Merci beaucoup et bonne journée.
Utilisateur anonyme
1 oct. 2013 à 08:59
1 oct. 2013 à 08:59
Tout ce que ce test vérifie, c'est si la variable $_POST['Enseignant'] existe. Et elle existe à partir du moment où on appuie sur le bouton de validation du formulaire, que le visiteur ait rempli le champ ou non.
Je t'invite d'abord à utiliser trim() pour éliminer les espaces qu'il peut y avoir au début ou à la fin de la saisie, puis à tester la longueur du texte qui reste :
Je t'invite d'abord à utiliser trim() pour éliminer les espaces qu'il peut y avoir au début ou à la fin de la saisie, puis à tester la longueur du texte qui reste :
if(isset($_POST['Enseignant'])) $Enseignant=trim($_POST['Enseignant']);
else $Enseignant="";
if (strlen($Enseignant)==0) {... veuillez compléter le champ nom ... }
sylvain83
Messages postés
62
Date d'inscription
mardi 25 septembre 2012
Statut
Membre
Dernière intervention
30 avril 2014
1
1 oct. 2013 à 09:22
1 oct. 2013 à 09:22
<?php
// On commence par récupérer les champs
if(isset($_POST['Enseignant'])) $Enseignant=trim($_POST['Enseignant']);
else $Enseignant="";
if (strlen($Enseignant)==0) {... veuillez compléter le champ Enseignant ... }
if(isset($_POST['Salle'])) $Salle=trim($_POST['Salle']);
else $Salle="";
if (strlen($Salle)==0) {... veuillez compléter le champ Salle ... }
if(isset($_POST['Date'])) $Date=trim($_POST['Date']);
else $Date="";
if (strlen($Date)==0) {... veuillez compléter le champ Date ... }
if(isset($_POST['Horaire'])) $Horaire=trim($_POST['Horaire']);
else $Horaire="";
if (strlen($Horaire)==0) {... veuillez compléter le champ Horaire ... }
if(isset($_POST['Numero'])) $Numero=trim($_POST['Numero']);
else $Numero="";
if (strlen($Numero)==0) {... veuillez compléter le champ Numero ... }
if(isset($_POST['Type'])) $Type=trim($_POST['Type']);
else $Type="";
if (strlen($Type)==0) {... veuillez compléter le champ Type ... }
if(isset($_POST['Titre'])) $Titre=trim($_POST['Titre']);
else $Titre="";
if (strlen($Titre)==0) {... veuillez compléter le champ Titre ... }
if(isset($_POST['Nouvelle'])) $Nouvelle=trim($_POST['Nouvelle']);
else $Nouvelle="";
if (strlen($Nouvelle)==0) {... veuillez compléter le champ Nouvelle ... }
if(isset($_POST['Remarque'])) $Remarque=trim($_POST['Remarque']);
else $Remarque="";
if (strlen($Remarque)==0) {... veuillez compléter le champ Remarque ... }
{
// connexion à la base
$db = mysql_connect('localhost', 'root', '') or die('Erreur de connexion '.mysql_error());
// sélection de la base
mysql_select_db('phpmyadmin',$db) or die('Erreur de selection '.mysql_error());
// on crée la requête sql
$sql = "INSERT INTO infos_tbl(id, Enseignant, Salle, Date, Horaire, Numero, Type, Titre, Nouvelle, Remarque) VALUES('','$Enseignant','$Salle','$Date','$Horaire','$Numero', '$Type','$Titre','$Nouvelle','$Remarque')";
// on selectionne les informations à afficher dans le tableau
$result = 'SELECT * FROM infos_tbl';
// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
// on envoie la seconde requete
$req = mysql_query($result) or die('Erreur SQL !'.$req.'<br>'.mysql_error());
// on affiche le titre du tableau pour la page dernière minute
echo '<b>CHANGEMENT(S) DE "DERNIERE MINUTE" DE L HORAIRE DES COURS 2013-2014</b>';
echo '<p></p>';
// on affiche les données saisies dans un tableau
echo "<table border cellpadding=15>
<tr>
<th>Enseignant</th>
<th>Salle</th>
<th>Date</th>
<th>Horaire</th>
<th>Numero</th>
<th>Type</th>
<th>Titre</th>
<th>Nouvelle</th>
<th>Remarque</th>
</tr>" ;
while($row = mysql_fetch_array($req, MYSQL_ASSOC))
{
echo "<tr>
<td>".$row['Enseignant'] . "</td>
<td> ". $row['Salle'] . "</td>
<td> ". $row['Date'] . "</td>
<td> ". $row['Horaire'] . "</td>
<td> ". $row['Numero'] . "</td>
<td> ". $row['Type']. "</td>
<td> ". $row['Titre']. "</td>
<td> ". $row['Nouvelle']. "</td>
<td> ". $row['Remarque']. "</td>
</tr>";
}
echo "</table>";
mysql_close();
// on ferme la connexion
}
?>
Message d erreur :
Parse error: syntax error, unexpected '.' in C:\Program Files\EasyPHP-12.1\www\add.php on line 5
// On commence par récupérer les champs
if(isset($_POST['Enseignant'])) $Enseignant=trim($_POST['Enseignant']);
else $Enseignant="";
if (strlen($Enseignant)==0) {... veuillez compléter le champ Enseignant ... }
if(isset($_POST['Salle'])) $Salle=trim($_POST['Salle']);
else $Salle="";
if (strlen($Salle)==0) {... veuillez compléter le champ Salle ... }
if(isset($_POST['Date'])) $Date=trim($_POST['Date']);
else $Date="";
if (strlen($Date)==0) {... veuillez compléter le champ Date ... }
if(isset($_POST['Horaire'])) $Horaire=trim($_POST['Horaire']);
else $Horaire="";
if (strlen($Horaire)==0) {... veuillez compléter le champ Horaire ... }
if(isset($_POST['Numero'])) $Numero=trim($_POST['Numero']);
else $Numero="";
if (strlen($Numero)==0) {... veuillez compléter le champ Numero ... }
if(isset($_POST['Type'])) $Type=trim($_POST['Type']);
else $Type="";
if (strlen($Type)==0) {... veuillez compléter le champ Type ... }
if(isset($_POST['Titre'])) $Titre=trim($_POST['Titre']);
else $Titre="";
if (strlen($Titre)==0) {... veuillez compléter le champ Titre ... }
if(isset($_POST['Nouvelle'])) $Nouvelle=trim($_POST['Nouvelle']);
else $Nouvelle="";
if (strlen($Nouvelle)==0) {... veuillez compléter le champ Nouvelle ... }
if(isset($_POST['Remarque'])) $Remarque=trim($_POST['Remarque']);
else $Remarque="";
if (strlen($Remarque)==0) {... veuillez compléter le champ Remarque ... }
{
// connexion à la base
$db = mysql_connect('localhost', 'root', '') or die('Erreur de connexion '.mysql_error());
// sélection de la base
mysql_select_db('phpmyadmin',$db) or die('Erreur de selection '.mysql_error());
// on crée la requête sql
$sql = "INSERT INTO infos_tbl(id, Enseignant, Salle, Date, Horaire, Numero, Type, Titre, Nouvelle, Remarque) VALUES('','$Enseignant','$Salle','$Date','$Horaire','$Numero', '$Type','$Titre','$Nouvelle','$Remarque')";
// on selectionne les informations à afficher dans le tableau
$result = 'SELECT * FROM infos_tbl';
// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
// on envoie la seconde requete
$req = mysql_query($result) or die('Erreur SQL !'.$req.'<br>'.mysql_error());
// on affiche le titre du tableau pour la page dernière minute
echo '<b>CHANGEMENT(S) DE "DERNIERE MINUTE" DE L HORAIRE DES COURS 2013-2014</b>';
echo '<p></p>';
// on affiche les données saisies dans un tableau
echo "<table border cellpadding=15>
<tr>
<th>Enseignant</th>
<th>Salle</th>
<th>Date</th>
<th>Horaire</th>
<th>Numero</th>
<th>Type</th>
<th>Titre</th>
<th>Nouvelle</th>
<th>Remarque</th>
</tr>" ;
while($row = mysql_fetch_array($req, MYSQL_ASSOC))
{
echo "<tr>
<td>".$row['Enseignant'] . "</td>
<td> ". $row['Salle'] . "</td>
<td> ". $row['Date'] . "</td>
<td> ". $row['Horaire'] . "</td>
<td> ". $row['Numero'] . "</td>
<td> ". $row['Type']. "</td>
<td> ". $row['Titre']. "</td>
<td> ". $row['Nouvelle']. "</td>
<td> ". $row['Remarque']. "</td>
</tr>";
}
echo "</table>";
mysql_close();
// on ferme la connexion
}
?>
Message d erreur :
Parse error: syntax error, unexpected '.' in C:\Program Files\EasyPHP-12.1\www\add.php on line 5
sylvain83
Messages postés
62
Date d'inscription
mardi 25 septembre 2012
Statut
Membre
Dernière intervention
30 avril 2014
1
1 oct. 2013 à 09:26
1 oct. 2013 à 09:26
Visiblement c est "{... veuillez compléter le champ Enseignant ... } " ces lignes qui posent problèmes...j'ai essayé de les remplacer par des "echo' Remplir champ...' mais ca ne marche pas non plus...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
1 oct. 2013 à 09:53
1 oct. 2013 à 09:53
Il ne fallait pas recopier textuellement, il est clair (il devrait être clair) que c'est incorrect en PHP. C'était juste pour indiquer qu'il fallait mettre ici le traitement correspondant au cas où un champ n'est pas rempli. À toi de décider quel est ce traitement, tout dépend de ce que tu veux faire.
Par contre, des "echo" auraient dû marcher, même si le résultat devait être très moche. Quel message avais-tu avec les "echo" ?
Par contre, des "echo" auraient dû marcher, même si le résultat devait être très moche. Quel message avais-tu avec les "echo" ?
sylvain83
Messages postés
62
Date d'inscription
mardi 25 septembre 2012
Statut
Membre
Dernière intervention
30 avril 2014
1
1 oct. 2013 à 11:18
1 oct. 2013 à 11:18
if(isset($_POST['Enseignant'])) $Enseignant=trim($_POST['Enseignant']);
else $Enseignant="";
if (strlen($Enseignant)==0) echo"Remplir le champ Enseignant" ;
Avec les echos ca marche ( j' avais oublié un ";" ) Mais ça affiche mon message " Remplir le champ.." directement au dessus de mon tableau..ce qui est en effet très moche !!
Ce que je voudrais c'est que lorsque l'utilisateur omet de remplir un des champs , le message "remplir ce champ..." apparaisse et stop du coup l'opération....jsais pas si c'est très clair....mais merci d'avance
else $Enseignant="";
if (strlen($Enseignant)==0) echo"Remplir le champ Enseignant" ;
Avec les echos ca marche ( j' avais oublié un ";" ) Mais ça affiche mon message " Remplir le champ.." directement au dessus de mon tableau..ce qui est en effet très moche !!
Ce que je voudrais c'est que lorsque l'utilisateur omet de remplir un des champs , le message "remplir ce champ..." apparaisse et stop du coup l'opération....jsais pas si c'est très clair....mais merci d'avance
Utilisateur anonyme
1 oct. 2013 à 11:55
1 oct. 2013 à 11:55
Qu'entends-tu par "le message apparaît et du coup stoppe l'opération "? Il faut quand même bien afficher le formulaire pour que le visiteur puisse corriger sa saisie. Et Il vaut mieux lui signaler toutes les erreurs d'un coup.
Tu n'es pas obligé de faire l'affichage en même temps que le test tu peux bien mettre les messages d'erreur dans un tableau pour ne l'afficher que plus tard, sous la forme qui t'arrange.
Tu n'es pas obligé de faire l'affichage en même temps que le test tu peux bien mettre les messages d'erreur dans un tableau pour ne l'afficher que plus tard, sous la forme qui t'arrange.
sylvain83
Messages postés
62
Date d'inscription
mardi 25 septembre 2012
Statut
Membre
Dernière intervention
30 avril 2014
1
1 oct. 2013 à 13:48
1 oct. 2013 à 13:48
En fait je veux juste que l'utilisateur soit obligé de remplir tous les champs avant d'afficher quoique ce soit.
Je ne veux pas qu il y ait des champs vides dans mon tableau...
Je ne veux pas qu il y ait des champs vides dans mon tableau...
sylvain83
Messages postés
62
Date d'inscription
mardi 25 septembre 2012
Statut
Membre
Dernière intervention
30 avril 2014
1
1 oct. 2013 à 13:57
1 oct. 2013 à 13:57
J ai essayé cela :
if(isset($_POST['Enseignant'])) $Enseignant=trim($_POST['Enseignant']);
else $Enseignant="";
// verifions que le champ ne soit pas vide
if (strlen($Enseignant)==0)
{
print("<center> REMPLIR LE CHAMP!!</center>);
exit();
}
Mais sans succès
Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in C:\Program Files\EasyPHP-12.1\www\add.php on line 12
if(isset($_POST['Enseignant'])) $Enseignant=trim($_POST['Enseignant']);
else $Enseignant="";
// verifions que le champ ne soit pas vide
if (strlen($Enseignant)==0)
{
print("<center> REMPLIR LE CHAMP!!</center>);
exit();
}
Mais sans succès
Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in C:\Program Files\EasyPHP-12.1\www\add.php on line 12
Utilisateur anonyme
1 oct. 2013 à 13:58
1 oct. 2013 à 13:58
Si tu t'aperçois qu'un champ n'est pas rempli, il faut ré-afficher le formulaire. Sinon, comment veux-tu obliger les gens à saisir tous les champs.
Tu affiches déjà ce formulaire, quel est le problème pour l'afficher à nouveau (mis à part qu'il va falloir initialiser les champs avec les valeurs déjà saisies ) ?
Tu affiches déjà ce formulaire, quel est le problème pour l'afficher à nouveau (mis à part qu'il va falloir initialiser les champs avec les valeurs déjà saisies ) ?
sylvain83
Messages postés
62
Date d'inscription
mardi 25 septembre 2012
Statut
Membre
Dernière intervention
30 avril 2014
1
1 oct. 2013 à 14:03
1 oct. 2013 à 14:03
Aucun ! Si ce n'est comment faire !
sylvain83
Messages postés
62
Date d'inscription
mardi 25 septembre 2012
Statut
Membre
Dernière intervention
30 avril 2014
1
1 oct. 2013 à 16:04
1 oct. 2013 à 16:04
Bref, merci tout de même pour ton aide "le père" .
Cordialement.
Cordialement.
sylvain83
Messages postés
62
Date d'inscription
mardi 25 septembre 2012
Statut
Membre
Dernière intervention
30 avril 2014
1
1 oct. 2013 à 16:31
1 oct. 2013 à 16:31
J'ai appliqué ton conseil le Père et c est bueno !
if(isset($_POST['Enseignant'])) $Enseignant=trim($_POST['Enseignant']);
else $Enseignant="";
if (strlen($Enseignant)==0) header('Location:http://127.0.0.1/scdform.html');
Merci encore !
if(isset($_POST['Enseignant'])) $Enseignant=trim($_POST['Enseignant']);
else $Enseignant="";
if (strlen($Enseignant)==0) header('Location:http://127.0.0.1/scdform.html');
Merci encore !
sylvain83
Messages postés
62
Date d'inscription
mardi 25 septembre 2012
Statut
Membre
Dernière intervention
30 avril 2014
1
2 oct. 2013 à 16:38
2 oct. 2013 à 16:38
Le père je viens de me rendre compte d' un problème...avec ce code :
<?php
// On commence par récupérer les champs
if(isset($_POST['Enseignant'])) $Enseignant=trim($_POST['Enseignant']);
else $Enseignant="";
// Tous les champs doivent être remplis
if (strlen($Enseignant)==0) header('Location:http://127.0.0.1/scdform.html');
if(isset($_POST['Salle'])) $Salle=trim($_POST['Salle']);
else $Salle="";
if (strlen($Salle)==0) header('Location:http://127.0.0.1/scdform.html');
if(isset($_POST['Date'])) $Date=trim($_POST['Date']);
else $Date="";
if (strlen($Date)==0) header('Location:http://127.0.0.1/scdform.html');
if(isset($_POST['Horaire'])) $Horaire=trim($_POST['Horaire']);
else $Horaire="";
if (strlen($Horaire)==0) header('Location:http://127.0.0.1/scdform.html');
if(isset($_POST['Numero'])) $Numero=trim($_POST['Numero']);
else $Numero="";
if (strlen($Numero)==0) header('Location:http://127.0.0.1/scdform.html');
if(isset($_POST['Type'])) $Type=trim($_POST['Type']);
else $Type="";
if (strlen($Type)==0) header('Location:http://127.0.0.1/scdform.html');
if(isset($_POST['Titre'])) $Titre=trim($_POST['Titre']);
else $Titre="";
if (strlen($Titre)==0) header('Location:http://127.0.0.1/scdform.html');
if(isset($_POST['Nouvelle'])) $Nouvelle=trim($_POST['Nouvelle']);
else $Nouvelle="";
if (strlen($Nouvelle)==0) header('Location:http://127.0.0.1/scdform.html');
if(isset($_POST['Remarque'])) $Remarque=trim($_POST['Remarque']);
else $Remarque="";
if (strlen($Remarque)==0) header('Location:http://127.0.0.1/scdform.html');
{
// connexion à la base
$db = mysql_connect('localhost', 'root', '') or die('Erreur de connexion '.mysql_error());
// sélection de la base
mysql_select_db('phpmyadmin',$db) or die('Erreur de selection '.mysql_error());
// on crée la requête sql
$sql = "INSERT INTO infos_tbl(id, Enseignant, Salle, Date, Horaire, Numero, Type, Titre, Nouvelle, Remarque) VALUES('','$Enseignant','$Salle','$Date','$Horaire','$Numero', '$Type','$Titre','$Nouvelle','$Remarque')";
// on selectionne les informations à afficher dans le tableau
$result = 'SELECT * FROM infos_tbl';
// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
// on envoie la seconde requete
$req = mysql_query($result) or die('Erreur SQL !'.$req.'<br>'.mysql_error());
// on affiche le titre du tableau pour la page dernière minute
echo '<b>CHANGEMENT(S) DE "DERNIERE MINUTE" DE L HORAIRE DES COURS 2013-2014</b>';
echo '<p></p>';
// on affiche les données saisies dans un tableau
echo "<table border cellpadding=15>
<tr>
<th>Enseignant</th>
<th>Salle</th>
<th>Date</th>
<th>Horaire</th>
<th>Numero</th>
<th>Type</th>
<th>Titre</th>
<th>Nouvelle</th>
<th>Remarque</th>
</tr>" ;
while($row = mysql_fetch_array($req, MYSQL_ASSOC))
{
echo "<tr>
<td>".$row['Enseignant'] . "</td>
<td> ". $row['Salle'] . "</td>
<td> ". $row['Date'] . "</td>
<td> ". $row['Horaire'] . "</td>
<td> ". $row['Numero'] . "</td>
<td> ". $row['Type']. "</td>
<td> ". $row['Titre']. "</td>
<td> ". $row['Nouvelle']. "</td>
<td> ". $row['Remarque']. "</td>
</tr>";
}
echo "</table>";
mysql_close();
// on ferme la connexion
}
?>
Lorsque qu un champ n'est pas rempli et que l on clique sur Envoyer on revient automatiquement sur le formulaire...mais le problème c est que ca affiche tout de meme dans mon tableau le resultat...alors que je veux simplement que ca revienne sur le formulaire...
<?php
// On commence par récupérer les champs
if(isset($_POST['Enseignant'])) $Enseignant=trim($_POST['Enseignant']);
else $Enseignant="";
// Tous les champs doivent être remplis
if (strlen($Enseignant)==0) header('Location:http://127.0.0.1/scdform.html');
if(isset($_POST['Salle'])) $Salle=trim($_POST['Salle']);
else $Salle="";
if (strlen($Salle)==0) header('Location:http://127.0.0.1/scdform.html');
if(isset($_POST['Date'])) $Date=trim($_POST['Date']);
else $Date="";
if (strlen($Date)==0) header('Location:http://127.0.0.1/scdform.html');
if(isset($_POST['Horaire'])) $Horaire=trim($_POST['Horaire']);
else $Horaire="";
if (strlen($Horaire)==0) header('Location:http://127.0.0.1/scdform.html');
if(isset($_POST['Numero'])) $Numero=trim($_POST['Numero']);
else $Numero="";
if (strlen($Numero)==0) header('Location:http://127.0.0.1/scdform.html');
if(isset($_POST['Type'])) $Type=trim($_POST['Type']);
else $Type="";
if (strlen($Type)==0) header('Location:http://127.0.0.1/scdform.html');
if(isset($_POST['Titre'])) $Titre=trim($_POST['Titre']);
else $Titre="";
if (strlen($Titre)==0) header('Location:http://127.0.0.1/scdform.html');
if(isset($_POST['Nouvelle'])) $Nouvelle=trim($_POST['Nouvelle']);
else $Nouvelle="";
if (strlen($Nouvelle)==0) header('Location:http://127.0.0.1/scdform.html');
if(isset($_POST['Remarque'])) $Remarque=trim($_POST['Remarque']);
else $Remarque="";
if (strlen($Remarque)==0) header('Location:http://127.0.0.1/scdform.html');
{
// connexion à la base
$db = mysql_connect('localhost', 'root', '') or die('Erreur de connexion '.mysql_error());
// sélection de la base
mysql_select_db('phpmyadmin',$db) or die('Erreur de selection '.mysql_error());
// on crée la requête sql
$sql = "INSERT INTO infos_tbl(id, Enseignant, Salle, Date, Horaire, Numero, Type, Titre, Nouvelle, Remarque) VALUES('','$Enseignant','$Salle','$Date','$Horaire','$Numero', '$Type','$Titre','$Nouvelle','$Remarque')";
// on selectionne les informations à afficher dans le tableau
$result = 'SELECT * FROM infos_tbl';
// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
// on envoie la seconde requete
$req = mysql_query($result) or die('Erreur SQL !'.$req.'<br>'.mysql_error());
// on affiche le titre du tableau pour la page dernière minute
echo '<b>CHANGEMENT(S) DE "DERNIERE MINUTE" DE L HORAIRE DES COURS 2013-2014</b>';
echo '<p></p>';
// on affiche les données saisies dans un tableau
echo "<table border cellpadding=15>
<tr>
<th>Enseignant</th>
<th>Salle</th>
<th>Date</th>
<th>Horaire</th>
<th>Numero</th>
<th>Type</th>
<th>Titre</th>
<th>Nouvelle</th>
<th>Remarque</th>
</tr>" ;
while($row = mysql_fetch_array($req, MYSQL_ASSOC))
{
echo "<tr>
<td>".$row['Enseignant'] . "</td>
<td> ". $row['Salle'] . "</td>
<td> ". $row['Date'] . "</td>
<td> ". $row['Horaire'] . "</td>
<td> ". $row['Numero'] . "</td>
<td> ". $row['Type']. "</td>
<td> ". $row['Titre']. "</td>
<td> ". $row['Nouvelle']. "</td>
<td> ". $row['Remarque']. "</td>
</tr>";
}
echo "</table>";
mysql_close();
// on ferme la connexion
}
?>
Lorsque qu un champ n'est pas rempli et que l on clique sur Envoyer on revient automatiquement sur le formulaire...mais le problème c est que ca affiche tout de meme dans mon tableau le resultat...alors que je veux simplement que ca revienne sur le formulaire...
Utilisateur anonyme
2 oct. 2013 à 17:17
2 oct. 2013 à 17:17
C'est normal, tu exécutes toujours ton INSERT.
En effet, le 'header (Location:...) n'arrête pas le script : il envoie simplement un en-tête au navigateur du visiteur, qui va demander la page voulue (et donc changer de page).
Pour arrêter le script, tu peux mettre un exit; derrière chaque header (avec des accolades)
J'espère que tu trouves bien pénible de ré-écrire 10 fois le même code. Et quand il faudra que tu changes l'url de la page, il faudra que tu modifies 10 fois. Ce sera fatiguant, et en plus tu te tromperas bien une fois ou deux.
Tu devrais créer une fonction qui fait le header et l'exit, et simplement appeler la fonction en cas de problème
En effet, le 'header (Location:...) n'arrête pas le script : il envoie simplement un en-tête au navigateur du visiteur, qui va demander la page voulue (et donc changer de page).
Pour arrêter le script, tu peux mettre un exit; derrière chaque header (avec des accolades)
if (strlen($Enseignant)==0) { header('Location:http://127.0.0.1/scdform.html'); exit; }
J'espère que tu trouves bien pénible de ré-écrire 10 fois le même code. Et quand il faudra que tu changes l'url de la page, il faudra que tu modifies 10 fois. Ce sera fatiguant, et en plus tu te tromperas bien une fois ou deux.
Tu devrais créer une fonction qui fait le header et l'exit, et simplement appeler la fonction en cas de problème
sylvain83
Messages postés
62
Date d'inscription
mardi 25 septembre 2012
Statut
Membre
Dernière intervention
30 avril 2014
1
3 oct. 2013 à 09:13
3 oct. 2013 à 09:13
Merci ! Je vais donc voir pour créer cette fonction....entre temps j 'ai crée une page d'authentification et une table dans laquelle j ai insérer les user et password (table membre) :
<?php
// on teste si le visiteur a soumis le formulaire de connexion
if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {
$base = mysql_connect ('serveur', 'login', 'password');
mysql_select_db ('phpmyadmin', $base);
// on teste si une entrée de la base contient ce couple login / pass
$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.mysql_escape_string(md5($_POST['pass'])).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
mysql_free_result($req);
mysql_close();
// si on obtient une réponse, alors l'utilisateur est un membre
if ($data[0] == 1) {
session_start();
$_SESSION['login'] = $_POST['login'];
header('Location: http://127.0.0.1/scdform.html');
exit();
}
// si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe
elseif ($data[0] == 0) {
$erreur = 'Compte non reconnu.';
}
// sinon, alors la, il y a un gros problème :)
else {
$erreur = 'Problème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.';
}
}
else {
$erreur = 'Au moins un des champs est vide.';
}
}
?>
<html>
<head><title>Authentification pour accès LastMinute</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<style type="text/css">
form {
display: block;
width: 80%;
}
fieldset{ color: blue;margin: 0 auto 0 auto;
text-align: right;
float: right;
}
</style>
</head>
<body>
<form class="authentification" method="post" action="http://127.0.0.1/index.php">
<fieldset>
<legend>Identifiez-vous</legend>
Entrez votre login : <input type="text" name="login"/><br/>
Entrez votre mot de passe : <input type="password" name="password"/><br/>
<input type="submit" name="valider" value="OK"/>
</fieldset>
</form>
</body>
</html>
Mais il ne reconnait aucun des users et mot de passes, puisque il ne me redirige pas vers ma page scdform.html...alors que les users et mot de passes sont bien dans ma table "membre".... Merci toujours le père
<?php
// on teste si le visiteur a soumis le formulaire de connexion
if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {
$base = mysql_connect ('serveur', 'login', 'password');
mysql_select_db ('phpmyadmin', $base);
// on teste si une entrée de la base contient ce couple login / pass
$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.mysql_escape_string(md5($_POST['pass'])).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
mysql_free_result($req);
mysql_close();
// si on obtient une réponse, alors l'utilisateur est un membre
if ($data[0] == 1) {
session_start();
$_SESSION['login'] = $_POST['login'];
header('Location: http://127.0.0.1/scdform.html');
exit();
}
// si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe
elseif ($data[0] == 0) {
$erreur = 'Compte non reconnu.';
}
// sinon, alors la, il y a un gros problème :)
else {
$erreur = 'Problème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.';
}
}
else {
$erreur = 'Au moins un des champs est vide.';
}
}
?>
<html>
<head><title>Authentification pour accès LastMinute</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<style type="text/css">
form {
display: block;
width: 80%;
}
fieldset{ color: blue;margin: 0 auto 0 auto;
text-align: right;
float: right;
}
</style>
</head>
<body>
<form class="authentification" method="post" action="http://127.0.0.1/index.php">
<fieldset>
<legend>Identifiez-vous</legend>
Entrez votre login : <input type="text" name="login"/><br/>
Entrez votre mot de passe : <input type="password" name="password"/><br/>
<input type="submit" name="valider" value="OK"/>
</fieldset>
</form>
</body>
</html>
Mais il ne reconnait aucun des users et mot de passes, puisque il ne me redirige pas vers ma page scdform.html...alors que les users et mot de passes sont bien dans ma table "membre".... Merci toujours le père
Utilisateur anonyme
Modifié par le père. le 3/10/2013 à 12:14
Modifié par le père. le 3/10/2013 à 12:14
Il n'y a pas de redirection, mais qu'est-ce qui se passe ? Page blanche ? Message ? formulaire de login ?
Remarque :
Remarque :
if (isset($_POST['connexion'])...alors que ton bouton submit s'appelle 'valider' ... C'est normal, ça ?
sylvain83
Messages postés
62
Date d'inscription
mardi 25 septembre 2012
Statut
Membre
Dernière intervention
30 avril 2014
1
3 oct. 2013 à 12:41
3 oct. 2013 à 12:41
Encore et toujours des fautes d'étourderies !
Bref j'avais trop de mal avec ce code, j'ai donc cherché d'autres solutions et finalement j'ai essayé de faire beaucoup plus simple en créant :
Une table user :
CREATE TABLE tbl_user (
id int(11) NOT NULL auto_increment,
login varchar(8) NOT NULL,
pwd varchar(8) NOT NULL,
PRIMARY KEY (id),
KEY ID_2 (id)
);
Une page de login.html :
<html>
<head>
<title>Connexion au LASTMINUTE</title>
</head>
<body>
<form method="post" action="login.php">
<table border="0" width="400" align="center">
<tr>
<td width="200"><b>Votre login</b></td>
<td width="200">
<input type="text" name="login">
</td>
</tr>
<tr>
<td width="200"><b>Votre mot de passe<b></td>
<td width="200">
<input type="password" name="password">
</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" name="submit" value="login">
</td>
</tr>
</table>
</form>
</body>
</html>
Puis une page de vérification de login.php :
<?php
// On démarre la session
session_start();
// connexion à la base
$db = mysql_connect('localhost', 'root', '') or die('Erreur de connexion '.mysql_error());
// sélection de la base
mysql_select_db('phpmyadmin',$db) or die('Erreur de selection '.mysql_error());
if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['pass'])) {
extract($_POST);
// on recupère le password de la table qui correspond au login du visiteur
$sql = "select pwd from tbl_user where login='".$login."'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_fetch_assoc($req);
if($data['pwd'] != $pass) {
echo '<p>Mauvais login / password. Merci de recommencer</p>';
include('login.htm'); // On inclut le formulaire d'identification
exit;
}
else {
session_start();
$_SESSION['login'] = $login;
echo 'Vous etes bien logué';
// redirection vers page de saisie
header('Location:http://127.0.0.1/scdform.html') ;
exit;
}
}
else {
echo '<p>Vous avez oublié de remplir un champ.</p>';
include('login.html'); // On inclut le formulaire d'identification
exit;
}
?>
Malheureusement à chaque fois que je tente de me connecter il me dit "Vous avez oublié de remplir un champ"....j'ai envie de lui dire "Mais surement" !!!
Bref suis dessus et j essaie de trouver la solution....merci ;)
Bref j'avais trop de mal avec ce code, j'ai donc cherché d'autres solutions et finalement j'ai essayé de faire beaucoup plus simple en créant :
Une table user :
CREATE TABLE tbl_user (
id int(11) NOT NULL auto_increment,
login varchar(8) NOT NULL,
pwd varchar(8) NOT NULL,
PRIMARY KEY (id),
KEY ID_2 (id)
);
Une page de login.html :
<html>
<head>
<title>Connexion au LASTMINUTE</title>
</head>
<body>
<form method="post" action="login.php">
<table border="0" width="400" align="center">
<tr>
<td width="200"><b>Votre login</b></td>
<td width="200">
<input type="text" name="login">
</td>
</tr>
<tr>
<td width="200"><b>Votre mot de passe<b></td>
<td width="200">
<input type="password" name="password">
</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" name="submit" value="login">
</td>
</tr>
</table>
</form>
</body>
</html>
Puis une page de vérification de login.php :
<?php
// On démarre la session
session_start();
// connexion à la base
$db = mysql_connect('localhost', 'root', '') or die('Erreur de connexion '.mysql_error());
// sélection de la base
mysql_select_db('phpmyadmin',$db) or die('Erreur de selection '.mysql_error());
if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['pass'])) {
extract($_POST);
// on recupère le password de la table qui correspond au login du visiteur
$sql = "select pwd from tbl_user where login='".$login."'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_fetch_assoc($req);
if($data['pwd'] != $pass) {
echo '<p>Mauvais login / password. Merci de recommencer</p>';
include('login.htm'); // On inclut le formulaire d'identification
exit;
}
else {
session_start();
$_SESSION['login'] = $login;
echo 'Vous etes bien logué';
// redirection vers page de saisie
header('Location:http://127.0.0.1/scdform.html') ;
exit;
}
}
else {
echo '<p>Vous avez oublié de remplir un champ.</p>';
include('login.html'); // On inclut le formulaire d'identification
exit;
}
?>
Malheureusement à chaque fois que je tente de me connecter il me dit "Vous avez oublié de remplir un champ"....j'ai envie de lui dire "Mais surement" !!!
Bref suis dessus et j essaie de trouver la solution....merci ;)
sylvain83
Messages postés
62
Date d'inscription
mardi 25 septembre 2012
Statut
Membre
Dernière intervention
30 avril 2014
1
3 oct. 2013 à 12:45
3 oct. 2013 à 12:45
!!! En relisant mon post j ai trouvé la solution...comme quoi des fois !
C'était juste le name de Password dans mon formulaire html qui était faux...voili voilou , bonne journée !
C'était juste le name de Password dans mon formulaire html qui était faux...voili voilou , bonne journée !
sylvain83
Messages postés
62
Date d'inscription
mardi 25 septembre 2012
Statut
Membre
Dernière intervention
30 avril 2014
1
3 oct. 2013 à 15:14
3 oct. 2013 à 15:14
Dernière question ( je le jure !) j aimerai afficher mon tableau vide de ma page add.php en page d accueil mais lorsque je tape http://127.0.0.1/add.php j arrive directement sur scdform.html...au début je pensais que c etait due au champ vide et au header qui redirigeait vers scdform.html...mais même lorsque les champs sont remplis , impossible d afficher ma page add.php sans qu elle se redirige vers scdform.html...
add.php :
<?php
// On commence par récupérer les champs
if(isset($_POST['Enseignant'])) $Enseignant=trim($_POST['Enseignant']);
else $Enseignant="";
// Tous les champs doivent être remplis
if (strlen($Enseignant)==0) {header('Location:http://127.0.0.1/scdform.html');exit;}
if(isset($_POST['Salle'])) $Salle=trim($_POST['Salle']);
else $Salle="";
if (strlen($Salle)==0) {header('Location:http://127.0.0.1/scdform.html');exit;}
if(isset($_POST['Date'])) $Date=trim($_POST['Date']);
else $Date="";
if (strlen($Date)==0) {header('Location:http://127.0.0.1/scdform.html');exit;}
if(isset($_POST['Horaire'])) $Horaire=trim($_POST['Horaire']);
else $Horaire="";
if (strlen($Horaire)==0) {header('Location:http://127.0.0.1/scdform.html');exit;}
if(isset($_POST['Numero'])) $Numero=trim($_POST['Numero']);
else $Numero="";
if (strlen($Numero)==0) {header('Location:http://127.0.0.1/scdform.html');exit;}
if(isset($_POST['Type'])) $Type=trim($_POST['Type']);
else $Type="";
if (strlen($Type)==0) {header('Location:http://127.0.0.1/scdform.html');exit;}
if(isset($_POST['Titre'])) $Titre=trim($_POST['Titre']);
else $Titre="";
if (strlen($Titre)==0) {header('Location:http://127.0.0.1/scdform.html');exit;}
if(isset($_POST['Nouvelle'])) $Nouvelle=trim($_POST['Nouvelle']);
else $Nouvelle="";
if (strlen($Nouvelle)==0) {header('Location:http://127.0.0.1/scdform.html');exit;}
if(isset($_POST['Remarque'])) $Remarque=trim($_POST['Remarque']);
else $Remarque="";
if (strlen($Remarque)==0) {header('Location:http://127.0.0.1/scdform.html');exit;}
{
// connexion à la base
$db = mysql_connect('localhost', 'root', '') or die('Erreur de connexion '.mysql_error());
// sélection de la base
mysql_select_db('phpmyadmin',$db) or die('Erreur de selection '.mysql_error());
// on crée la requête sql
$sql = "INSERT INTO infos_tbl(id, Enseignant, Salle, Date, Horaire, Numero, Type, Titre, Nouvelle, Remarque) VALUES('','$Enseignant','$Salle','$Date','$Horaire','$Numero', '$Type','$Titre','$Nouvelle','$Remarque')";
// on selectionne les informations à afficher dans le tableau
$result = 'SELECT * FROM infos_tbl';
// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
// on envoie la seconde requete
$req = mysql_query($result) or die('Erreur SQL !'.$req.'<br>'.mysql_error());
// on affiche le titre du tableau pour la page dernière minute
echo '<b>CHANGEMENT(S) DE "DERNIERE MINUTE" DE L HORAIRE DES COURS 2013-2014</b>';
echo '<p></p>';
echo 'Pour ajouter une modification de derniere minute cliquez <a href="http://127.0.0.1/login.html">ici</a>';
echo '<p></p>';
// on affiche les données saisies dans un tableau
echo "<table border cellpadding=15>
<tr>
<th>Enseignant</th>
<th>Salle</th>
<th>Date</th>
<th>Horaire</th>
<th>Numero</th>
<th>Type</th>
<th>Titre</th>
<th>Nouvelle</th>
<th>Remarque</th>
</tr>" ;
while($row = mysql_fetch_array($req, MYSQL_ASSOC))
{
echo "<tr>
<td>".$row['Enseignant'] . "</td>
<td> ". $row['Salle'] . "</td>
<td> ". $row['Date'] . "</td>
<td> ". $row['Horaire'] . "</td>
<td> ". $row['Numero'] . "</td>
<td> ". $row['Type']. "</td>
<td> ". $row['Titre']. "</td>
<td> ". $row['Nouvelle']. "</td>
<td> ". $row['Remarque']. "</td>
</tr>";
}
echo "</table>";
mysql_close();
// on ferme la connexion
}
?>
add.php :
<?php
// On commence par récupérer les champs
if(isset($_POST['Enseignant'])) $Enseignant=trim($_POST['Enseignant']);
else $Enseignant="";
// Tous les champs doivent être remplis
if (strlen($Enseignant)==0) {header('Location:http://127.0.0.1/scdform.html');exit;}
if(isset($_POST['Salle'])) $Salle=trim($_POST['Salle']);
else $Salle="";
if (strlen($Salle)==0) {header('Location:http://127.0.0.1/scdform.html');exit;}
if(isset($_POST['Date'])) $Date=trim($_POST['Date']);
else $Date="";
if (strlen($Date)==0) {header('Location:http://127.0.0.1/scdform.html');exit;}
if(isset($_POST['Horaire'])) $Horaire=trim($_POST['Horaire']);
else $Horaire="";
if (strlen($Horaire)==0) {header('Location:http://127.0.0.1/scdform.html');exit;}
if(isset($_POST['Numero'])) $Numero=trim($_POST['Numero']);
else $Numero="";
if (strlen($Numero)==0) {header('Location:http://127.0.0.1/scdform.html');exit;}
if(isset($_POST['Type'])) $Type=trim($_POST['Type']);
else $Type="";
if (strlen($Type)==0) {header('Location:http://127.0.0.1/scdform.html');exit;}
if(isset($_POST['Titre'])) $Titre=trim($_POST['Titre']);
else $Titre="";
if (strlen($Titre)==0) {header('Location:http://127.0.0.1/scdform.html');exit;}
if(isset($_POST['Nouvelle'])) $Nouvelle=trim($_POST['Nouvelle']);
else $Nouvelle="";
if (strlen($Nouvelle)==0) {header('Location:http://127.0.0.1/scdform.html');exit;}
if(isset($_POST['Remarque'])) $Remarque=trim($_POST['Remarque']);
else $Remarque="";
if (strlen($Remarque)==0) {header('Location:http://127.0.0.1/scdform.html');exit;}
{
// connexion à la base
$db = mysql_connect('localhost', 'root', '') or die('Erreur de connexion '.mysql_error());
// sélection de la base
mysql_select_db('phpmyadmin',$db) or die('Erreur de selection '.mysql_error());
// on crée la requête sql
$sql = "INSERT INTO infos_tbl(id, Enseignant, Salle, Date, Horaire, Numero, Type, Titre, Nouvelle, Remarque) VALUES('','$Enseignant','$Salle','$Date','$Horaire','$Numero', '$Type','$Titre','$Nouvelle','$Remarque')";
// on selectionne les informations à afficher dans le tableau
$result = 'SELECT * FROM infos_tbl';
// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
// on envoie la seconde requete
$req = mysql_query($result) or die('Erreur SQL !'.$req.'<br>'.mysql_error());
// on affiche le titre du tableau pour la page dernière minute
echo '<b>CHANGEMENT(S) DE "DERNIERE MINUTE" DE L HORAIRE DES COURS 2013-2014</b>';
echo '<p></p>';
echo 'Pour ajouter une modification de derniere minute cliquez <a href="http://127.0.0.1/login.html">ici</a>';
echo '<p></p>';
// on affiche les données saisies dans un tableau
echo "<table border cellpadding=15>
<tr>
<th>Enseignant</th>
<th>Salle</th>
<th>Date</th>
<th>Horaire</th>
<th>Numero</th>
<th>Type</th>
<th>Titre</th>
<th>Nouvelle</th>
<th>Remarque</th>
</tr>" ;
while($row = mysql_fetch_array($req, MYSQL_ASSOC))
{
echo "<tr>
<td>".$row['Enseignant'] . "</td>
<td> ". $row['Salle'] . "</td>
<td> ". $row['Date'] . "</td>
<td> ". $row['Horaire'] . "</td>
<td> ". $row['Numero'] . "</td>
<td> ". $row['Type']. "</td>
<td> ". $row['Titre']. "</td>
<td> ". $row['Nouvelle']. "</td>
<td> ". $row['Remarque']. "</td>
</tr>";
}
echo "</table>";
mysql_close();
// on ferme la connexion
}
?>