MalexR Posted June 24, 2014 Share Posted June 24, 2014 Bonjour, j'essaye d'aider un ami à remettre sa boutique en ligne suite au mauvais coup d'un prestataire indélicat, tout va bien jusqu'ici, j'ai même pu mettre à jour de la version 1.4 à la dernière 1.5 et tout est en ordre y compris le thème mais j'ai un soucis avec un script PHP qui ne fonctionne plus, quelqu'un aurait t-il une idée ? Cela semble être un problème de version mais je sèche ... La liste déroulante fait appel aux produits sélectionnés, je confirme que cela fonctionne dans la version 1.4.8.2, l'erreur renvoyée est "No database selected" pourtant le reste du site s'affiche, menus, modules etc.. Le code : <?php $useSSL = true; include(dirname(__FILE__).'/config/config.inc.php'); include(dirname(__FILE__).'/header.php'); $errors = array(); ?> <script type="text/javascript" language="javascript"> function twAller(_url,_cadre,_target) { if (_cadre) { parent._cadre.location.href = _url; } else if (_target) { _target = window.open(_url,_target); } else { window.location.href = _url; } } //--> </script> <?php extract($_GET); extract($_POST); // on check que tous est bien rempli if(isset($valider) && $valider == 'valider' && !empty($nom) && !empty($prenom) && !empty($adresse) && !empty($cp) && !empty($ville) && filter_var($email, FILTER_VALIDATE_EMAIL)) { //$to : MAIL DESTINATAIRE DU FORMULAIRE DE CONTACT $to = '[email protected]'; //$subject : CONTIENT LE SUJET DU MAIL $subject = 'Essai'; //$no_reply : CONTIENT L ADRESSE MAIL DE L ENVOYEUR DU MAIL $no_reply = '[email protected]'; $id_product = $_GET['id_product']; $req_nom_product = "SELECT name FROM ps_product_lang WHERE id_product = '$id_product'"; $res_nom_product = mysql_query($req_nom_product) or die(mysql_error()); $row_nom_product = mysql_fetch_object($res_nom_product); if(!empty($dim_cable)) { $dim_cable = "<u><b>Longueur du cable</b></u> : ".$dim_cable."<br />"; } if(!empty($eclairage)) { $eclairage = "<u><b>Eclairage</b></u> : ".$eclairage."<br />"; } if(!empty($tissus)) { $tissus = "<u><b>Tissus</b></u> : ".$tissus."<br />"; } if(!empty($vernis)) { $vernis = "<u><b>Vernis</b></u> : ".$vernis."<br />"; } if(!empty($hauteur) || !empty($largeur) || !empty($profondeur) || !empty($longueur)) { $dimension = "<br />Dimensions :<br />"; } if(!empty($hauteur)) { $hauteur = "<u><b>Hauteur</b></u> : ".$hauteur."<br />"; } if(!empty($largeur)) { $largeur = "<u><b>Largeur</b></u> : ".$largeur."<br />"; } if(!empty($profondeur)) { $profondeur = "<u><b>Profondeur</b></u> : ".$profondeur."<br />"; } if(!empty($longueur)) { $longueur = "<u><b>Longueur</b></u> : ".$longueur."<br />"; } if(!empty($installation)) { $installation = "<br /><u><b>Installation</b></u> : ".$installation."<br />"; } if(!empty($commentaire)) { $commentaire = "<u><b>Commentaire</b></u> : ".$commentaire."<br />"; } //$message : CONTIENT LE MESSAGE DU MAIL $message = " Affichage du contact :<br /><br /> Nom : $nom<br /> Prénom : $prenom<br /> Adresse : $adresse<br /> CP : $cp<br /> Ville : $ville<br /> Email : $email<br /> Tél. : $tel<br /><br /><br /> Affichage des variables récupérées :<br /><br /> <b><u>Nom du produit</u></b> : $row_nom_product->name<br /><br /> $dim_cable $eclairage $tissus $vernis $dimension $hauteur $largeur $profondeur $longueur $installation $commentaire"; $headers ='From: '. $_POST ."\n"; $headers .='Reply-To: [email protected]'."\n"; $headers .='Content-Type: text/html; charset="utf-8"'."\n"; $headers .='Content-Transfer-Encoding: 8bit'; mail($to, $subject, $message, $headers); //MESSAGE AFFICHE LORSQUE LE FORMULAIRE A ETE ENVOYE ?> <p><br /> <br /> Le message a bien été envoyé.<br /> <br /> Nous le traiterons dans les meilleurs délais.<br /> <br /> Toute l'équipe de test"<b>Test</b>"</a> vous remercie. </p> <br /> <?php } else {?> <form name="envoyer" method="post" action=""> <p style="padding-left:30px"><u><b>Commander votre article Art du Bois personnalisé et fait sur-mesure :</b></u></p><br /> <?php if(isset($valider)) {?> <p style="padding-left:30px; color:#F00"><u><b>Merci de vérifier les champs en rouge</b></u></p><br /><br /> <?php } ?> <table width="100%" border="0" cellspacing="10" cellpadding="10"> <tr> <td style="padding-left:30px" colspan="2" height="50px"> Choix du produit :<br> <select style="width:400px" name="product" onChange="sel = this.options[this.selectedIndex].value; if (sel) { twAller(sel,'','') }"> <?php if(isset($id_product)) { $id_product = $_GET['id_product']; $req_nom_product = "SELECT name FROM ps_product_lang WHERE id_product = '$id_product' AND id_lang = '2'"; $res_nom_product = mysql_query($req_nom_product) or die(mysql_error()); $row_nom_product = mysql_fetch_object($res_nom_product); $vowels = array(", avec fond tissus blanc", ", fond blanc", "avec fond tissus blanc", "toile blanche", "fond blanc"); $onlyconsonants = str_replace($vowels, "", $row_nom_product->name); echo "<option>".$onlyconsonants."</option>"; } $req_product = "SELECT a.name, a.id_product, b.id_category, b.id_product FROM ps_product_lang a INNER JOIN ps_category_product b ON a.id_product = b.id_product WHERE a.id_lang = '2' AND (id_category = 18 OR id_category = 21 OR id_category = 22 OR id_category = 23) AND (b.id_product != 232 AND b.id_product != 234 AND b.id_product != 238 AND b.id_product != 242 AND b.id_product != 229) ORDER by name"; $res_product = mysql_query($req_product) or die(mysql_error()); echo "<option></option>"; while($row_product = mysql_fetch_object($res_product)) { $vowels = array(", avec fond tissus blanc", ", fond blanc", "avec fond tissus blanc", "toile blanche", "fond blanc"); $onlyconsonants = str_replace($vowels, "", $row_product->name); ?> <option value="surmesure_artenbois.php?id_product=<?php echo $row_product->id_product?>"><?php echo $onlyconsonants?></option> <?php } ?> </select><br /><br /><br /> </td> </tr> <?php if(isset($id_product) && ($id_product != 222 && $id_product != 229 && $id_product != 240 && $id_product != 236 && $id_product != 239 && $id_product != 227 && $id_product != 235 && $id_product != 230 && $id_product != 231 && $id_product != 223 && $id_product != 225 && $id_product != 224 && $id_product != 268)) { ?> <tr> <td style="padding-left:30px" height="50px"> Choisissez la longueur du câble :<br> <select style="width:150px" name="dim_cable"> <?php if(isset($_POST['dim_cable'])) {?><option><?php echo $_POST['dim_cable']?></option><?php }?> <option></option> <option>sans</option> <option>3m</option> <option>6m</option> <option>10m</option> </select> </td> <td> Choisissez votre éclairage :<br> <select style="width:150px" name="eclairage"> <?php if(isset($_POST['eclairage'])) {?><option><?php echo $_POST['eclairage']?></option><?php }?> <option></option> <option>monochrome</option> <option>trichrome</option> </select> </td> </tr> <?php } if(isset($id_product)) {?> <tr> <?php //si c'est la tableau ecritoire if($id_product != 222 && $id_product != 224 && $id_product != 225 && $id_product != 223) {?> <td style="padding-left:30px"> Choisissez la teinte du tissus :<br> <select style="width:150px" name="tissus"> <?php if(isset($_POST['tissus'])) {?><option><?php echo $_POST['tissus']?></option><?php }?> <option></option> <option>blanc</option> <option>rouge</option> <option>vert</option> <option>jaune</option> <option>bleu</option> <option>bordeaux</option> </select><br /><br /><br /> </td> <?php }?> <td <?php if($id_product == 222 || $id_product == 224 || $id_product == 225 || $id_product == 223) {?> style="padding-left:30px"<?php }?>> Choisissez la teinte du vernis :<br> <select style="width:150px" name="vernis"> <?php if(isset($_POST['vernis'])) {?><option><?php echo $_POST['vernis']?></option><?php }?> <option></option> <option>blanc</option> <option>noir</option> <option>sable</option> <option>gris</option> <option>chêne clair</option> <option>chêne moyen</option> <option>chêne foncé</option> <option>teck</option> <option>noyer</option> <option>brou de noie</option> <option>pin</option> </select><br /><br /> </td> </tr> <tr> <td style="padding-left:30px"> <table border="0" cellspacing="10" cellpadding="10"> <tr> <td colspan="4" height="30px" nowrap="nowrap">Dimensions (en centimètre)</td> </tr> <tr> <td height="20px">Hauteur : </td> <td><input type="text" name="hauteur" size="10" value="<?php if(isset($hauteur)) { echo $hauteur; }?>" onFocus="javascript:this.value=''" /></td> </tr> <tr> <td height="20px">Largeur : </td> <td><input type="text" name="largeur" size="10" value="<?php if(isset($largeur)) { echo $largeur; }?>" onFocus="javascript:this.value=''"/></td> </tr> <tr> <td height="20px">Profondeur : </td> <td><input type="text" name="profondeur" size="10" value="<?php if(isset($profondeur)) { echo $profondeur; }?>" onFocus="javascript:this.value=''"/></td> </tr> <tr> <td height="20px">Longueur : </td> <td><input type="text" name="longueur" size="10" value="<?php if(isset($longueur)) { echo $longueur; }?>" onFocus="javascript:this.value=''"/><br /><br /><br /></td> </tr> </table> </td> <td> Commentaires :<br /> <textarea rows="5" cols="32" name="commentaire"><?php if(isset($commentaire)) { echo $commentaire; }?></textarea> </td> </tr> <tr> <td style="padding-left:30px"> Voulez vous faire l'installation vous même :<br> <select style="width:150px" name="installation"> <?php if(isset($_POST['installation'])) {?><option><?php echo $_POST['installation']?></option><?php }?> <option></option> <option>oui</option> <option>non</option> </select> </td> <td> Fichier joint :<br /> <input type="file" name="fichier" /> </td> </tr> <?php } ?> <?php if(isset($id_product)) { //recuperation des données du client deja loggué if(isset($cookie->id_customer)) { $req_id = "select a.firstname, a.lastname, a.email, b.address1, b.phone, b.phone_mobile, b.postcode, b.city FROM ps_customer a INNER JOIN ps_address b ON a.id_customer = b.id_customer WHERE a.id_customer = '$cookie->id_customer'"; $res_id = mysql_query($req_id) or die(mysql_error()); $row_id = mysql_fetch_object($res_id); if(empty($row_id->phone) && !empty($row_id->phone_mobile)) { $row_id->phone = $row_id->phone_mobile; } } ?> <tr> <td style="padding-left:30px" colspan="2"> <br /><br /> <table width="50%" border="0" cellspacing="10" cellpadding="10"> <tr> <td colspan="4" height="30px"><u>Coordonnées</u></td> </tr> <tr> <td height="20px"><?php if(isset($valider) && empty($nom)) {?><font color="#FF0000"><b>Nom : </b></font><?php } else {?>Nom<span style="color:#F00">*</span> : <?php } ?></td> <td><input name="nom" size="40" type="text" value="<?php if(isset($row_id->lastname)) { $nom = $row_id->lastname; echo $nom; } else {if(isset($nom)) { echo $nom; } }?>" onFocus="javascript:this.value=''"></td> </tr> <tr> <td height="20px"><?php if(isset($valider) && empty($prenom)) {?><font color="#FF0000"><b>Prénom : </b></font><?php } else {?>Prénom<span style="color:#F00">*</span> : <?php } ?></td> <td><input name="prenom" size="40" type="text" value="<?php if(isset($row_id->firstname)) { $prenom = $row_id->firstname; echo $prenom; } else {if(isset($prenom)) { echo $prenom; } }?>" onFocus="javascript:this.value=''"></td> </tr> <tr> <td height="20px"><?php if(isset($valider) && empty($adresse)) {?><font color="#FF0000"><b>Adresse : </b></font><?php } else {?>Adresse<span style="color:#F00">*</span> : <?php } ?></td> <td><input name="adresse" size="40" type="text" value="<?php if(isset($row_id->address1)) { $address = $row_id->address1; echo $address; } else {if(isset($adresse)) { echo $adresse; } }?>" onFocus="javascript:this.value=''"></td> </tr> <tr> <td height="20px"><?php if(isset($valider) && empty($cp)) {?><font color="#FF0000"><b>Code postal : </b></font><?php } else {?>Code postal<span style="color:#F00">*</span> : <?php } ?></td> <td><input name="cp" size="40" type="text" value="<?php if(isset($row_id->postcode)) { $postcode = $row_id->postcode; echo $postcode; } else {if(isset($cp)) { echo $cp; } }?>" onFocus="javascript:this.value=''"></td> </tr> <tr> <td height="20px"><?php if(isset($valider) && empty($ville)) {?><font color="#FF0000"><b>Ville : </b></font><?php } else {?>Ville<span style="color:#F00">*</span> : <?php } ?></td> <td><input name="ville" size="40" type="text" value="<?php if(isset($row_id->city)) { $city = $row_id->city; echo $city; } else {if(isset($ville)) { echo $ville; } }?>" onFocus="javascript:this.value=''"></td> </tr> <tr> <td height="20px"><?php if(isset($valider) && !filter_var($email, FILTER_VALIDATE_EMAIL)) {?><font color="#FF0000"><b>Email : </b></font><?php } else {?>Email<span style="color:#F00">*</span> : <?php } ?></td> <td><input name="email" size="40" type="text" value="<?php if(isset($row_id->email)) { $email = $row_id->email; echo $email; } else {if(isset($email)) { echo $email; } }?>" onFocus="javascript:this.value=''"></td> </tr> <tr> <td height="20px">Tél. : </td> <td><input type="text" name="tel" size="40" value="<?php if(isset($row_id->phone)) { $phone = $row_id->phone; echo $phone; } else {if(isset($tel)) { echo $tel; } }?>" onFocus="javascript:this.value=''" /></td> </tr> </table> </td> </tr> <tr> <td style="padding-left:30px"> <br /><br /> <p class="submit"> <input type="submit" name="submitMessage" id="submitMessage" value="Envoyer" class="button_large" /><input type="hidden" name="valider" value="valider" /> </p> </td> <td> </td> </tr> <?php }?> </table> </form> <?php } ?> <?php //$smarty->display(_PS_THEME_DIR_.'/surmesure_creafish.tpl'); include(dirname(__FILE__).'/footer.php'); ?> Merci de votre aide Link to comment Share on other sites More sharing options...
MalexR Posted June 24, 2014 Author Share Posted June 24, 2014 Je précise qu'en local le message est "no database selected" et en ligne : "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)" Link to comment Share on other sites More sharing options...
herve25 Posted June 24, 2014 Share Posted June 24, 2014 Bonjour, Le message d'erreur me semble clair "no database selected".Dans ce script vous utilisez des commandes du type mysql_query, cependant je ne vois aucun code mysql_connect ou mysql_select_db pour se connecter à la base et la sélectionner.Sont-t-elles dans un autre fichier ?Pourquoi ne pas utiliser les méthodes prestashop standards ( classe Db ) ? Link to comment Share on other sites More sharing options...
MalexR Posted June 24, 2014 Author Share Posted June 24, 2014 Bonjour, Le message d'erreur me semble clair "no database selected". Dans ce script vous utilisez des commandes du type mysql_query, cependant je ne vois aucun code mysql_connect ou mysql_select_db pour se connecter à la base et la sélectionner. Sont-t-elles dans un autre fichier ? Pourquoi ne pas utiliser les méthodes prestashop standards ( classe Db ) ? Merci de votre réponse ! Le soucis c'est que je n'ai rien changé entre le passage à la version 1.4 vers 1.5. Ce n'est pas moi qui ai écrit ce script. Comme vous pouvez le voir à cette adresse : http://78.208.165.86/ondeline/surmesure_artenbois.php cela fonctionne parfaitement sur la version 1.4. Mais plus sur la version 1.5 qui se trouve là : http://78.208.165.86/www/surmesure_artenbois.php encore une fois je n'ai rien changé au script ci-dessus ... Une idée ? PS: ne tenez pas compte du thème, j'ai volontairement mis celui par défaut pour m'assurer que cela ne venait pas de là. Link to comment Share on other sites More sharing options...
herve25 Posted June 24, 2014 Share Posted June 24, 2014 (edited) En soi ce n'est pas le script qui pose problème, mais le fait qu'il ne parvienne pas à se connecter à la base de données.Sinon essayez de rajouter le code ci-dessous en début de page pour vous connecter à la base de données. <?php $db = mysql_connect(_DB_SERVER_,_DB_USER_,_DB_PASSWD_); if ( $db ) mysql_select_db(_DB_NAME_) or die ("Impossible de sélectionner la Bdd ".mysql_error()); else die("Connexion impossible à la bdd ".mysql_error()); ?> Edited June 24, 2014 by herve25 (see edit history) Link to comment Share on other sites More sharing options...
MalexR Posted June 24, 2014 Author Share Posted June 24, 2014 Merci ! cela fonctionne, je m'en doutais un peu mais cela ne m'explique pas pourquoi ... l'essentiel étant le résultat ! MERCI ENCORE !! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now