Aller au contenu

Indexation Automatique De Vos Films Avec La Base De Donn


teebo

Messages recommandés

Bien vu DualG4,

Chez moi çà marche impeccable comme çà.

J'te l'ai dit teebo. rien de mieux qu'une vue d'un autre pour déverrouiller la situation...expérience de technicien oblige, je constate que c'est la même chose en progz ! Même si j'avais peu de doutes la dessus !

Bon bah il te reste a trouver pourquoi ces pu*** de caractèes spéciaux ne rentrent pas dans la base SQL et le script sera pret a l'emploi.

Si DualG4 nous dit ou insérer ce bout de code qu'il nous a proposé, je suis preneur !

Lien vers le commentaire
Partager sur d’autres sites

Je viens de finir. Il faut remplacer la function login par les 2 functions suivantes (et ensuite, refaire un chmod 600 /etc/shadow pour re-sécuriser le truc):

function testUserPassword($login, $password, $hostname) {

$urlSyno='https://'.$hostname.'/webman/login.cgi?username='.$login.'&passwd='.$password;

$reponseLogin = file_get_contents($urlSyno);

if (json_decode($reponseLogin)->{'result'} == 'success') {

return TRUE;

}

return FALSE;

}

function login($user,$pass,$cookie){

if (!empty($pass) && testUserPassword($user,$pass,'localhost:8080' )) {

$_SESSION['user'] = $user;

if($cookie == 'on'){

$expire = 365*24*3600;

setcookie('user',$user,time()+$expire);

}

}

else {

echo '<div style="text-align:center;color:red;">Mauvais login/password</div>';

}

}

Par rapport à ma méthode: attention car personnellement, j'utilise le port 8080 pour le DSM, mais par défaut c'est 5000 je crois.

L'idéal serait de stocker ça dans un fichier config ainsi que d'autres trucs comme les variables relatives à mysql (database, login, password).

Et ça marche chez toi??

Car chez moi j'utilise le port 5000 (ou 5001 avec le https) et quand j'entre l'adresse dans le navigateur (http://localhost:500...=xxx&passwd=yyy) j'obtiens bien le résultat result:success et sucess:true mais avec file_get_contents ca ne marche pas, si je fais un echo de $reponseLogin j'obtiens ca :{ "reason" : "error_noprivilege", "result" : "error", "success" : false }

ce n'est pas un problème de mauvais username/passwd sinon il affiche : "reason" : "error_cantlogin", mais ici error_noprivilege semble etre un problème de droit...

Lien vers le commentaire
Partager sur d’autres sites

Bravo pour le tuto il est vraiment nickel !

