begin process at 2012 05 28 12:02:24
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Débutant(e)

 > 

Aide pour création site d'annonces


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Aide pour création site d'annonces

lundi 29 décembre 2008 à 22:17:17 | Aide pour création site d'annonces

ricfred

Bonjour,

Je suis à la recherche d'aides pour la création de mon site d'annonces. J'ai déjà créé un site internet il y a quelques annnées mais il s'agissait que de HTML.
Cette fois il faut avoir des connaissance en PHP et c'est la que les problèmes se posent.
Je suis novice et donc débutant en PHP. Un ami s'y connait un peu plus que moi mais on galère quand même beaucoup.

Il y aura 2 principaux onglet sur ce site:
Un onglet principal qui sera également "l'accueil" de ce site et qui sera composé d'un mini "moteur de recherche" interne (allant cherché dans une BDD).
Un onglet "formulaire d'inscription d'annonces" qui alimentera la BDD.

Nous rencontrons plusieurs petits problèmes et notament en ce qui concerne la recherche.

Nous voulons que l'utilisateur puisse faire sa recherche en entrant son code postal dans un champ. IL validera ensuite ce code postal et il aura ensuite la liste des communes correspondant à son code postal. Nous avons une BDD des villes avec leurs codes postaux et leurs coordonnées GPS pour la géolocalisation.
Il suffira alors qu'il sélectionne sa ville dans cette liste pour qu'elle puisse être validée comme dans le site suivant : [ Lien ]
L'utilisateur pourra ensuite entrer une valeur kilomètrique de son choix (5kms-20kms-40kms-60kms) pour effectuer une recherche dans un rayon autour de sa ville comme le site suivant : http://www.paruvendu.fr/auto-moto/rech [...] les-occasion/

Pouvez-vous nous aider à créer ce script ?

J'ai trouvé 2 liens qui parlent de la sélection d'une ville par son code postal : http://www.phpcs.com/codes/RECHERCHE-V [...] IS_36429.aspx et http://www.javascriptfr.com/codes/CODE [...] RE_15991.aspx

Je ne sais pas par ou commencé.

J'espère que vous pourrez m'aider.
Je ne préfère pas parler rémunération mais sachez que je récompenserai comme je le pourrai ceux où celui qui pourra vraiment nous aider.

Merci.

Salut et à bientôt !
lundi 29 décembre 2008 à 23:08:59 | Re : Aide pour création site d'annonces

kohntark

Membre Club
Salut,

