Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1631 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  fille en détresse, html php intégration site ... HELP!!

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

fille en détresse, html php intégration site ... HELP!!

n°2239329
impress3d
Posté le 30-09-2014 à 18:46:52  profilanswer
 

Bonjour,  
 
je suis avant tout une newbie et je me fais vraiment violence pour demander de l'aide... (oui je suis trop fière et j'aime faire les chose par moi meme mais la....)
 
donc je vous explique, je suis en train de créer un site dans l'impression 3d, pour faire une tarification juste il me faut donc proposer au client d’intégrer leurs fichiers stl ou obj, puis d'après ce fichier calculer tous ce qu'il faut pour le prix final.
 
J'ai donc trouver sur internet une personne qui propose ça: http://www.3dpartprice.com/
 
Il propose donc les fichiers pour pouvoir intégrer ce système à son propre site.
 
Mais ... ca marche pas c'est à dire que j'arrive rien a en tirer ça fais plusieur jour que je cherche et je suis vraiment à bout j'ai passer 3 jours en tous pour trouver une solution soit avec ce que le site propose ou soit par moi même.... mais par moi même vu que je suis nul de chez nul je vais pas loin ^^
 
je ne demande pas à ce qu'on me fasse le boulot, mais si vous avez des pistes ou des logiciel qui puisse m'aider?
 
Merci encore si vous pouvez éclairer ma lanterne merci à vous!!!!
 
Marie

mood
Publicité
Posté le 30-09-2014 à 18:46:52  profilanswer
 

n°2239376
impress3d
Posté le 01-10-2014 à 10:36:18  profilanswer
 

Je vois que vous etes beaucoup à lire mais zero reponse du coup je sais pas trop comment le prendre.... voici le code qui marche pas et je sais pas pourquoi:
 
<?php require_once("config.php" ); ?>
 
<?php if ($_SERVER['REQUEST_METHOD'] != "POST" ){ ?>
<html>
<head>
<title></title>
 
<script>
function addAnotherFileUploadElement(){
    //document.getElementById('fileUploadElements').innerHTML += '<input type=file name=stlFiles[]>';
    var theDiv = document.getElementById("fileUploadElements" );
    var newNode = document.createElement('span');      
    newNode.innerHTML = "<input type=file name=stlFiles[] multiple>";
    theDiv.appendChild(newNode);
}
 
window.onload = function(){
    var rad = document.customQuote.color;
    for(var i = 0; i < rad.length; i++) {
        rad[i].onclick = function() {
            document.getElementsByName("material" )[0].value = this.className;
        };
    }
}
 
</script>
 
</head>
<body>
<form method="POST" enctype="multipart/form-data" name="customQuote">
STLs or zipped STL Files: <span id="fileUploadElements"><input type="file" name="stlFiles[]" multiple></span><a href="javascript:addAnotherFileUploadElement()">Add another</a><br>
<!-- Material: -->
<select name="material" style="display: none;">
<?php
     
    foreach(partPriceConfig::$materials as $key=>$val){
        echo "<option value=$key>$key";
        if ($val['fullName'] != null)
            echo " ({$val['fullName']})";
        echo "</option>";
    }
     
?>
</select> <!--br-->
<style>
table#availableColors{
    background-image: url("dimension.png" );
    border-spacing: 1px;
}
 
table#availableColors tr:nth-child(odd){  
  border-top: gray 2px solid;  
}
 
table#availableColors td:first-child{
    background: white;
    text-align: right;
}
table#availableColors td{
    border: solid 1px darkgray;
    text-align: center;
    padding: 5px;
}
 
</style>
Available Materials/Colors:
<table id="availableColors">
<?php
 
    $colors = array();
    foreach(partPriceConfig::$materials as $material){
        foreach($material["colors"] as $color)
            if (in_array($color, $colors) == false)
                array_push($colors, $color);
    }
 
    $checkedFirst = false;
     
    foreach(partPriceConfig::$materials as $key => $material){
             
        echo "<tr><td>$key";
        if (partPriceConfig::$materials[$key]["fullName"] != null)
            echo " (".partPriceConfig::$materials[$key]["fullName"]." )";
        echo ": </td>";
         
         
        foreach($colors as $color){
            if (in_array($color, $material["colors"])){
                echo "<td style='background: {$color};'><input type='radio' name='color' value='{$color}' class='".$key."' ";
                 
                if ($checkedFirst == false){
                    echo "checked";
                    $checkedFirst = true;
                }
                     
                echo "></td>";
            }
            else
                echo "<td></td>";
        }
        echo "</tr>";
    }
