Problème intégration dans code PHP non écrit par mes mains.

Petit nouveau ! | 3 Messages

18 oct. 2016, 06:29

Bonjour a tous,

Alors voilà, mon problème. J'ai repris une page php écrite par un confrére absent, pour y effectuer une intégration.
Mais voilà, rien ne marche, aucune stylisation ne fonctionne.. la div fonctionne pas quoi.
Si quelqu'un a une idée.. car je comprend pas pourquoi :)


Merci beaucoup.
Matheo
<?php
echo '<div style="margin-left:200px;padding:5px;background:#990002;">';
 
$_SESSION['aller_data']['car_id'] = $_GET['vehicle'] ;
 
if( isset($_SESSION['aller_data']) ){
    $_SESSION['aller_data']['transfert-total'] = $_SESSION['aller_data']['transfert-total'] .' <span style="color:#990000;">'. $currency . "</span>";
    $_SESSION['aller_data']['big-total'] = $_SESSION['aller_data']['big-total'] .' <span style="color:#990000;">'. $currency . "</span>";
    $_SESSION['aller_data']['options-aller'] = $_SESSION['aller_data']['options-aller'] .' <span style="color:#990000;">'. $currency . "</span>";
    $_SESSION['aller_data']['assurance'] = $_SESSION['aller_data']['assurance'] .' <span style="color:#990000;">'. $currency . "</span>";
         
    foreach ($aller_data as $key => $text) {
            $message .= "- " . $text .  ": <b>" . get_session_value('aller_data', $key) . "</b><br/>";
            echo $message;
    }
         
    foreach ($car_options as $key => $option_name){
       $message .= "- " . $option_name . ": <b>" . get_session_value('aller_data', $key.'-aller') . "</b> <br/>";
             echo $message;
    }
         
    echo "<br/> <hr> <br/>";
}
 
if( isset($_SESSION['retour_data']) ){
    $_SESSION['retour_data']['options-retour'] = $_SESSION['retour_data']['options-retour'] .' <span style="color:#990000;">'. $currency . "</span>";
    foreach ($retour_data as $key => $text) {
        $message .= "- " . $text . ': <b>'.get_session_value('retour_data', $key) .'</b> <br/>';
                echo $message;
    }
    foreach ($car_options as $key => $option_name){
        $message .= "- " . $option_name . ': <b>'.get_session_value('retour_data', $key.'-retour') .' </b><br/>';
                echo $message;
    }
 }
  
  echo '</div>'; ?>

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

18 oct. 2016, 09:44

salut,

c'est quoi le problème exactement ?
Juste le style qui ne s'affiche pas ?

regarde ce qui est généré comme code html (voir la source dans ton navigateur) pour être certain de ce qui est fait.
parce que bon
<?php
echo '<div style="margin-left:200px;padding:5px;background:#990002;">';
echo 'blabla sur fond rouge';
echo '</div>';
affiche bien une zone rouge décalée de 200px.

c'est les style en ligne qui ne s'affichent pas ? (il est préférable d'avoir une feuille de style que des style en ligne).
est ce qu'il y a des directives csp envoyées dans l'entête ? (visible dans l'onglet réseau des outils développeur de tout navigateur digne de ce nom ;) ).

@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 3 Messages

18 oct. 2016, 10:52

Bonjour, merci de la réponse.
Voici mon code entier pour peut etre mieux comprendre le probleme.
toutes les autres boucles fonctionnesavec du style... mais pas cette boucle la..
<?php
$message = '
<img style="margin-top:12px;margin-bottom:20px; display: block;
    margin: auto;" src="http://lemancab.com/wp-content/themes/leman/img/logo.png"/> <br><br>
<hr style="width:60%;"/>' .
"<h2 style=' text-align: center;'> " . $_POST['nom'] . " " . $_POST['prenom'] . "</h2>" .
"<h4 style='margin-bottom:0px;margin-left:1000px;'>Référence: lc-" . uniqid() . "</h4>" .
"<h4 style='margin-left:1000px;'>Heure de la reservation: " . get_session_value('transfer', 'date') . "</h4> <br/>" .
"<br/>" .
"<br/>" .
"<b style='color:#990000;font-size:20px;'>Détails de la réservation du transfert</b>
<hr style='width:100%;'/>" . "
<br/>
<strong style='font-size:18px;color:#990000;margin-left:1000px;'>Infos:</strong>
<br/>
<p style='font-size:18px;margin-bottom:0px;margin-left:1000px;'>Point de depart: $from </p>
<p style='font-size:18px;margin-left:1000px;'>Destination: $destination </p> <br/>

";
?>

<?php
echo '<div style="margin-left:200px;padding:5px;background:#990002;">';
 
$_SESSION['aller_data']['car_id'] = $_GET['vehicle'] ;
 
if( isset($_SESSION['aller_data']) ){
    $_SESSION['aller_data']['transfert-total'] = $_SESSION['aller_data']['transfert-total'] .' <span style="color:#990000;">'. $currency . "</span>";
    $_SESSION['aller_data']['big-total'] = $_SESSION['aller_data']['big-total'] .' <span style="color:#990000;">'. $currency . "</span>";
    $_SESSION['aller_data']['options-aller'] = $_SESSION['aller_data']['options-aller'] .' <span style="color:#990000;">'. $currency . "</span>";
    $_SESSION['aller_data']['assurance'] = $_SESSION['aller_data']['assurance'] .' <span style="color:#990000;">'. $currency . "</span>";
         
    foreach ($aller_data as $key => $text) {
            $message .= "- " . $text .  ": <b>" . get_session_value('aller_data', $key) . "</b><br/>";
            echo $message;
    }
         
    foreach ($car_options as $key => $option_name){
       $message .= "- " . $option_name . ": <b>" . get_session_value('aller_data', $key.'-aller') . "</b> <br/>";
             echo $message;
    }
         
    echo "<br/> <hr> <br/>";
}
 
if( isset($_SESSION['retour_data']) ){
    $_SESSION['retour_data']['options-retour'] = $_SESSION['retour_data']['options-retour'] .' <span style="color:#990000;">'. $currency . "</span>";
    foreach ($retour_data as $key => $text) {
        $message .= "- " . $text . ': <b>'.get_session_value('retour_data', $key) .'</b> <br/>';
                echo $message;
    }
    foreach ($car_options as $key => $option_name){
        $message .= "- " . $option_name . ': <b>'.get_session_value('retour_data', $key.'-retour') .' </b><br/>';
                echo $message;
    }
 }
  
  echo '</div>'; ?>

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

18 oct. 2016, 11:38

ça donne quoi au final ?

tu as bien des données ?
dans le code fournit les variables suivante n'existe pas
$aller_data
$car_options
$retour_data

ce ne serait une tentative d'utilisation de register globals (qui n'existe plus) ?
peut être remplacer par
$_SESSION['aller_data']
$_SESSION['retour_data']
$_SESSION['car_options']

ceci dit j'ai quand même l'impression que la chose mal foutue car ceci
foreach ($retour_data as $key => $text) {
donne la clef du tableau et sa valeur, ci c'est pour ensuite utiliser la fonction get_session_value (qui d'après sont nom retourne une donnée qui est en session c'est totalement inutile et en plus tu affiche deux fois la même chose ($text devrait logiquement être la même chose que le retour de get_session_value() ).

le code pourrait ressembler à ceci, si j'ai raison sur la provenance des données.
J'en ai profiter pour produire du html un poil plus standard et valide en utilisant la même notation partout et la synatxe heredoc pour l'affichage. un peu de factorisation aussi pour certain truc récurent.
<?php
$currency = '€';
$span = ' <span style="color:#990000;">'. $currency . '</span>';
$heure = get_session_value('transfer', 'date');
$id = uniqid();
$message = <<<eot
<img style="margin-top:12px;margin-bottom:20px; display: block;margin: auto;" src="http://lemancab.com/wp-content/themes/leman/img/logo.png"/>
<br/><br/>
<hr style="width:60%;"/>
<h2 style="text-align: center;">{$_POST['nom']}  {$_POST['prenom']}</h2>
<h4 style="margin-bottom:0px;margin-left:1000px;">Référence: lc-{$id}</h4>
<h4 style="margin-left:1000px;">Heure de la reservation: {$heure}</h4> <br/>
<br/><br/>
<b style="color:#990000;font-size:20px;">Détails de la réservation du transfert</b>
<hr style="width:100%;"/>
<br/>
<strong style="font-size:18px;color:#990000;margin-left:1000px;">Infos:</strong>
<br/>
<p style="font-size:18px;margin-bottom:0px;margin-left:1000px;">Point de depart: {$from} </p>
<p style="font-size:18px;margin-left:1000px;">Destination: {$destination} </p> <br/>
eot;

echo '<div style="margin-left:200px;padding:5px;background:#990002;">';

$_SESSION['aller_data']['car_id'] = $_GET['vehicle'] ;

if (isset($_SESSION['aller_data'])) {
    $_SESSION['aller_data']['transfert-total'] .= $span;
    $_SESSION['aller_data']['big-total'] .= $span;
    $_SESSION['aller_data']['options-aller'] .= $span;
    $_SESSION['aller_data']['assurance'] .= $span;
    echo '<ul>';
    foreach ($_SESSION['aller_data'] as $text) {
        echo '<li>', $text , '</li>';
    }
    echo '</ul><ul>';
    foreach ($car_options as $key => $option_name) {
        echo '<li>', $option_name . ': <b>' , get_session_value('aller_data', $key.'-aller') , '</b> </li>';
    }
    echo '</ul> <hr> <br/>';
}

if (isset($_SESSION['retour_data'])) {
    echo '<ul>';
    $_SESSION['retour_data']['options-retour'] .= $span;
    foreach ($_SESSION['retour_data'] as $text) {
        echo '<li>', $text  , '</li>';
    }
echo '</ul><ul>';
    foreach ($car_options as $key => $option_name) {
        echo '<li>', $option_name . ': <b>' , get_session_value('aller_data', $key.'-retour') , '</b> </li>';
    }
}
echo '</div>';

@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 3 Messages

18 oct. 2016, 11:46

Wow merci.
Mais malheuresement les donnés apres $_SESSION['aller_data']['car_id'] = $_GET['vehicle'] ; ne s'affiche plus :/ sur l'email que je recois..

Enfaite ce code, c'est un emailing d'une reservation que je recois par mail.. que je dois styliser.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

18 oct. 2016, 12:53

commence par l'afficher dans ton navigateur, voir s'il y a des erreurs etc.

ensuite les modifs de code que j'ai fait c'est en fonction de ce que tu donnes donc sujet à extrapolation :)

@+
Il en faut peu pour être heureux ......