(je ne fais que passer)
J'ai fait ça en début d'année.
Peux tu poster la structure de ta base ?
Ca te coutera 0 ¤ (mais ce coût risque d'être multiplié par 1000 par la suite )
(... je suis passé)


Kohntark -

lundi 29 décembre 2008 à 23:21:40 | Re : Aide pour création site d'annonces

ricfred

Salut,

La structure de ma base ? Que veux-tu dire ? C'est une base Sql avec nom des villes, codes postaux, codes INSEE, et coordonnées GPS de chaque villes. c'est tout.

Ensuite, j'ai récupèré un script mais il faut que je le réadapte à ma BDD mais je n'y comprends rien du tout.
Quelqu'un peu m'aider à déchiffrer ce script ? Il s'agit du script permettant de saisir une ville avec le code postal, où d'avoir la liste de toutes les villes d'un département si on ne met que les 2 premiers chiffres :

<?php
ob_start ();
?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    <link rel="stylesheet" type="text/css" href="css/maindoc.css" />
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<?php
/**
*includes pour php5
*
*/

require_once 'php5/ocity.cls.php';
require_once 'php5/oajax.cls.php';


/**
*includes pour php4
*
*/
/*
require_once 'php4/ocity.cls.php';
require_once 'php4/oajax.cls.php';
*/

$ville = new ocity ('../villes/data.dat');
$ajax = new oajax;
echo $ajax -> setHeader ();
echo $ajax -> buildAjax ();
echo $ajax -> search ();
echo $ajax -> setFooter ();

$sBuffer = ob_get_clean ();
$bCheck = $ville -> getSearch ();
ob_start ();
?>
</head>
    <body>
    <div id="msg">Attente</div>
<input type="text" name="mySearch" id="mySearch" />
<input type="button" value="Chercher" onclick="search (''+document.getElementById('mySearch').value+'', 0);" style="cursor:pointer;"/>

<div id="divContent">
</div>

</body>
</html>
<?php
$sBuffer .= ob_get_clean ();
if ($bCheck === false) {
    echo $sBuffer;
}
?>

Salut et à bientôt !
mardi 30 décembre 2008 à 09:37:36 | Re : Aide pour création site d'annonces

kohntark

Membre Club
Salut,

Il faudrait avoir les 4 fichiers des require_once pour pouvoir t'aider

Cordialement,


Kohntark -

mardi 30 décembre 2008 à 10:29:07 | Re : Aide pour création site d'annonces

ricfred

Pas de problèmes :

Voici le php4/ocity.cls.php :

<?php
class oajax {

    function setHeader () {
        $sString = <<<HTML
    <script type="text/javascript">
HTML;
        return $sString;
    }

    function setFooter () {
        $sString = <<<HTML
    </script>
HTML;
        return $sString;
    }

    function buildAjax () {
        $sString =<<<HTML

        if (window.XMLHttpRequest) {
            oXmlhttp = new XMLHttpRequest();
        } else if (window.ActiveXObject) {
            oXmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }

HTML;
        return $sString;
        }

    function search () {
        $sString =<<<HTML
function search (sS, bSort) {
    if (sS != '') {
        oXmlhttp.open('POST','{$_SERVER['PHP_SELF']}');
        oXmlhttp.onreadystatechange=function() {
            if (oXmlhttp.readyState==1) {
                document.getElementById ('msg').innerHTML = 'Chargement';
            }
            if (oXmlhttp.readyState==2) {
                document.getElementById ('msg').innerHTML = 'Charg&eacute;';
            }
            if (oXmlhttp.readyState==4 && oXmlhttp.status == 200) {
                document.getElementById ('msg').innerHTML = 'Attente';
                document.getElementById ('divContent').innerHTML = oXmlhttp.responseText;
            }
            if (oXmlhttp.readyState==4 && oXmlhttp.status == 200) {
                document.getElementById ('divContent').innerHTML = oXmlhttp.responseText;
            }
        }
        oXmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        var data = 'data='+sS+'&sort='+bSort;
        oXmlhttp.send (data);
    }
}

HTML;
    return $sString;
    }
}
?>


et le php4/oajax.cls.php

<?php
function array_intersect_key($arr1, $arr2) {
   $res = array();
   foreach($arr1 as $key=>$value) {
       $push = true;
       for ($i = 1; $i < func_num_args(); $i++) {
           $actArray = func_get_arg($i);
           if (gettype($actArray) != 'array') return false;
           if (!array_key_exists($key, $actArray)) $push = false;
       }
       if ($push) $res[$key] = $arr1[$key];
   }
   return $res;
}

function array_combine($a, $b) {
   $c = array();
   if (is_array($a) && is_array($b))
       while (list(, $va) = each($a))
           if (list(, $vb) = each($b))
               $c[$va] = $vb;
           else
               break 1;
   return $c;
}

class ocity {
    /**
    * private array aVilles : data array
    */
    var $aVilles = array ();
    var $aCP = array ();

    /**
    * public static string sResult : string used to store the result of the query
    */
    var $sResult = '';

    /**
    * public static string sSearch : string used to store the query
    */
    var $sSearch = '';

    /**
    * public function __construct
    * constructor
    * @Param string dataFile : data filename.
    */
    function ocity ($dataFile = 'data.dat') {
        $sVilles = file_get_contents ($dataFile);
        $aLines =explode ("\r", $sVilles);
        $aLines = file ($dataFile);
        foreach ($aLines as $line) {
            $aWord = explode (';', $line);
            $this -> aVilles[] = $aWord[1];
            $this -> aCP[] = $aWord[0];
        }
    }

    /**
    * callback public static function getFirst
    * returns an array with the results of the query
    * @Returns array
    */
    function getFirst ($val) {
        return (substr ($val, 0, strlen ($this -> sSearch)) === $this -> sSearch);
    }

    /**
    * public function getSearch
    * returns the string result, called by the xmlhttp method
    * @Returns string sResult
    */
    function getSearch () {
        if (isset ($_POST['data']) && '' !== trim ($_POST['data'])) {
            $this -> sSearch = strtolower ($_POST['data']);
            if ($this -> sSearch === '*') {
                $aTmpCP = $this -> aCP;
                $aTmpVilles = $this -> aVilles;
                if (isset ($_POST['sort']) && in_array ($_POST['sort'], array ('0', '2'))) {
                    array_multisort ($aTmpVilles, $aTmpCP);
                } else {
                    array_multisort ($aTmpCP, $aTmpVilles);
                }
            }
            elseif (is_numeric ($this -> sSearch)) {
                $aTmpCP = array_filter ($this -> aCP, array ($this, 'getFirst'));
                $aTmpVilles = array_intersect_key ($this -> aVilles, $aTmpCP);
                if (isset ($_POST['sort']) && in_array ($_POST['sort'], array ('0', '1'))) {
                    array_multisort ($aTmpCP, $aTmpVilles);
                } else {
                    array_multisort ($aTmpVilles, $aTmpCP);
                }
            } else {
                $aTmpVilles = array_filter ($this -> aVilles, array ($this, 'getFirst'));
                $aTmpCP = array_intersect_key ($this -> aCP, $aTmpVilles);
                if (isset ($_POST['sort']) && in_array ($_POST['sort'], array ('0', '2'))) {
                    array_multisort ($aTmpVilles, $aTmpCP);
                } else {
                    array_multisort ($aTmpCP, $aTmpVilles);
                }
            }
            $iCpt = 0;
            $this -> sResult .= '<div style="border: 1px solid #000000;width: 250px;background-color: #ffffff;"><span title="Trier par code postal" onclick="search (\''.$this -> sSearch.'\',1);" style="cursor: pointer; margin: 5px;font-weight: bold;text-align: left;width: 100px;">Code </span><span title="Trier par ville" onclick="search (\''.$this -> sSearch.'\',2);" style="width: 150px;cursor: pointer; margin: 5px;font-weight: bold; text-align: right;">Ville</span></div>';
            foreach ($aTmp as $cp => $ville) {
                $sColor = ($iCpt%2 === 0)?'background-color: #cccccc;':'background-color: #ffffff;';
                $this -> sResult .= '<div style="border: 1px solid #000000;width: 250px;'.$sColor.'"><span onclick="document.getElementById(\'mySearch\').value = this.innerHTML;" style="cursor: pointer; margin: 5px;'.$sColor.'">'.$cp.'</span><span onclick="document.getElementById(\'mySearch\').value = this.innerHTML;" style="cursor: pointer; margin: 5px;'.$sColor.'">'.$ville.'</span></div>';
                $iCpt ++;
            }
            echo $this -> sResult;
        } else {
            return false;
        }
    }
}
?>



Puis le php5/ocity.cls.php

<?php
class oajax {

    public function setHeader () {
        $sString = <<<HTML
    <script type="text/javascript">
HTML;
        return $sString;
    }

    public function setFooter () {
        $sString = <<<HTML
    </script>
HTML;
        return $sString;
    }

    public function buildAjax () {
        $sString =<<<HTML

        if (window.XMLHttpRequest) {
            oXmlhttp = new XMLHttpRequest();
        } else if (window.ActiveXObject) {
            oXmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }

HTML;
        return $sString;
        }

    public function search () {
        $sString =<<<HTML
function search (sS, bSort) {
    if (sS != '') {
        oXmlhttp.open('POST','{$_SERVER['PHP_SELF']}');
        oXmlhttp.onreadystatechange=function() {
            if (oXmlhttp.readyState==1) {
                document.getElementById ('msg').innerHTML = 'Chargement';
            }
            if (oXmlhttp.readyState==2) {
                document.getElementById ('msg').innerHTML = 'Charg&eacute;';
            }
            if (oXmlhttp.readyState==4 && oXmlhttp.status == 200) {
                document.getElementById ('msg').innerHTML = 'Attente';
                document.getElementById ('divContent').innerHTML = oXmlhttp.responseText;
            }
        }
        oXmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        var data = 'data='+sS+'&sort='+bSort;
        oXmlhttp.send (data);
    }
}

HTML;
    return $sString;
    }
}
?>



et le php5/oajax.cls.php

<?php
class ocity {
    /**
    * private array aVilles : data array
    */
    private $aVilles = array ();
    private $aCP = array ();
    /**
    * public static string sResult : string used to store the result of the query
    */
    private $sResult = '';

    /**
    * public static string sSearch : string used to store the query
    */
    private static $sSearch = '';

    /**
    * public function __construct
    * constructor
    * @Param string dataFile : data filename.
    */
    public function __construct ($dataFile = 'data.dat') {
        $sVilles = file_get_contents ($dataFile);
        $aLines =explode ("\r", $sVilles);
        $aLines = file ($dataFile);
        foreach ($aLines as $line) {
            $aWord = explode (';', $line);
            $this -> aVilles[] = $aWord[1];
            $this -> aCP[] = $aWord[0];
        }
    }

    /**
    * callback public static function getFirst
    * returns an array with the results of the query
    * @Returns array
    */
    private static function getFirst ($val) {
        return (substr ($val, 0, strlen (self::$sSearch)) === self::$sSearch);
    }

    /**
    * public function getSearch
    * returns the string result, called by the xmlhttp method
    * @Returns string sResult
    */
    public function getSearch () {
        if (isset ($_POST['data']) && '' !== trim ($_POST['data'])) {
            self::$sSearch = strtolower ($_POST['data']);
            if (self::$sSearch === '*') {
                $aTmpCP = $this -> aCP;
                $aTmpVilles = $this -> aVilles;
                if (isset ($_POST['sort']) && in_array ($_POST['sort'], array ('0', '2'))) {
                    array_multisort ($aTmpVilles, $aTmpCP);
                } else {
                    array_multisort ($aTmpCP, $aTmpVilles);
                }
            }
            elseif (is_numeric (self::$sSearch)) {
                $aTmpCP = array_filter ($this -> aCP, array ('self', 'getFirst'));
                $aTmpVilles = array_intersect_key ($this -> aVilles, $aTmpCP);
                if (isset ($_POST['sort']) && in_array ($_POST['sort'], array ('0', '1'))) {
                    array_multisort ($aTmpCP, $aTmpVilles);
                } else {
                    array_multisort ($aTmpVilles, $aTmpCP);
                }
            } else {
                $aTmpVilles = array_filter ($this -> aVilles, array ('self', 'getFirst'));
                $aTmpCP = array_intersect_key ($this -> aCP, $aTmpVilles);
                if (isset ($_POST['sort']) && in_array ($_POST['sort'], array ('0', '2'))) {
                    array_multisort ($aTmpVilles, $aTmpCP);
                } else {
                    array_multisort ($aTmpCP, $aTmpVilles);
                }
            }
            $iCpt = 0;
            $this -> sResult .= '<div style="border: 1px solid #000000;width: 250px;background-color: #ffffff;"><span title="Trier par code postal" onclick="search (\''.self::$sSearch.'\',1);" style="cursor: pointer; margin: 5px;font-weight: bold;text-align: left;width: 100px;">Code </span><span title="Trier par ville" onclick="search (\''.self::$sSearch.'\',2);" style="width: 150px;cursor: pointer; margin: 5px;font-weight: bold; text-align: right;">Ville</span></div>';
            foreach ($aTmpCP as $clef => $cp) {
                $sColor = ($iCpt%2 === 0)?'background-color: #cccccc;':'background-color: #ffffff;';
                $this -> sResult .= '<div style="border: 1px solid #000000;width: 250px;'.$sColor.'"><span onclick="document.getElementById(\'mySearch\').value = this.innerHTML;" style="cursor: pointer; margin: 5px;'.$sColor.'">'.$cp.'</span><span onclick="document.getElementById(\'mySearch\').value = this.innerHTML;" style="cursor: pointer; margin: 5px;'.$sColor.'">'.$aTmpVilles[$clef].'</span></div>';
                $iCpt ++;
            }
            echo $this -> sResult;
        } else {
            return false;
        }
    }
}
?>


J'espère que cela pourra vous aider.
Voyez-vous des choses inutiles ?
Des choses à améliorer ?

Merci.

Salut et à bientôt !
mardi 30 décembre 2008 à 11:06:06 | Re : Aide pour création site d'annonces

mike1310

Kohntark à dit : Salut,
(je ne fais que passer)
J'ai fait ça en début d'année.
Peux tu poster la structure de ta base ?
Ca te coutera 0 ¤ (mais ce coût risque d'être multiplié par 1000 par la suite )
(... je suis passé)
Kohntark -




0¤ x 1000 = 0¤ donc c'est tout bon pour lui
mercredi 31 décembre 2008 à 11:28:54 | Re : Aide pour création site d'annonces

kohntark

Membre Club
Salut,

Ton projet est intéressant, le problème est, je cite : "mais je n'y comprends rien du tout."
Résultat : tu n'es peut être pas à la bonne adresse, ce n'est pas un forum qui saura répondre à tes attentes, car nous sommes ici pour tenter de trouver des solutions à des problèmes précis, pas pour faire des scripts ou sites "tout cuit". Loin de moi l'idée de "t'envoyer sur les roses", mais ce que tu demandes nécessite plusieurs heures de travail et n'est pas gérable en ces lieux.

A mon humble petit avis :
- fais appel à un développeur
- ou plonge les mains dans le cambouis et fais nous part de tes difficultés (là tu auras des réponses)

A première vue la classe que tu souhaites utiliser ne gère pas la géolocalisation (je n'ai pas bien regardé, mais je ne vois aucun calcul là dessus)

@mike1310 : c'était bien ce que je voulais dire


Cordialement,


Kohntark-




Kohntark -



Cette discussion est classée dans : site, code, recherche, annonces, postal


Répondre à ce message

Sujets en rapport avec ce message

probleme creation site web [ par hadesD ] Bonjour, je suis en train de concevoir mon site web après avoir suivi plusieurs cours sur le xhtml et le php et je me confronte a diffèrent problème s site 2 rencontres 2 sportifs [ par liam11 ] [size=200]bonjours tt le monde j'ai 1 travail à faire ki consiste en la création d 1 site web en php pr des rencontres de sportifs. j ai essayé 1 cod probleme memory_limit sur mon site [ par goks ] bonjour, depuis quelque jours, j'ai ce message qui apparait alors que je n'ai pas fait de modification et que tout fonctionnais depuis plus d'un an : [PHP]Blind Test [ par mrmickey ] Bonjour, Je souhaite réaliser un blind test sur mon site. Néanmoins, je ne m'y connais pas assez pour créer les codes de A à Z. J'ai donc chercher su Blind Test [ par mrmickey ] Bonjour, [i]* Désolé pour le copier/coller du post, mais on m'a dit que j'aurai plus de réponse ici*[/i] Je souhaite réaliser un blind test sur mon code pour recherche intuitive [ par tif27940 ] Bonjour, j'ai un champ de recherche pour un nom ou un prénom et j'aimerai que lorsque un utilisateur commence a écrire un nom ou prénom des suggesti besoin d'un code html ou php pour mon site [ par hitchbal ] Bonjour à tous, désolé de vous déranger mais j'ai besoin d'un code pour mon site web. En effet j'aimerais que lorsque quelqu'un rempli un formulaire Intégrer du php dans ce code. [ par flechefleche ] Bonsoir, Je voudrais enfaite intégrer ce code (script de news) : [code=php]include("monsite/htdocs/news/show_news.php");[/code] dans ce code (c'est formulaire dynamique php ,sqlserver [ par hantouva ] bonjour; voila je fais un site web dynamique en php et jutilise une base de donnees sql server je bloque au niveau du formulaire de recherche qui do


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,530 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales