besoin d'aide
Posté : 04 mars 2014, 00:17
Bonsoir . Je viens vers vous car j'ai besoin d'un petit coup de main . Tout d'abord laissez moi vous informer que je suis plus que débutant dans le language PHP . J'ai donc récupéré un script qui est censé envoyer une requête par FTP pour réécrire sur un fichier . Jusque la tout va bien . Sauf que plutôt que de réécrire sur ce fichier j'ai une erreur qui me dit : Impossible d'ouvrir le fichier distant pour écriture . Et le fichier , a la base avec un CHMOD 777 passe en CHMOD 644 .
J'ai fait plusieurs test avec plusieurs utilisateurs différents , avec le même utilisateur mais rien de mieux .
Voici ce fameux code . Si l'un d'entre vous aurais l’extrême amabilité de regarder si erreur il y a . Ce serait vraiment très sympa
J'ai fait plusieurs test avec plusieurs utilisateurs différents , avec le même utilisateur mais rien de mieux .
Voici ce fameux code . Si l'un d'entre vous aurais l’extrême amabilité de regarder si erreur il y a . Ce serait vraiment très sympa
Un grand merci par avance .<?php
// on recupère les infos de connexion
header('Content-Type: text/html; charset=utf-8');
include_once('bdd.id.php');
function isSteamIdValid($steamId)
{
$re = '^STEAM_[0-1]:[0-1]\d+)^';
if(preg_match($re, $steamId))
{
return(true);
}
else
{
return(false);
}
}
function shortTypeSing ($type) {
if ($type == 'AutoAdmin') {
return "Admin";
} else {
return "VIP";
}
}
function shortTypePlu ($type) {
if ($type == 'AutoAdmin') {
return "Admins";
} else {
return "VIP";
}
}
function paiement ($mode, $idd, $idp_ids) {
if ($mode == "starpass") {
echo "
<div id=\"starpass_".$idd."\"></div><script type=\"text/javascript\" src=\"http://script.starpass.fr/script.php?id ... t>Veuillez activer le Javascript de votre navigateur s'il vous plaît.<br /><a href=\"http://www.starpass.fr/\">Micro Paiement StarPass</a></noscript>
";
} else if ($mode == "allopass") {
echo "
<script type=\"text/javascript\" src=\"https://payment.allopass.com/buy/checko ... "></script>
<noscript>
<a href=\"https://payment.allopass.com/buy/buy.ap ... idd=".$idd."\" style=\"border:0\">
<img src=\"https://payment.allopass.com/static/buy ... 162x56.png\" style=\"border:0\" alt=\"Buy now!\" />
</a>
</noscript>
";
} else {
echo "Erreur dans l'écriture du script";
}
}
function secure ($mode, $idd, $idp_ids) {
if ($mode == "starpass") {
} else if ($mode == "allopass") {
echo "
<noscript>
<meta http-equiv=\"Refresh\" content=\"0;url=https://payment.allopass.com/error.apu? ... idd=".$idd."\">
</noscript>
<script type=\"text/javascript\" src=\"https://payment.allopass.com/api/secure ... "></script>
<script type=\"text/javascript\">
//<![CDATA[
if(typeof loaded == 'undefined') {
window.location.href = 'https://payment.allopass.com/error.apu? ... idd=".$idd."';
}
//]]>
</script>
";
} else {
echo "Erreur dans sécurisation de la page";
}
}
/*
Ajoute un admin dans le fichier distant, en vérifiant qu'il n'y est pas déjà (si il est déjà enregistré, on fait rien);
*/
function addAdmin ($serverIP, $steamID, $host, $user, $pass, $base) {
// on se connecte a MySQL
$db = mysql_connect($host, $user, $pass);
$serverIP = mysql_real_escape_string($serverIP);
$steamID = mysql_real_escape_string($steamID);
mysql_set_charset( 'utf8' );
// on selectione la base
mysql_select_db($base, $db);
$sql = 'SELECT flags, immunity, loginFTP, passFTP, adresseFTP, cheminFTP FROM aa_serveurs, aa_general WHERE ip = \''.$serverIP.'\';';
// on envoie la requette
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$jeu = "";
$flags = "";
$immunity = 0;
$loginFTP = "";
$passFTP = "";
$adresseFTP = "";
$cheminFTP = "";
// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req)) {
// on affiche les informations de l'enregistrement en cours
$jeu = $data['jeu'];
$flags = $data['flags'];
$immunity = $data['immunity'];
$loginFTP = $data['loginFTP'];
$passFTP = $data['passFTP'];
$adresseFTP = $data['adresseFTP'];
$cheminFTP = $data['cheminFTP'];
//"STEAM_0:0:18811335" "99:z"
$chaineAEcrire = "\n\"".$steamID."\" \"".$immunity.":".$flags."\"";
$context = stream_context_create(array('ftp'=>array('overwrite' => true)));
$fileRead = fopen("ftp://".$loginFTP.":".$passFTP."@".$adresseFTP."".$cheminFTP."/addons/sourcemod/configs/admins.cfg", "r", true, $context);
$dejaEcrit = false;
while(!feof($fileRead)) {
$ligne = fgets($fileRead);
if (strpos($ligne, $steamID) !== false) {
$dejaEcrit = true;
}
}
if (!$dejaEcrit) {
//Le steam n'est pas déjà renseigné
$fileWrite = fopen("ftp://".$loginFTP.":".$passFTP."@".$adresseFTP."".$cheminFTP."/addons/sourcemod/configs/admins.cfg", "a", true, $context);
if (!$fileWrite) {
echo "<p>Impossible d'ouvrir le fichier distant pour écriture.\n";
exit;
} else {
/* Ecriture des données. */
fputs ($fileWrite, $chaineAEcrire);
fclose ($fileWrite);
}
}
}
mysql_close();
}
function deleteAdmin ($serverIP, $steamID, $host, $user, $pass, $base) {
// on se connecte a MySQL
$db = mysql_connect($host, $user, $pass);
$serverIP = mysql_real_escape_string($serverIP);
$steamID = mysql_real_escape_string($steamID);
mysql_set_charset( 'utf8' );
// on selectione la base
mysql_select_db($base, $db);
$sql = 'SELECT flags, immunity, loginFTP, passFTP, adresseFTP, cheminFTP FROM aa_serveurs, aa_general WHERE ip = \''.$serverIP.'\';';
// on envoie la requette
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$jeu = "";
$flags = "";
$immunity = 0;
$loginFTP = "";
$passFTP = "";
$adresseFTP = "";
$cheminFTP = "";
// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req)) {
// on affiche les informations de l'enregistrement en cours
$jeu = $data['jeu'];
$flags = $data['flags'];
$immunity = $data['immunity'];
$loginFTP = $data['loginFTP'];
$passFTP = $data['passFTP'];
$adresseFTP = $data['adresseFTP'];
$cheminFTP = $data['cheminFTP'];
//"STEAM_0:0:18811335" "99:z"
$context = stream_context_create(array('ftp'=>array('overwrite' => true)));
$fileRead = fopen("ftp://".$loginFTP.":".$passFTP."@".$adresseFTP."".$cheminFTP."/addons/sourcemod/configs/admins.cfg", "r", true, $context);
$dejaEcrit = false;
$chaineLue = '';
while(!feof($fileRead)) {
$ligne = fgets($fileRead);
if (strpos($ligne, $steamID) !== FALSE) {
//Steam trouvé dans la ligne
} else {
//Steam non trouvé
$dejaEcrit = true;
$chaineLue .= $ligne;
}
}
if ($dejaEcrit) {
//Le steam est renseigné
$fileWrite = fopen("ftp://".$loginFTP.":".$passFTP."@".$adresseFTP."".$cheminFTP."/addons/sourcemod/configs/admins.cfg", "w", true, $context);
if (!$fileWrite) {
echo "<p>Impossible d'ouvrir le fichier distant pour ecriture.\n";
exit;
} else {
/* Ecriture des données. */
fputs ($fileWrite, $chaineLue);
fclose ($fileWrite);
}
}
}
mysql_close();
}
function updateAdmin ($exserverIP, $exsteamID, $serverIP, $steamID, $host, $user, $pass, $base) {
deleteAdmin($exserverIP, $exsteamID, $host, $user, $pass, $base);
addAdmin($serverIP, $steamID, $host, $user, $pass, $base);
}
function checkThisAdmin ($serverIP, $steamID, $host, $user, $pass, $base) {
// on se connecte a MySQL
$db = mysql_connect($host, $user, $pass);
mysql_set_charset( 'utf8' );
// on selectione la base
mysql_select_db($base, $db);
// on crer la requete SQL
$sql = 'SELECT finaltime FROM aa_joueurs WHERE steamid = \''.$steamID.'\' AND ipserveur = \''.$serverIP.'\'';
// on envoie la requette
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req)) {
// on affiche les informations de l'enregistrement en cours
$tempsAdmin = $data['finaltime'];
if ($tempsAdmin < time()) {
deleteAdmin($serverIP, $steamID, $host, $user, $pass, $base);
}
}
}
?>