11521 sujets

JavaScript, DOM et API Web HTML5

Bonjour
J'ai un Besoin urgent d'un formulaire avec son traitement dans une base mysql. Je recherche comment avec jquery mobile, on peut envoyer des données d'un formulaire vers mysql.
Pour l'instant j'ai crée un formulaire inscription.php et son traitement dans le fichier my-account.php
Le problème est que j'arrive pas à envoyer les données saisies dans inscription.php dans la base mysql. Aidez-moi, Merci. Voici mes codes :
inscription.php
<!DOCTYPE html> 
<html> 
<head> 
 <meta name=viewport content="user-scalable=no,width=device-width" />
 <link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css" />
<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
 </head> 
 
<body>
   <div data-role="page">
      <div data-role="header" data-theme="b">
         <h1>Inscription</h1>
      </div>
      <div data-role="content">
      <form action="my-account.php" method="post">
<label for="identifiant">Identifiant</label>
<INPUT type="text" name="identifiant" value="<?php if (isset($_POST['identifiant'])) echo htmlentities(trim($_POST['identifiant'])); ?>"><br />
 
<label for="password">Mot de passe:</label>
 <INPUT type="text" name="password" value="<?php if (isset($_POST['password'])) echo htmlentities(trim($_POST['password'])); ?>"><br />
 
 <label for="mail">Adresse Email</label>
 <INPUT type="text" name="mail" value="<?php if (isset($_POST['mail'])) echo htmlentities(trim($_POST['mail'])); ?>"><br />
 
 <INPUT type="submit" name="inscription" value="Inscription"> <br><br>
 
</form>
 
<a href="index.php" data-role="button" data-mini="true" data-inline="true" data-icon="arrow-l" 
data-iconpos="left" data-transition="slide" data-direction="reverse">Accueil</a>
 
<footer data-role="footer" data-theme="b">
   <p class="center"> <a href="pages/cgu.php">Condition générales d'utilisation</a></p>
</footer> 
      </div>
   </div>
</body>
</html>

**********************************
my-account.php
<?php
// on teste si le visiteur a soumis le formulaire
if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') {
	// on teste l'existence de nos variables. On teste également si elles ne sont pas vides
	if ((isset($_POST['identifiant']) && !empty($_POST['identifiant'])) 
	&& (isset($_POST['password']) && !empty($_POST['password'])) 
	&& (isset($_POST['mail']) && !empty($_POST['mail']))) {
 
		$base = mysql_connect ('name_server ', 'user', 'password');
		mysql_select_db ('db_name', $base);
 
		// on recherche si cet identifiant est déjà utilisé par un autre membre
		$sql = 'SELECT count(*) FROM users WHERE username="'.mysql_escape_string($_POST['identifiant']).'"';
		$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
		$data = mysql_fetch_array($req);
 
		if ($data[0] == 0) {
		$sql = 'INSERT INTO users (username, password, email) VALUES("'.mysql_escape_string($_POST['identifiant']).'", "'.
		mysql_escape_string(md5($_POST['password'])).'", "'.
		mysql_escape_string($_POST['mail']).'")';
		$sql = "INSERT INTO users (username, password, email) VALUES ('$identifiant', '$password', '$mail')";
		mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
 
		session_start();
		$_SESSION['identifiant'] = $_POST['identifiant'];
		//header('Location: my_account.php');
		exit();
		}
		else {
		$erreur = 'Un autre membre possède déjà cet identifiant.';
		}
	}
	}
	else {
	$erreur = 'Au moins un des champs est vide.';
	}
?>
 
<!DOCTYPE html> 
<html> 
<head> 
 <meta name=viewport content="user-scalable=no,width=device-width" />
 <link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css" />
<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
 </head> 
 
<body> 
<div data-role=page>
<div data-role="header" data-theme="b">
 <h1>Mon compte</h1>
 </div>
  <div data-role=content>
<ul data-role="listview" data-inset="true" data-filter="true">
    <li><a href="index.php">Recherche</a></li>
    <li><a href="edit-profile.php">Mon Profil</a></li>
    <li><a href="#">Mes CV</a></li>
    <li><a href="#">Emplois sauvegardés</a></li>
    <li><a href="#">Alertes emploi</a></li>
</ul>
 
<a href="index.php" data-role="button" data-mini="true" data-inline="true" data-icon="arrow-l" 
data-iconpos="left" data-transition="slide" data-direction="reverse">Accueil</a>
 
<footer data-role="footer" data-theme="b">
   <p class="center"> <a href="pages/cgu.php">Condition générales d'utilisation</a></p>
</footer> 
</div>
</div>
</body>
</html>
Modérateur
Salut,
Apriori, va falloir regarder du côté de l'Ajax.

Au passage, md5 est à oublier. Smiley cligne Utilise plutôt sha1. Pourquoi ? Le md5 est facilement hacké en php/python/javascript/etc. Smiley cligne
niuxe a écrit :
Au passage, md5 est à oublier. Smiley cligne Utilise plutôt sha1. Pourquoi ? Le md5 est facilement hacké en php/python/javascript/etc.

Aïe, c'est bien ce que je me disais... vive les gravatars.

Hors sujet, je sors...
niuxe a écrit :
Salut,
Au passage, md5 est à oublier. Smiley cligne Utilise plutôt sha1. Pourquoi ? Le md5 est facilement hacké en php/python/javascript/etc. Smiley cligne

Faut dire que même sha1 n'est pas approprié pour hacher des mots de passe. À partir de PHP 5.5, une fonction spéciale a été consacrée à cela, c'est les "password_" (hash, verify...). Elle est basée sur la fonction "crypt" et il existe une manière de l'implémenter sur les versions plus anciennes.
On utilise les "md5" et "sha1" tout de même pour vérifier la correspondance de fichiers lors d'envoi, par exemple.
niuxe a écrit :
Au passage, md5 est à oublier. Smiley cligne Utilise plutôt sha1. Pourquoi ? Le md5 est facilement hacké en php/python/javascript/etc. Smiley cligne

On peut vraiment décoder le MD5, où s'agit-il juste de recherche de correspondance dans des dictionnaire ?
Je n'ai toujours pas de solutions pour envoyer mes données du formulaire dans la bases. Qu'est ce qui cloche, j'ai tout fait !
Modérateur
Zelalsan a écrit :

Faut dire que même sha1 n'est pas approprié pour hacher des mots de passe. À partir de PHP 5.5, une fonction spéciale a été consacrée à cela, c'est les &quot;password_&quot; (hash, verify...). Elle est basée sur la fonction &quot;crypt&quot; et il existe une manière de l'implémenter sur les versions plus anciennes.
On utilise les &quot;md5&quot; et &quot;sha1&quot; tout de même pour vérifier la correspondance de fichiers lors d'envoi, par exemple.

+1

Par extension de cette bonne pratique, on peut très bien vérifier une url pour que cette dernière soit intègre (dans le cas où il n'y a pas de réécriture).

D'ailleurs, j'ai dit une bêtise. Préférer le SHA512 ou autres "hashages" exotiques (tiger family, blowfish, etc.). Smiley cligne Même le SHA1 peut être cracké. L'avantage du SHA1, il me semble qu'il est moins courant mais peut être cracké lui aussi.

Si on est contraint d'un md5, un peu de sel et cette fonction seront utiles : str_rot13().

SolidSnake a écrit :

On peut vraiment décoder le MD5, où s'agit-il juste de recherche de correspondance dans des dictionnaire ?


Es tu passé sur le site que j'ai mis en exemple ? Saisie/colle un md5 dans le formulaire de gauche et regarde ce qu'il te sort. Smiley cligne
Modifié par niuxe (30 Nov 2014 - 13:19)