Bonjours, je n'ai rien branler oui a cause d'une planification d'activité totalement chambouler, et le php n'ai pas mon fort j'ai commencé le projet lundi matin pour devrai, j'ai réussi a lire le nom de mes ville qui sont contenu dans mon fichier XML, ensuite les fonction modifier ajouter et supprimer j'ai essayer celle que j'ai fait ne fonctionne pas, quand j’essaye d'aller récupéré le nom des station sur les XML en ligne la sa plante comme ci sa ne trouver pas le XML, et dans l’après midi j'ai essayer de faire ma page de connexion pour l'administrateur et que des erreurs a chaque fois donc plein de morceau de code a droite a gauche mais quasiment rien qui fonctionne, après le jour j'ai pas toujours du temps j'ai pas que des cours d'informatique, et j'ai plus que ce soir car demain soir j'ai restaurant avec ma classe et mes professeurs, et ces a rendre vendredi donc ... je ne pence pas avoir fini d'ici la, c'est pour cette raison que je me suis permis de demander de l'aide même plus aussi explicitement.
Voici mon code actuel pour la récupération des nom de ville.
Code PHP :
<?php
$fichier_xml = "C:\Users\Guillaume\Desktop\miniprojet\miniprojet.xml";
try
{
if (!file_exists($fichier_xml))
{
die("Le fichier " . $fichier_xml . " n'existe pas.");
}
$doc = new DOMDocument("1.0", "utf-8");
if ($doc->load($fichier_xml) == FALSE)
{
die("Impossible de charger le fichier XML ($fichier_xml)");
}
$liste = $doc->getElementsByTagName("Info");
echo "Il y a " . $liste->length . " Ville dans ce fichier XML<br />";
foreach ($liste as $node)
{
if ($node->hasAttribute('name'))
echo '<li>' . str_replace(array('.', ':'), '', $node->getAttribute('name')) . '</li>';
}
echo '</ul>';
}
catch (Exception $e) {
die($e->getMessage());
}
?>
<?php
$fichier_xml = "C:\Users\Guillaume\Desktop\miniprojet\miniprojet.xml";
try
{
if (!file_exists($fichier_xml))
{
die("Le fichier " . $fichier_xml . " n'existe pas.");
}
$doc = new DOMDocument("1.0", "utf-8");
if ($doc->load($fichier_xml) == FALSE)
{
die("Impossible de charger le fichier XML ($fichier_xml)");
}
$liste = $doc->getElementsByTagName("Info");
echo "Il y a " . $liste->length . " Ville dans ce fichier XML<br />";
?>
<form action="act_select.php" method="post">
<select name="sel" size="4">
<?php
foreach ($liste as $node)
{
if ($node->hasAttribute('name'))
echo '<option value="'.$node->getAttribute('name').'">'.$node->getAttribute('name').'</option>';
}
?>
</select>
<input value="envoi" type="submit">
</form>
<?php
}
catch (Exception $e) {
die($e->getMessage());
}
?>
Voici mon XML:
Code XML :
$xml = <<< XML
<?xml version="1.0" encoding="utf-8" ?>
<Ville>
<Infos>
<Info name="Aix en Provence:" url="http://www.vhello.fr/" lat="43.5262730679307" lng="5.445442199707031"/>
<Info name="Amiens:" url="http://www.velam.amiens.fr/" lat="49.900" lng="2.300"/>
<Info name="Besancon:" url="http://www.velocite.besancon.fr/" lat="45.567" lng="47.250"/>
<Info name="Cergy Pontoise:" url="http://www.velo2.cergypontoise.fr/" lat="49.0368" lng="2.0803"/>
<Info name="Marseille:" url="http://www.levelo-mpm.fr/" lat="43.300" lng="5.367"/>
<Info name="Mulhouse:" url="http://www.velocite.mulhouse.fr/" lat="47.750" lng="7.350"/>
<Info name="Nancy:" url="http://www.velostanlib.fr/" lat="48.700" lng="6.200"/>
<Info name="Nantes:" url="http://www.bicloo.nantesmetropole.fr/" lat="47.233" lng="-1.583"/>
<Info name="Paris:" url="http://www.velib.paris.fr/" lat="48.833" lng="2.333"/>
<Info name="Plaine commune:" url="http://www.velcom.fr/" lat="47.216667" lng="5.133333"/>
<Info name="Rouen:" url="http://cyclic.rouen.fr/" lat="49.433" lng="1.083"/>
<Info name="Toulouse:" url="http://www.velo.toulouse.fr/" lat="43.617" lng="1.450"/>
<Info name="Bruxelles:" url="http://www.villo.be/" lat="50.8333" lng="4.33333"/>
<Info name="Dublin:" url="http://www.dublinbikes.ie/" lat="53.333" lng="-6.250"/>
<Info name="Luxembourg:" url="http://www.veloh.lu/" lat="49.617" lng="6.133"/>
<Info name="Santander:" url="http://www.tusbic.es/" lat="43.467" lng="-3.800"/>
<Info name="Seville:" url="http://www.sevici.es/" lat="37.387" lng="-5.991"/>
</Infos>
<!--Partie d'adresse internet a ajouter a la fin de ladresse internet d'une ville pour avoir accèes au différente station puis au détails des stations-->
<complementsURL>
<complementURL name="carto" ajout="service/carto"/>
<complementURL name="stationdetails" ajout="service/stationdetails/"/>
</complementsURL>
</Ville>
XML;
Voici la page ou je récupère le nom de la ville sélection:
Code PHP :
<?php
$val=$_POST['sel'];
echo "Vous avez choisis: ".$val."<br>";
?>
Mon code pour ma page de saisi de connexion:
Code PHP :
<?php
//On démarre les sessions
session_start();
//Début de la temporisation de sortie
ob_start();
include "header.php";
//On vérifie si l'utilisateur n'est pas déjà connecté
if(!empty($_SESSION['token'])){
echo '<div id="content"><p style="color:red;">Vous êtes déjà connecté !</p></div>';
}
else{
?>
<div id="content">
Vous devez vous connecter pour aller sur la page d'accueil :
<form method="post" action="verif.php">
<p>
<label for="identifiant">Identifiant:</label> <input type="text" name="identifiant" id="identifiant" />
</p>
<p>
<label for="password">Mot de passe :</label> <input type="password" name="password" id="password" />
</p>
<p>
<input type="submit" />
</p>
</form>
</div>
<?php
}
// Arrête la tamporisation de sortie
ob_end_flush();
?>
Ma page de vérification du login et du MDP:
Code PHP :
<?php
//On démarre les sessions
session_start();
//Début de la tamporisation de sortie
ob_start();
include "header.php";
if(isset($_POST['identifiant']) && isset($_POST['password'])){
//Fonction de génération de chaine de caractère
function random($nombre, $maj){
$string = "";
if ($maj == true){
$chaine = "evvIcZhcOwlrLYqiXUEkpwm6eS8ettEO65Jtpi1jY6d9E2R03jQc6cF5J5ok6Hw4U79q4QmHzKf81L1hVbnsohsVE9BMRYOf1UgI";
}
else{
$chaine = "ba7et3pjvyifhf548rhd96peo0qf9xpcdqrrwa3k6y4hryq072u2088qlkl9ju7t3oyp44jww8imwty0gy1mgtka3py2o40kstd9";
}
srand((double)microtime()*1000000);
for($i=0; $i<$nombre; $i++){
$string .= $chaine[rand()%strlen($chaine)];
}
return $string;
}
//Fonction de chiffrage de strings
function chiffre($texte){
$key = 'JhshsyTTSvyF8373';
$iv_size = mcrypt_get_iv_size(MCRYPT_XTEA, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
return base64_encode(mcrypt_encrypt(MCRYPT_XTEA, $key, $texte, MCRYPT_MODE_ECB, $iv));
}
$erreurs_login = array();
if($_POST['password'] != "admin"){
$erreurs_login[] = "Le mot de passe entré n'est pas correct !";
}
if($_POST['identifiant'] != "admin"){
$erreurs_login[] = "L'identifiant entré n'est pas correct !";
}
//Si il n'y a pas d'erreurs...
if(empty($erreurs_login)){
//On génere un token de sécurité via la fonction random ( voir plus haut )
$token = random(32, false);
$_SESSION['token'] = $token;
//On crypte le mot de passe pour le stocker dans le cookie
$password = chiffre('MonMdP');
//On met un cookie d'une durée d'une minute
setCookie('motdepasse', $password, time() + 60, null, null, false, true);
//On enregistre les infos pour conserver un historique des connexions
$handle = fopen('./logs/logs.txt', 'a+');
fputs($handle, "IP : ".$_SERVER['REMOTE_ADDR']."\r\n");
fputs($handle, "Identifiant : ".$_POST['identifiant']."\r\n");
fputs($handle, "TIME : ".time()."\r\n");
fputs($handle, "\r\n");
fputs($handle, "===============\r\n");
fclose($handle);
//On redirige vers la page d'accueil protegée
Header('Location: admin.php');
}
//Sinon, on affiche les erreurs
else{
//On affiche les erreurs, s'il y en a
echo '<div id="content"><p style="color:red;">';
foreach($erreurs_login as $e) {
echo ''.$e.'<br />'."\n";
}
echo '</p>';
echo '<br /><a href="saisie.php">Réessayer ?</a></div>';
}
}
else{
//Si $_POST n'est pas présent, on redirige vers la page de saisie
Header('Location: saisie.php');
}
// Arrête la tamporisation de sortie
ob_end_flush();
?>
Ma page de déconnexion:
Code PHP :
<?php
session_start();
if(isset($_GET['token']) AND $_GET['token'] == $_SESSION['token']){
session_destroy();
setCookie('motdepasse', '');
setCookie('identification', '');
Header('Location: connexion.php');
}
else{
echo "Une erreur est survenue...";
}
?>
Et ma page administration et encore vierge car la connexion de fonctionne pas encore.
Et ma page header que j'utilise.
Code HTML :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>TP8</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" media="screen" type="text/css" title="design" href="./css/style.css" />
</head>
<body>
Ci des personnes peuvent me donner un coup de main pour régler tous les problèmes présent sur tous ce code et m'aider a en faire quelque chose de bien et qui fonctionne je veut bien de l'aide.
Et voici un exemple de code de ma fonction modifier qui ne fonctionne pas nom plus:
Code PHP :
// Ouvrir un document XML
$doc = new DOMDocument;
$doc->loadXML($xml);
// On va par exemple modifier l'url de la ville de PARIS
$xpath = new DOMXPath($doc);
$node_list = $xpath->query('//Info[@name="Paris:"]');
foreach ($node_list as $node) {
$node->setAttribute('url', 'http://google.fr');
}
// On envoie les headers pour le navigateur
header('Content-Type: text/xml');
// On affiche le document
echo $doc->saveXML();
Merci cordialement Guillaume