Par contre je tombe sur un os :(

Lorsque je veux relancer le serveur apache je tombe la dessus:

DiskStation> /usr/syno/etc/rc.d/S97apache-user.sh restart

mv: can't create '/usr/syno/etc/php.ini.17308': Permission denied

mv: can't create '/usr/syno/etc/php.ini.17325': Permission denied

rm: can't remove '/var/spool/php': Permission denied

chmod: /var/spool/php: Operation not permitted

chmod: /var/spool/php/apc: Operation not permitted

chown: /var/services/blog/: Operation not permitted

chown: /var/services/blog/: Operation not permitted

chmod: /var/services/blog/: Operation not permitted

cp: can't create '/usr/syno/apache/conf/httpd.conf': Permission denied

/usr/syno/etc/rc.d/S97apache-user.sh: line 227: can't create /usr/syno/apache/conf/httpd.conf: Permission denied

/usr/syno/etc/rc.d/S97apache-user.sh: line 227: can't create /usr/syno/apache/conf/httpd.conf: Permission denied

/usr/syno/etc/rc.d/S97apache-user.sh: line 227: can't create /usr/syno/apache/conf/extra/httpd-ssl.conf: Permission denied

/usr/syno/etc/rc.d/S97apache-user.sh: line 227: can't create /usr/syno/apache/conf/extra/httpd-ssl.conf: Permission denied

/usr/syno/etc/rc.d/S97apache-user.sh: line 227: can't create /usr/syno/apache/conf/httpd.conf: Permission denied

/usr/syno/etc/rc.d/S97apache-user.sh: line 227: can't create /usr/syno/apache/conf/httpd.conf: Permission denied

/usr/syno/etc/rc.d/S97apache-user.sh: line 227: can't create /usr/syno/etc/php/user-setting.ini.17325: Permission denied

Start User Apache Server .....

Syntax error on line 76 of /usr/syno/apache/conf/extra/httpd-ssl.conf:

SSLCertificateKeyFile: file '/usr/syno/etc/ssl/ssl.key/server.key' does not exist or is empty

/usr/syno/etc/rc.d/S97apache-user.sh: user httpd could not be started

DiskStation>

Quelqu'un sait pourquoi (et si possible comment résoudre le problème) ?

Je sèche :( J'ai déjà du batailler pour arriver a faire un "insert" avec vi (je suis sous mac donc pas de touche insert...)

Pour ceux qui sont dans le même cas c'est simplement la touche "a" ;)

Ne peut on pas également éditer l'open_basedir via les paramètres web dans l'outil de configuration du syno ?

Lien vers le commentaire
Partager sur d’autres sites

Bravo pour le tuto il est vraiment nickel !

Par contre je tombe sur un os :(

Lorsque je veux relancer le serveur apache je tombe la dessus:

DiskStation> /usr/syno/etc/rc.d/S97apache-user.sh restart

mv: can't create '/usr/syno/etc/php.ini.17308': Permission denied

mv: can't create '/usr/syno/etc/php.ini.17325': Permission denied

rm: can't remove '/var/spool/php': Permission denied

chmod: /var/spool/php: Operation not permitted

chmod: /var/spool/php/apc: Operation not permitted

chown: /var/services/blog/: Operation not permitted

chown: /var/services/blog/: Operation not permitted

chmod: /var/services/blog/: Operation not permitted

cp: can't create '/usr/syno/apache/conf/httpd.conf': Permission denied

/usr/syno/etc/rc.d/S97apache-user.sh: line 227: can't create /usr/syno/apache/conf/httpd.conf: Permission denied

/usr/syno/etc/rc.d/S97apache-user.sh: line 227: can't create /usr/syno/apache/conf/httpd.conf: Permission denied

/usr/syno/etc/rc.d/S97apache-user.sh: line 227: can't create /usr/syno/apache/conf/extra/httpd-ssl.conf: Permission denied

/usr/syno/etc/rc.d/S97apache-user.sh: line 227: can't create /usr/syno/apache/conf/extra/httpd-ssl.conf: Permission denied

/usr/syno/etc/rc.d/S97apache-user.sh: line 227: can't create /usr/syno/apache/conf/httpd.conf: Permission denied

/usr/syno/etc/rc.d/S97apache-user.sh: line 227: can't create /usr/syno/apache/conf/httpd.conf: Permission denied

/usr/syno/etc/rc.d/S97apache-user.sh: line 227: can't create /usr/syno/etc/php/user-setting.ini.17325: Permission denied

Start User Apache Server .....

Syntax error on line 76 of /usr/syno/apache/conf/extra/httpd-ssl.conf:

SSLCertificateKeyFile: file '/usr/syno/etc/ssl/ssl.key/server.key' does not exist or is empty

/usr/syno/etc/rc.d/S97apache-user.sh: user httpd could not be started

DiskStation>

Quelqu'un sait pourquoi (et si possible comment résoudre le problème) ?

Je sèche :( J'ai déjà du batailler pour arriver a faire un "insert" avec vi (je suis sous mac donc pas de touche insert...)

Pour ceux qui sont dans le même cas c'est simplement la touche "a" ;)

Ne peut on pas également éditer l'open_basedir via les paramètres web dans l'outil de configuration du syno ?

Effectivement on peut apparemment le modifier depuis l'outils de config du syno, je n'avais pas vu... merci ;)

Concernant le redémarrage d'apache, es-tu bien logguer en root? Car apparemment tu as un problème de droit mais je ne peux pas t'en dire plus ...

Assure toi d'avoir correctement modifier ton open_basedir et au lieu de redémarrer apache manuellement, redémarre le syno depuis le DSM, apache redémarrera aussi ;)

Lien vers le commentaire
Partager sur d’autres sites

De fait j'avais pas fait attention et était connecté via un user :lol:

J'ai ajouté à mon open_basedir ":/volume2/video" (là où elles sont stockées chez moi) mais lorsque j'essaye d'accéder à http:mon-ip/video je n'ai qu'une page blanche :angry:

Désolé si ça se trouve c'est une bêtise mais je ne vois pas ce que j'ai fait de travers, mes liens sont bien symbolique et tout et tout, ton fichier est dézippé dans web/video (directement, pas de dossier "api allocine")

Et voila ce que donne ma config:

<?php

//mot de passe sql (utilisateur root)

$passwordSQL = 'mon mot de passe';

//nom de la base de donnÈes

$bdd = 'Indexation films';

//numÈro du port pour acceder ‡ la config de votre syno

$port_conf_syno = '5000';

//true si l'on veut utiliser le systËme de login, false sinon

$login = true;

//tableau des extensions de vos films

$ext = array("avi", "mkv", "mpg", "mov");

//liste des fichiers/dossiers ‡ ne PAS afficher dans l'arborescence

$hiddenfiles = array(".", "..", "index.php", "index.php~", "index.css", ".htaccess", "Thumbs.db", "@eaDir", "images", "nyroModal");

//mots a effacer du titre des films

$deleteWords = array("avi", "mkv", "mpg", "mov", "dvdrip", "truefrench", "french", "xvid", "divx", "vostfr", "hdtv", "x264", "bluray", "dts", "multi");

?>

Y aurait-il un truc que j'ai fait de travers? Le port pour accéder?

Hmmm une page blanche c'est bizzare, tu as donc bien le fichier index.php fichier sous : volume1/web/video/index.php?

Active l'affichage des erreurs php dans le DSM -> services web -> parametres php ->activer display_errors pour afficher le message d'erreur php

Et réactualise la page...(si tu as tjs une page blanche redémarre le syno, je sais pas s'il prend directement en compte l'affichage des erreurs sans redémarrer apache...)

Lien vers le commentaire
Partager sur d’autres sites

Hmmm une page blanche c'est bizzare, tu as donc bien le fichier index.php fichier sous : volume1/web/video/index.php?

Active l'affichage des erreurs php dans le DSM -> services web -> parametres php ->activer display_errors pour afficher le message d'erreur php

Et r

Lien vers le commentaire
Partager sur d’autres sites

Ok c'est un problème donc comme le dit l'erreur qui vient du fichier config.php à la ligne 5.

la ligne 5 c'est celle-ci si tu as rien changé : $bdd = 'Indexation films';

tu es sur d'avoir bien les deux ' ' ? et le point-virgule à la fin de la ligne? tout comme à la fin de la ligne 3?

Controle bien le problème vient de la, sinon essaie de remplace les apostrophes ' ' par des guillements " "

J'ai trouvé en fait il ne "connait" pas les espaces :D en recréant une base de donnée nommée "Indexation_films" ça fonctionne :lol:

J'ai bien le "login" et "password" Yaaaaaah :D:D:D

Concernant les noms d'utilisateurs et mot de passe pour accéder j'ai une erreur par contre

Warning: file_get_contents(Mon IP�5000�/webman/login.cgi?username=mon utilisateur&passwd=Mon mot de passe): failed to open stream: operation failed in /volume1/web/video/API-allocine.php on line 35

Lien vers le commentaire
Partager sur d’autres sites

J'ai trouvé en fait il ne "connait" pas les espaces :D en recréant une base de donnée nommée "Indexation_films" ça fonctionne :lol:

J'ai bien le "login" et "password" Yaaaaaah :D:D:D

Concernant les noms d'utilisateurs et mot de passe pour accéder j'ai une erreur par contre

Warning: file_get_contents(Mon IP�5000�/webman/login.cgi?username=mon utilisateur&passwd=Mon mot de passe): failed to open stream: operation failed in /volume1/web/video/API-allocine.php on line 35

l'adresse c'est bien : http://tonip:5000/webman/login.cgi?username=xxx&passwd=yyy ?

Et depuis le DSM sous parametres DSM puis service http tu as quoi comme port? as tu coché rediriger automatiquement http vers https?

Lien vers le commentaire
Partager sur d’autres sites

Pas de problèmes ;)

Bon alors je pense que tu as deux possibilités :

1. Tu décoche rediriger http vers https . et dans le fichier config.php tu défini 5000 pour le port.

2. Tu laisse cocher rediriger http vers https dans le fichier config.php tu défini le port à 5001 et à la ligne 33 du fichier API-allocine.php tu remplace http par https.

J'espère que ca va marché...

edit : ou pour faire plus "propre"

tu remplace la fonction login par celle-ci :

function login($user,$pass,$cookie,$port){

if($port=='5001') $http = 'https://';

else $http = 'http://';

$urlSyno=$http.$_SERVER['HTTP_HOST'].':'.$port.'/webman/login.cgi?username='.$user.'&passwd='.$pass;


$reponseLogin = file_get_contents($urlSyno);


if (json_decode($reponseLogin)->{'success'}){

	$_SESSION['user'] = $user;

		if($cookie == 'on'){

		$expire = 365*24*3600;

		setcookie('user',$user,time()+$expire);

		}

}

else echo '<div style="text-align:center;color:red;">Mauvais login/password</div>';

}

Lien vers le commentaire
Partager sur d’autres sites

bon...

Essaie de copier l'adresse présente dans l'erreur php : Warning: file_get_contents(cette adresse)

Et colle la dans ton navigateur, tu obtiens quoi?

normalement ceci devrait être affiché : { "result" : "success", "success" : true }

j'allais oublié : contrôle aussi que l'ip de ton syno n'est pas bloqué dans la liste des blocages, si tu as activé le blocage auto

Lien vers le commentaire
Partager sur d’autres sites

Oui l'ip n'est pas bloquée, j'ai même désactivé dans le doute (et vidé les ip bloquées...)

Lorsque je tape l'adresse, je dois supprimer les points d'interrogations autour de 5001 et ajouter un "s" à http mais j'obtiens:

{ "reason" : "error_cantlogin", "result" : "error", "success" : false }

Les points d'interrogations?? Le problème vient de la, tu ne dois pas avoir de ? autour du numéro du port.

essaie dans le fichier config.php pour la variable port_conf_syno : $port_conf_syno = 5001; et non '5001'.

Et si tu choisis le port 5001, il faut ajouter un s a http à la ligne 33 dans le fichier API-allocine.php

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.