Je viens d'essayer et toujours le même problème à la fin de la procédure.
Même message...
body {font-family: roboto,sans-serif}
$pdostat->bindValue(':pseudo', $pseudo, PDO::PARAM_STR);
et dans cette ligne d'où vient id ? 'id' => $id));
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
if( session_id()=='' ){ session_start(); }
//if (isset($_SESSION['id']) AND isset($_SESSION['pseudo']))
//{
//session_start();
// connexion a la bdd
require_once 'config.php';
/* Initialisation de la variable avatar*/
$avatar= "/avatars/0001.png";
$pdostat = $bdd->prepare('UPDATE membres SET avatar = :avatar WHERE id = :id');
$pdostat->bindValue(':avatar', $avatar, PDO::PARAM_STR);
$pdostat->bindValue(':pseudo', $pseudo, PDO::PARAM_STR);
$pdostat->execute(array(
'avatar' => $avatar,
'id' => $id));
$_SESSION['avatar'] = $avatar;
header('page_test.html');
exit;
?>
document.getElementById("devisun").addEventListener("submit", function(e) {
e.preventDefault();
alert('test');
})
<form id="devisun">
<h1>Nous contacter</h1>
<input type="text" class="name" maxlength="20" placeholder="Votre Nom" onfocus="this.placeholder=''" onblur="this.placeholder='Votre Nom'" required>
<input type="email" class="email" placeholder="Indiquez une adresse email valide" onfocus="this.placeholder=''" onblur="this.placeholder='Entrez une adresse email valide'" required>
<textarea rows="1" placeholder="Soyez clair dans votre ..." class="message" onfocus="this.placeholder=''" onblur="this.placeholder='Soyez clair dans votre ...'" required></textarea>
<button type="submit">Envoyer votre devis</button>
</form>
@supports (-webkit-touch-callout: none) {
/* mettre ici du css spécifique pour safari sur ios */
}
Efeelios a écrit :
cependant il ignore les required des input, si quelqu'un peut m'éclairer comment je peux les vérifier avant d'afficher la pop up?
Efeelios a écrit :
et aussi j'en profitesi quelqu'un peut me dire comment mettre des Apostrophe dans un champ de caractère
j'ai essayé de les doubler mais apparement je suis encore à côté de la plaqueonblur="this.placeholder='test'"
![]()
'test'
avec des quotesonblur="this.placeholder='\'test\''"
pour ne pas que les guillemets autour de test coupe ton string.<button type="submit" class="btnfootersubmit" onclick="popup()">Envoyer</button>
suivi de function popup() {
onclick = alert('test');
}
c'était vraiment simple en fait onblur="this.placeholder='test'"
j'ai essayé de les doubler mais apparement je suis encore à côté de la plaque <div class="rightfooter boxfooter">
<h2>Demande de devis</h2>
<div class="contentfooter">
<form action="">
<div class="emailfooter">
<div class="textfooter">Email *</div>
<input type="email" placeholder="gngngng." required>
</div>
<div class="msgfooter">
<div class="textfooter">Message *</div>
<textarea cols="25" rows="2" placeholder="gngngn" required></textarea>
</div>
<div class="btnfooter">
<button type="submit">Envoyer</button>
</div>
function popupBasique(page) {
window.open(page);
}
avec un href javascript:popupBasique('popup.html')
var btnfootersubmit = document.getElementsByClassName('btnfootersubmit');
btnfootersubmit.addEventListener('click',openModal);
function openModal(){
overlay.style.display = 'block';
}
mais ça ne fonctionne pas.<link rel="alternate" hreflang="fr" href="https://www.monsite.fr/fr/" />
<link rel="alternate" hreflang="en" href="https://www.monsite.fr/en/" />
Google a écrit :
Ajoutez des éléments <link rel="alternate" hreflang="lang_code"... > à l'en-tête de la page pour indiquer à Google toutes ses variantes linguistiques et régionales. Cette méthode est utile si vous n'avez pas de sitemap ou si vous n'avez pas la possibilité de spécifier des en-têtes de réponse HTTP pour votre site.
Chaque variante de page doit inclure un ensemble d'éléments <link> dans l'élément <head>, soit un lien pour chaque variante, y compris la page elle-même. L'ensemble de liens est identique pour chaque version de la page.
<link rel="alternate" href="https://en.monsite.fr" hreflang="en-us"/>
à mettre sur la page html en Français.<link rel="alternate" href="https://monsite.fr" hreflang="fr"/>
à mettre sur la page html en Anglais.wrapper {
height:100vh;
display:flex;
flex-direction:column
}
.a { /* on laisse le contenu faire */}
.b{
flex-grow:1;
overflow:auto;
}
.wrapper {
height:100vh;
display:grid;
grid-template-row: auto 1fr ;
}
.a {/* on laisse le contenu faire */}
.b {
overflow:auto;
}
height: calc(96vh - 90px)
height: auto
overflow: auto
#banniere_image
{
width: 90%;
margin-top: 3%;
height: 180px;
position: fixed;
margin-bottom: 4%;
}
pour la version mobile, ça donne ce que l'on voit.body {font-family: Roboto, -apple-system, BlinkMacSystemFont, "Segoe UI", Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", arial, helvetica, verdana, sans-serif}
@media screen and (min-width: 769px)
{
@font-face
{
font-family: roboto;
src :
url ("../font/roboto-regular.woff2") format ("woff2"),
url ("../font/roboto-regular.woff") format ("woff"),
url ("../font/roboto-italic.woff2") format ("woff2"),
url ("../font/roboto-italic.woff") format ("woff"),
url ("../font/roboto-bold.woff2") format ("woff2"),
url ("../font/roboto-bold.woff") format ("woff");
}
body {font-family: roboto, arial, helvetica, verdana, sans-serif}
}
<form method="post" id="sectionForm">
<input type="checkbox" name="techniques[]" value="valeur1"> Technique 1<br/>
<input type="checkbox" name="techniques[]" value="valeur2"> Technique 2<br/>
<input type="checkbox" name="techniques[]" value="valeur3"> Technique 3<br/>
<input type="checkbox" name="techniques[]" value="valeur4"> Technique 4<br/>
<input type="submit">
</form>
<script>
//on selectionne notre form sur lequel on souhaite écouter les évenements
const formulaire = document.querySelector('#sectionForm');
//si on clic sur "Envoyer" on vérifi si il y a un minimum de case cochées:
formulaire.onsubmit = function(){
if(verifier_si_cochee('techniques[]'))
return true;
else {
//on affiche un petit message
formulaire.append("Vous devez cocher au moins une case");
//et on bloque le soumission du form:
return false;
}
}
function verifier_si_cochee(name_input) {
//avec cette fonction, on boucle chaque case et retourne true si ya une case cochée
let input=formulaire.querySelectorAll('input[name="'+name_input+'"]')
for (let i = 0; i < input.length; i++) {
if(input[i].checked)
return true;
}
//sinon on retourne false
return false;
}
</script>
const form = document.querySelector('#sectionForm');
const checkboxes = form.querySelectorAll('input[type=checkbox]');
<form method="post" action="">
<br />
<h2 >esches utilisees </h2>
<input type="checkbox" name="technique[]" value="perle">perle
<input type="checkbox" name="technique[]" value="graine">graines
<input type="checkbox" name="technique[]" value="asticot">asticot/pinkies
<input type="checkbox" name="technique[]" value="pelets">pelets
<br />
<h2>meteo: </h2>
<input type="checkbox" name="meteo[]" value="vaseux">vaseux
<input type="checkbox" name="meteo[]" value="vent">vent
<input type="checkbox" name="meteo[]" value="pluie">pluie
<input type="checkbox" name="meteo[]" value="neige">neige
<input type="checkbox" name="meteo[]" value="soleil">soleil
<input type="checkbox" name="meteo[]" value="nuageux">nuageux
<br />
<input type="submit" name="submit" value="Valider" />
<?php
if( session_id()=='' )
{
session_start();
}
require_once 'config.php';
$err_connexion = array();
if(isset($_POST['connexmembre']) )
{
if( !empty($_POST["pseudo"]) && !empty($_POST["password1"]) )
{
// requete : username existe ?
$pdostat = $bdd->prepare("SELECT pseudo, password1 FROM membres WHERE pseudo = [langue]seudo");
$pdostat->bindvalue(':pseudo',$_POST['pseudo'],PDO::PARAM_STR);
$pdostat->execute();
if( $pdostat->rowCount()>0 ) // username OK
{
$row = $pdostat->fetch();
// on compare le mot de passe entré avec celui enregistré en bdd
if( password_verify($_POST['password1'], $row['password1']) ) // pwd OK
{
// Mise en SESSION
$_SESSION['id'] = true;
$_SESSION['pseudo'] = $POST['pseudo'];
// ATTENTION ! ON NE MET JAMAIS LE MOT DE PASSE EN SESSION !!
// on redirige vers l'espace membre
header('Location:page_test.html');
exit();
} else{
$err_connexion = 'Identifiant et/ou mot de passe incorrect.';
}
}
}
}
?>
Louis_9876 a écrit :
La position fixed ne marche pas sur safari tel que :background: url(exemple) no-repeat fixed; background-size: 200%; background-position: center top;
J'aimerais que le background prenne la largeur de la div, mais pas la hauteur.
Background-size cover marche sur la version grand écran de mon site iconic-i-clash.com, mais zoom énormément sur la tête du model sur la version mobile.
Louis_9876 a écrit :
Je sais que position: fixed; marche très bien sur safari mais quand je le met, dans #banniere_image, les 2 divs se mettent en position sticky en dessous des autres élément de la page.
<h1><strong>Nous sommes des GEEKS !</strong></h1>
h1 { white-space:nowrap;}
function dd($x){
echo '<pre>';
print_r($x);
echo '</pre>';
}
//header("Location: page_test.html?");
echo '<h1>connected</h1>'; die;
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
dd($_POST);
$insertion = $req->fetch();
dd($insertion);
function password_verify($password1, $password2){
.....
}
Louis_9876 a écrit :
Les gens sont un peu gonflés de ne pas te répondre.
boteha_2 a écrit :
Excuse-moi mais je ne comprend pas...
<?php
$dbname= 'mondeideal';
$user = 'root';
$password = '';
$host = '127.0.0.1';
try {
$bdd = new PDO('mysql:host='.$host .';dbname='.$dbname, $user, $password );
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$bdd->exec("SET CHARACTER SET utf8");
} catch (PDOException $e) {
echo "<p>Erreur : " . $e->getMessage() . "</p>";
exit();
}
?>
<?php
error_reporting(E_ALL);
ini_set("display-errors",1);
if( session_id()=='' )
{
session_start();
}
// connexion a la bdd
require_once 'config.php';
unset($_SESSION['islogged']);
unset($_SESSION['pseudo']);
// --------------
//Connexion
if(isset($_POST['connexmembre']) )
{
if (!empty($pseudo) && !empty($password1)) {
$pseudo = $_POST['pseudo'];
$password1 = $_POST['password1'];
$req = $bdd->prepare('SELECT id FROM membres WHERE pseudo = ?');
$req->execute(array($pseudo));
$insertion = $req->fetch();
if ($insertion && password_verify($password1, $insertion['password1'])) {
session_start();
$_SESSION['id'] = $insertion['id'];
$_SESSION['pseudo'] = $pseudo;
header("Location: page_test.html?");
}
else {
echo '<div class="error-login">IDENTIFICATION KO !</div>';
}
}
}
?>
parsimonhi a écrit :
Ce n'est pas "-Roboto", mais "Roboto".,
background: url(exemple) no-repeat fixed;
background-size: 200%;
background-position: center top;
#banniere_image
{
margin-top: 30px;
height: 250px;
background: url(/telecharger.php?fichier=foreach.jpg&dossier=1) fixed no-repeat;
background-size: cover;
position: relative;
margin-left: auto;
margin-right: auto;
max-width: 90%;
-webkit-max-width: 90%;
}
#banniere_description
{
position: absolute;
bottom: 0;
width: 100%;
height: 40px;
}
J'ai cru voir un gros min-height !
(Titi)