?>
 
</table>
 
Layer Height: <input type="text" name="layerHeight" value="<?php echo partPriceConfig::$layerHeights["default"]["amount"] ?>">
(<?php echo partPriceConfig::$layerHeights["default"]["unit"];?>,  
min: <?php echo partPriceConfig::$layerHeights["min"]["amount"].partPriceConfig::$layerHeights["min"]["unit"] ?>,  
max: <?php echo partPriceConfig::$layerHeights["max"]["amount"].partPriceConfig::$layerHeights["max"]["unit"] ?> )
<br>
Infill Percentage: <input type="text" name="infillPercentage" value="30"> (0 to 100%)<br>
Support Removal: <input type="checkbox" name="supportRemoval"> (weight * <?php echo partPriceConfig::$addOns["supportRemovalMultiplier"] ?> )<br>
Vapor Polishing: <input type="checkbox" name="vaporPolishing"> (weight * <?php echo partPriceConfig::$addOns["vaporPolishingMultiplier"] ?>, eligible materials: <?php
 
$materialsVaporPolished = array();
foreach(partPriceConfig::$materials as $key => $value)
    if ($value["canBeVaporPolished"] == true)
        $materialsVaporPolished[] = $key;
 
echo implode("/",$materialsVaporPolished);
   
?> )<br>
Shipping: <input type="radio" name="shipping" value="pickup"> pickup (free), <input type="radio" name="shipping" value="delivery" checked> delivery (<?php echo '$'.number_format(partPriceConfig::$deliveryCosts["base"]["amount"],2).' '.partPriceConfig::$deliveryCosts["base"]["unit"].' + $'. number_format(partPriceConfig::$deliveryCosts["weightPrice"]["amount"],2).' '.partPriceConfig::$deliveryCosts["weightPrice"]["unit"] ?> )<br>
Rush Printing: <input type="checkbox" name="rushPrinting"><br>
 
<input type="submit">
</form>
 
</body>
</html>
<?php } ?>
 
<?php
 
function buildMultipartPost($fields, $files, $boundary="" ){
     
    //echo "<pre>".print_r($fields,true)."</pre>";
    //echo "<pre>".print_r($files)."</pre>";
     
    $output = "";
    $disallowedChars = array("\0", "\"", "\r", "\n" );
    foreach($fields as $key => $value){
        $key = str_replace($disallowedChars, "_", $key);
        $value = str_replace($disallowedChars, "_", $value);
        $output .= $boundary . "\n" . "Content-Disposition: form-data; name=\"".$key."\"\n\n".$value."\n";
    }
     
    foreach($files as $key => $value){
        $key = str_replace($disallowedChars, "_", $key);
         
        if (is_array($value["name"]) == false){
            $value['name'] = str_replace($disallowedChars, "_", $value['name']);
            $value['type'] = str_replace($disallowedChars, "_", $value['type']);
            $output .= $boundary . "\n" . "Content-Disposition: form-data; name=\"".$key."\"; filename=\"".$value['name']."\"\n" . "Content-Type: ".$value['type']."\n\n".file_get_contents($value['tmp_name'])."\n";
        }
        else{
            for($i=0; $i<count($value["name"]); $i++){
                if ($value["error"][$i] != 0)
                    continue;
                $value['name'][$i] = str_replace($disallowedChars, "_", $value['name'][$i]);
                $value['type'][$i] = str_replace($disallowedChars, "_", $value['type'][$i]);
                $output .= $boundary . "\n" . "Content-Disposition: form-data; name=\"".$key."[]\"; filename=\"".$value['name'][$i]."\"\n" . "Content-Type: ".$value['type'][$i]."\n\n".file_get_contents($value['tmp_name'][$i])."\n";
            }
        }
    }
     
    return $output.$boundary."--";
}
 
if ($_SERVER['REQUEST_METHOD'] == "POST" ){
     
    //print_r($_FILES);
     
    $boundary = "------WebKitFormBoundary".substr(md5(microtime(true)),0,16);
     
    $ch = curl_init("http://api.3dpartprice.com" );
    curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: multipart/form-data; boundary=".substr($boundary,2)));
    curl_setopt($ch, CURLOPT_POST, true);
    $_POST["configFile"] = urlencode(base64_encode(serialize(get_class_vars("partPriceConfig" ))));
    $_POST["density"] = partPriceConfig::$materials[$_POST["material"]]["density"]["amount"];
    curl_setopt($ch, CURLOPT_POSTFIELDS, buildMultipartPost($_POST, $_FILES, $boundary));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_TIMEOUT, 60);
    $response = curl_exec($ch);
 
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
     
    if ($httpCode != 200){
        echo "http code: ".$httpCode.", error occured!";
        echo "<pre>".print_r(unserialize($response),true)."</pre>";
    }
    else{
        $responseArray = unserialize($response);
        $totalWeight = 0;
        $totalTime = 0;
         
        foreach($responseArray as $model){
            $totalWeight += $model["filamentUsed"]["amount"];
            $totalTime += $model["printDuration"]["amount"];
        }
         
        $summary = array();
         
        $summary["metadata"]["material"] = $_POST["material"];
        $summary["metadata"]["color"] = $_POST["color"];
        $summary["metadata"]["infillPercentage"] = $_POST["infillPercentage"];
        $summary["metadata"]["layerHeight"] = $_POST["layerHeight"];
        $summary["metadata"]["supportRemoval"] = isset($_POST["supportRemoval"])?"true":"false";
        $summary["metadata"]["vaporPolishing"] = isset($_POST["vaporPolishing"])?"true":"false";
        $summary["metadata"]["shipping"] = $_POST["shipping"];
        $summary["metadata"]["rushPrinting"] = isset($_POST["shipping"])?"true":"false";
         
        $summary["totalWeight"]["amount"] = $totalWeight;
        $summary["totalWeight"]["unit"] = "grams";
         
        $summary["totalTime"]["amount"] = $totalTime;
        $summary["totalTime"]["unit"] = "seconds";
         
        //$summary["material"] = partPriceConfig::$materials[$_POST["material"]];
         
        $summary["costs"]["printTime"]["amount"] = number_format($totalTime*1/(60*60)*partPriceConfig::$printingCost["amount"],2);
        $summary["costs"]["printTime"]["calculation"] = $totalTime." seconds * (1 hour)/(60*60 seconds) * \$".partPriceConfig::$printingCost["amount"].' '.partPriceConfig::$printingCost["unit"];
        $summary["costs"]["printTime"]["unit"] = "USD";
         
        $summary["costs"]["material"]["amount"] = number_format($totalWeight * partPriceConfig::$materials[$_POST["material"]]["price"]["amount"],2);
        $summary["costs"]["material"]["calculation"] = number_format($totalWeight,2)." grams * ".number_format(partPriceConfig::$materials[$_POST["material"]]["price"]["amount"],2). ' '.partPriceConfig::$materials[$_POST["material"]]["price"]["unit"];
        $summary["costs"]["material"]["unit"] = "USD";
         
        if (isset($_POST["supportRemoval"])){
            $summary["costs"]["supportRemoval"]["amount"] = number_format($summary["costs"]["material"]["amount"] * (partPriceConfig::$addOns["supportRemovalMultiplier"]-1),2);
            $summary["costs"]["supportRemoval"]["calculation"] = number_format($summary["costs"]["material"]["amount"],2)." USD * (".partPriceConfig::$addOns["supportRemovalMultiplier"]."-1) supportRemovalMultiplier";
            $summary["costs"]["supportRemoval"]["unit"] = "USD";
        }
         
        if (isset($_POST["vaporPolishing"])){
            $summary["costs"]["vaporPolishing"]["amount"] = number_format($summary["costs"]["material"]["amount"] * (partPriceConfig::$addOns["vaporPolishingMultiplier"]-1),2);
            $summary["costs"]["vaporPolishing"]["calculation"] = number_format($summary["costs"]["material"]["amount"],2)." USD * (".partPriceConfig::$addOns["vaporPolishingMultiplier"]."-1) vaporPolishingMultiplier";
            $summary["costs"]["vaporPolishing"]["unit"] = "USD";
        }
         
        if ($_POST["shipping"] == "delivery" ){
            $summary["costs"]["delivery"]["amount"] = number_format(partPriceConfig::$deliveryCosts["base"]["amount"] + $totalWeight*partPriceConfig::$deliveryCosts["weightPrice"]["amount"],2);
            $summary["costs"]["delivery"]["calculation"] = number_format(partPriceConfig::$deliveryCosts["base"]["amount"],2) . " ".partPriceConfig::$deliveryCosts["base"]["unit"].' base + '.number_format($totalWeight,2).' grams * '.number_format(partPriceConfig::$deliveryCosts["weightPrice"]["amount"],2).' '.partPriceConfig::$deliveryCosts["weightPrice"]["unit"];
            $summary["costs"]["delivery"]["unit"] = "USD";
        }
         
        $summary["subtotal"]["amount"] = 0;
        $summary["subtotal"]["calculation"] = "";
        foreach($summary["costs"] as $costName => $costArray){
            $summary["subtotal"]["amount"] += $costArray["amount"];
            $summary["subtotal"]["calculation"] .= $costArray["amount"]." ". $costArray["unit"]." ".$costName." + ";
        }
        $summary["subtotal"]["calculation"] = substr($summary["subtotal"]["calculation"],0,-3);
        $summary["subtotal"]["unit"] = "USD";
         
        if (isset($_POST["rushPrinting"])){
            $summary["total"]["amount"] = number_format($summary["subtotal"]["amount"]*partPriceConfig::$addOns["rushPrintingMultiplier"],2);
            $summary["total"]["calculation"] = $summary["subtotal"]["amount"]." ".$summary["subtotal"]["unit"]." subtotal * ".partPriceConfig::$addOns["rushPrintingMultiplier"].' rushDeliveryMultiplier';
        }
        else{
            $summary["total"]["amount"] = number_format($summary["subtotal"]["amount"],2);
            $summary["total"]["calculation"] = $summary["subtotal"]["amount"].' subtotal';
        }
        $summary["total"]["unit"] = "USD";
         
        echo "<pre><h2>Total Costs</h2>".print_r($summary,true)."</pre>";
         
        echo "<pre><h2>API Response</h2>".print_r($responseArray,true)."</pre>";
         
    }
     
    //echo "<pre>".print_r($response,true)."</pre>";
}    
 
 
 
 
Du coup j'ai essayer dans WIX et ça me met:
 
The method POST is not allowed for this resource.  
 
 
Merci à vous

n°2239380
rufo
Pas me confondre avec Lycos!
Posté le 01-10-2014 à 11:03:47  profilanswer
 

Décidément, c'est la semaine des gens qui font leur site sur Wix :pfff:  
C'est sûr que tu risques pas d'y arriver. J'ai regardé l'API à télécharger (48 Mo !!!) y'a des fichiers php à installer sur ton site, chose que Wix ne permet pas il me semble.
 
Et vue que tu dis que la méthode POST est pas autorisée vers des urls différents de celle de Wix pour appeler l'api du site web que t'as donné, ça semble être mort.
 
Tu ferais mieux de passer par un CMS type Wordpress (gratuit) que tu installes chez un hébergeur (1&1&, OVH, Olympe.in, ce dernier étant gratuit...). Tu auras beaucoup plus de souplesse pour faire ton site :o
 
Wix semble être très bien pour ceux qui ont des besoins très basiques mais pas pour des besoins spécifiques nécessitant la production de code PHP.
 
Edit : merci d'utiliser la balise [code] quand tu postes du code source, a fortiori quand il est aussi long.


Message édité par rufo le 01-10-2014 à 11:04:28

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2239392
impress3d
Posté le 01-10-2014 à 11:45:41  profilanswer
 

Desole pour la balise code je n'ai pas l'habitude comme tu peux le voir, du coup je vais faire simple ça sera sur demande de devis pour commencer et plus tard on verra je me ferais faire un site même si c'est payant mes nerf en peuvent plus lol. merci quand même


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  fille en détresse, html php intégration site ... HELP!!

 

Sujets relatifs
Site Web type Présentation Nexus 5Site en plusieurs langues : URL unique ou sous-domaines ?
Modifier un site préconstruitHTML+FLASH Créer un lecteur WebRadio
Comment modifier la fonction d'un boutoncacher une page sur un site
Site de partage entre étudiants ?Régler la souris pour mon site
Forcer l'intégration d'une police sur un site Internet 
Plus de sujets relatifs à : fille en détresse, html php intégration site ... HELP!!


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR