Bonjour,

je cherche à tester à distance des identifiants MySql envoyés préalablement via un formulaire PHP.

Pour ce faire j'ai penser à créer un fichier PHP contenant un test de connexion SQL et de parser le résultat ensuite.

Mon problème est de déterminer le répertoire Web d'un hébergement ...

Voici un exemple de code plus parlant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
if($_POST) 
{	
	if($_POST['answer'] != '7'){
		$ErrAnswer = '<span class="error">Erreur question anti-spam</span><br />';
		$Err = true;
		}
	if(!$_POST['email'] || !preg_match("/^[^\s]+@[^\s]+\.[^\s]+$/", $_POST['email'])){
		$ErrEmailDns = '<span class="error">Adresse email incorrect.</span><br />';
		$Err = true;
		}
 
	if(!$_POST['domain'] || !preg_match('/^[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}/',$_POST['domain']) || !checkdnsrr($_POST['domain'])){
		$ErrEmailDns .= '<span class="error">Nom de domaine incorrect.</span><br />';
		$Err = true;
		}
 
	if(!$_POST['ftp_host'] || !$_POST['ftp_user'] || !$_POST['ftp_pass']){
		$ErrFtp = '<span class="error">Veuillez renseigner les informations FTP.</span><br />';
		$Err = true;
	}
	else
	{
		# Connect to Ftp
		$conn_id = ftp_connect($_POST['ftp_host']);
		$login_result = ftp_login($conn_id, $_POST['ftp_user'], $_POST['ftp_pass']);
 
		if ((!$conn_id) || (!$login_result)) {
			$ErrFtp = '<span class="error">Information FTP érronée ! Vérifiez vos identifiants.</span><br />';
			$Err = true;
		}
		else
		{			
			if(!$_POST['db_host'] || !$_POST['db_user'] || !$_POST['db_pass'] || !$_POST['db_name']){
				$ErrDb = '<span class="error">Veuillez renseigner les informations de la base de données MySq.</span><br />';
				$Err = true;
			}
			else
			{
				# Create file test Db
				$rep = "test/";
				$file = 'somefile.php';
				$handle = fopen($rep.$file,"w+");	
				if ($handle) {
					fwrite($handle, '<?php'."\r\n");
					fwrite($handle, '$link=mysql_connect("'.$_POST['db_host'].'", "'.$_POST['db_user'].'", "'.$_POST['db_pass'].'");'."\r\n");
					fwrite($handle, 'if (!$link) echo "Not connected";'."\r\n");	
					fwrite($handle, 'else{'."\r\n");
					fwrite($handle, '$db_selected=mysql_select_db("'.$_POST['db_name'].'", $link);'."\r\n");
					fwrite($handle, 'if (!$db_selected) echo "Not selected";'."\r\n");
					fwrite($handle, '}'."\r\n");
					fwrite($handle, 'mysql_close($link);'."\r\n");
					fwrite($handle, '?>'."\r\n");
					fclose($handle);
				}
 
				# Transfert file test Db to Ftp
				ftp_put($conn_id, $file, $rep.$file, FTP_ASCII);
 
				# Close connect Ftp
				ftp_close($conn_id);
 
				# Parse to page test Db
				$homepage = file_get_contents('http://'.str_replace('ftp.','',$_POST['ftp_host']).'/'.$file);
 
				# Check result
				if(preg_match('/Not connected/',$homepage)) {
					$ErrDb = '<span class="error">Votre identifiants, mot de passe, nom de hôte indiqué(s) sont incorrects.</span><br />';
					$Err = true;
				}
				if(preg_match('/Not selected/',$homepage)) {
					$ErrDb .= '<span class="error">Le nom de la base de données est incorrect.</span><br />';
					$Err = true;
				}	
			}
		}
	}
}
Merci pour votre aide

Cordialement