Petit Problème d'autentification

bonjour à tous,

Je suis débutant en PHP et j’ai récuperer sur le net la sources d’une gestion de signet bien sympa, qui hélas n’est pls tenu par l’auteur.

mais voilà les source ne prévoi pas de connexion sans autentification, alors que j’aimerai que les utilisateur n’est pas à s’autentifier

serai t’il possible de modifier la source pour que la connexion se fasse automatiquement sur le compte “fav”, mot de passe “fav”

Voici la source du fichier index.php

Merci par avance

<?php

/* 
 * This file is part of PHP Bookin
 * Copyright (c) 2005 Patrick Paysant
 *
 * PHP Bookin is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 * 
 * PHP Bookin is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 *
 */

define('DEBUG', false) ;
include_once('utils.php') ;

//----------------------------------------------- display
/**
 * connection au serveur MySQL
 *
 * @param string message d'erreur
 * @url string url de retour
 *
 */
function display($msg='') {
	global $_t ;

	header("X-JSON: ({\"code\":400, \"result\":\"index.php?action=late\"})") ;
	
	$lang = getLang() ;
	//$tplFile = getTpl('index', $lang) ;
  
	$tpl = new clsTinyButStrong() ;
	//$tpl->loadTemplate($tplFile) ;
	$tpl->loadTemplate(SYS_TPL.'/index.tpl') ;
	$tpl->mergeField('index', 
			array('error_msg' => $msg, 
			'self' => $_SERVER['PHP_SELF'],
			'signin' => $_t['signin'],
			'login' => $_t['login'],
			'password' => $_t['password'],
			'send' => $_t['send'])) ;
	$tpl->Show() ;
}

//----------------------------------------------- login
/**
 * vérification des codes d'accès
 *
 */
function login() {
	global $_t ;

	$login = addslashes(htmlspecialchars($_POST['login'])) ;
	$password = addslashes(htmlspecialchars($_POST['passwd'])) ;

	if (trim($login) == '') {
		//display("Veuiller entrer votre identifiant") ;
		display($_t['ask_login']) ;
		exit() ;
	}

	if (trim($password) == '') {
		//display("Veuillez entrer votre mot de passe");
		display($_t['ask_password']);
		exit() ;
	}

	$db = sql_connect() ;

	$sql = "select * from ".DB_TABLE_PREFIX."user where login = '".$login."' and " ;
	$sql .= "password = '".$password."' ;" ;

	$result = sql_query($sql, $db) ;
  
	if ($result->numRows() > 1) { // si plusieurs identifiants possibles ( = probleme !)
    		//display ('La base de donnees est sans doute corrompue. Contacter l\'administrateur') ;
    		display ($_t['corrupted_database']) ;
    		exit() ;
  	} // si aucun identifiant (erreur login)
  	elseif ($result->numRows() <= 0) {
    		//display('Mauvais identifiant ou mauvais mot de passe') ;
    		display($_t['bad_login_password']) ;
    		exit() ;
  	} 
  	else { // sinon un identifiant trouve
    		$row = $result->fetchRow(DB_FETCHMODE_ASSOC) ;
    		$id = $row['id'] ;
		$login = $row['login'] ;

    		// démarrage session
    		session_name(SESSION_NAME) ;
    		session_start() ;

    		$_SESSION['s_id_user'] = $id ;
		$_SESSION['s_login'] = $login ;
    		$_SESSION['s_date_death'] = time() + 3600*12 ; // 12 heures

    		header('Location: bookin.php') ;
  	}
}

$act = $_POST['act'] ;
if ($act == '') { $act = "display" ; }

switch ($act) {
 case 'display' : {
   display() ;
   break ;
 }
 case 'bad' : {
   display($_t['bad_login_password']) ;
   break ;
 }
 case 'late' : {
   display($_t['too_late']) ;
   break ;
 }
 case 'login' : {
   login() ;
   break ;
 }
}

# Local Variables:
# mode: C
# End:

?>

Edité le 13/10/2009 à 15:06

Oui tout à fait. Il te suffit de donner ces identifiants (“fav”/“fav”) à la méthode qui s’occupe de l’authentification.

oui, merci…mais ou et comment

C’est là que le bât blesse, je ne parle pas PHP/Mysql courament :wink:

Quels sont tes connaissances en programmation ?

plutôt script kiddies

j’arrive à utilisé des bout de code piqué à droite et à gauche, mais du coup l’ensemble du code n’est jamais propre parceque fait de brique éparses

et surtout je ne comprend pas forcément tous le code utilisé

disont que j’arrive à peut près a comprendre du code parfaitement documenter
Edité le 13/10/2009 à 22:21

C’est pourtant pas très compliqué.
Soit tu connais les rudiments de la programmation et la syntaxe du PHP et tu peux donc facilement t’y retrouver dans ce script (en le déroulant pas à pas par exemple).
Soit tu es largué et devrait envisager une petit phase de formation au développement à l’aide de livres ou de tutoriels.

Sais-tu au moins comment fonctionne originalement le script ?

bein c’est d’une âme charitable dont j’ai besoin pas de formation, je ne veut pas me devenir développeur

une âme charitable m’aurai dit par exemple de remplacé


$login = addslashes(htmlspecialchars($_POST['login'])) ;
$password = addslashes(htmlspecialchars($_POST['passwd'])) ;
 
par 


if(empty($_POST['login'])) $login = "fav"; else $login = $_POST['login'];
if(empty($_POST['passwd'])) $pass = "fav"; else $pass = $_POST['passwd'];
$login = addslashes(htmlspecialchars($login)) ;
$password = addslashes(htmlspecialchars($pass)) ;

ce qui m’aurai fait gagné 24 heurs et une soirée avec ma chérie

mais merci tt de même

Je n’y peux rien si tu poste sur un forum d’entraide (où l’on préfère aider par l’apprentissage) alors que tu pensais être un forum petites annonces où tu arrives avec une demande et dont tu repars avec la solution qu’un esclave bon samaritain t’aura donné, tout cuit, dans le bec.

D’ailleurs ta solution explicite très bien pourquoi donner du tout fait au lieu d’enseigner est mal : ta solution est “moche”.
Edité le 14/10/2009 à 13:44

Au secour mon fils ce Noye… Faut apprendre à nagé Monsieur…

je ne te permet pas de d’exprimé sur le choix de ma solution, dans la mesure ou tu n’est pas capable de m’aidé. :@

j’aime beaucoup les personne qui se permet de faire de la morale formatrice à deux balles, alors que si on cherche 2 sec on trouve des posts genre

j’espère que le forum ta répondu de faire une formation réseau et matériel :slight_smile:

Sa me fait quant même doucement marré.
Edité le 14/10/2009 à 16:21

Qui t’as dit que je n’en étais pas capable ?!? Je ne prétends pas être un gourou du PHP mais mon niveau m’avait permis de concevoir plusieurs méthodes pour arriver au problème de que tu a(vai)s.
Et tu n’as pas à me donner l’autorisation de m’exprimer : on est sur un Forum public (dont tu ne respecte pas la charte point à la ligne) :wink: