Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 10/06/2014, à 12:03

JuJuMars13

[ PHP ] pb sur Ubuntu 14.04 avec Gedit sur APACHE2

Bonjour,
et voila première fois de ma vie que je poste un problème sur un forum (Google n'est plus mon amis, après 7 ans de débrouille solo)
je crée un site en PHP et je bloque sur un algorithme simple mais je pense que le problème viens du serveur ( quoi que, pas sur)
la page ne m'affiche rien du tout alors que mes autres pages s'affichent. Le code est sensé choisir deux photos au hasard pour les afficher et quand vous votez pour une des deux photos, l'autre change (avec toujours le choix au hasard) mais page blanche. Voici le code :

 <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="style.css" />
<title> VOTE </title>
</head>
<body>
<p> <a href="index.php"> Retour </a> </p>
<?php


choixFunction($_POST['vote'])
{
if (isset($_POST['voteA']))

{
$_POST['voteB']=null;
}
elseif (isset($_POST['voteB']))
{
$_POST['voteA']=null;
}
else
{
echo "ERREUR";
}
$i=rand(0,7);

$image[0]="images/1.png"; 
$image[1]="images/2.jpg";
$image[2]="images/3.png";
$image[3]="images/4.jpg";
$image[4]="images/5.png";
$image[5]="images/6.jpg";
$image[6]="images/7.png";
$image[7]="images/8.png";
?>
<img src="<?php echo $image[$i];?>"/>
}





<section>

<article>

<p>
<?php 

do {
?>
<form action="vote.php" method="post">
</p>
<?php


?>
<div class="cadrePhotoA">

<?php choixFunction(); ?>


<p>
<input type="hidden" name="voteA" value="voteA" />
</p>
<p>
<input type="submit" value="Vote A" />
</p>
<?php
} while($_POST['voteA']);
?>
</form>

</div>
</article>
<?php
do {
?>
<article>
<p>
<form action="vote.php" method="post">
</p>

<div class="cadrePhotoB">

<?php choixFunction(); ?>


<p>
<input type="hidden" name="voteB" value="voteB" />
</p>
<p>
<input type="submit" value="Vote B" />
</p>
<?php
} while($_POST['voteB']);
?>
</form>

</div>
</article>
</section>
</body>
</html>

Ne tenez pas compte des nombreuses incohérences dans le code. Quand ça ne marche pas, je change des trucs je modifie je fais fais des copier/coller a l'arrache.  Mais ce que je veux savoir c'est juste pourquoi j'ai une page blanche, sachant que cette page c'est l'include("vote.php") qui doit apparaitre dans une autre page. Et même quand j'y viens en direct il n'y a rien.

Dernière modification par JuJuMars13 (Le 10/06/2014, à 12:30)

Hors ligne

#2 Le 10/06/2014, à 14:28

bbtux2

Re : [ PHP ] pb sur Ubuntu 14.04 avec Gedit sur APACHE2

Bonjour,

Nettoyer et indenter un minimum  ton code aurais été sympa.

while($_POST['voteA'])

Sans être expert çà veut rien dire, $_POST[''] est et restera ce qu'il est à l'appel de ta page.

Avec quelques modifs :

 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <link rel="stylesheet" href="style.css" /> <title> VOTE </title> </head> <body> <p> <a href="index.php"> Retour </a> </p> <?php function choixFunction($vote) { if (isset($_POST['voteA'])) { $voteB=null; } elseif (isset($_POST['voteB'])) { $voteA=null; } else { echo "ERREUR"; } $i=rand(0,7); $image[0]="images/1.png"; $image[1]="images/2.jpg"; $image[2]="images/3.png"; $image[3]="images/4.jpg"; $image[4]="images/5.png"; $image[5]="images/6.jpg"; $image[6]="images/7.png"; $image[7]="images/8.png"; } ?> <img src="<?php echo $image[$i];?>"/> <section> <article> <p> <?php do { ?> <form action="vote.php" method="post"> </p> <?php ?> <div class="cadrePhotoA"> <?php choixFunction(); ?> <p> <input type="hidden" name="voteA" value="voteA" /> </p> <p> <input type="submit" value="Vote A" /> </p> <?php } while($voteA); ?> </form> </div> </article> <?php do { ?> <article> <p> <form action="vote.php" method="post"> </p> <div class="cadrePhotoB"> <?php choixFunction(); ?> <p> <input type="hidden" name="voteB" value="voteB" /> </p> <p> <input type="submit" value="Vote B" /> </p> <?php } while($voteB); ?> </form> </div> </article> </section> </body> </html>

Hors ligne

#3 Le 10/06/2014, à 14:38

bruno

Re : [ PHP ] pb sur Ubuntu 14.04 avec Gedit sur APACHE2

Je n'ai pas lu le code (pas indenté, pas commenté ⇒ illisible), mais si tu obtiens une page blanche c'est certainement qu'il y a une erreur fatale dans le code de ta page.

Pour voir les retours sur les erreur de code de PHP soit tu ouvres un terminal et tu regardes les logs d'Apache pendant que tu fais tes tests, soit tu modifies ton fichier php.ini pour avoir display_errors = On et error_reporting = E_ALL

EDIT: en regardant rapidement le code, outre l’aberration des boucles while signalé par bbtux2, il y a une erreur de syntaxe assez flagrante : ta fonction n'est pas fermée par une accolade…
Je t'invite à modifier le titre de ton premier message car ce n'est en rien un problème Apache, mais un simple problème de programmation et à demander à un modérateur de déplacer le sujet dans la section approprie du forum. wink

Dernière modification par bruno (Le 10/06/2014, à 14:50)

Hors ligne

#4 Le 10/06/2014, à 14:59

bbtux2

Re : [ PHP ] pb sur Ubuntu 14.04 avec Gedit sur APACHE2

Y a bien l'accolade fermante, mais pas sur la bonne ligne. j'ai eu du mal à la trouver.

Avec les modifs, ça passe (malgré les images que je n'ai pas).

faut juste refaire les sauts à la ligne et l'indentation , rajouter des $voteX  = $_POST['voteX'] par ci par là...

Hors ligne

#5 Le 10/06/2014, à 16:45

JuJuMars13

Re : [ PHP ] pb sur Ubuntu 14.04 avec Gedit sur APACHE2

Merci pour vos réponses, j'ai changé et indenté mon code (qui fonctionne enfin, mais sans les images, j'ai le logo de l'image fendu) :

 <!DOCTYPE html>
<html> 
<head> 
<meta charset="utf-8" /> 
<link rel="stylesheet" href="style.css" /> 
<title> VOTE </title> 
</head> 

<?php $first=true; ?>

<?php 

function photoRand() 
	{ 
		
		$i=rand(0,7); 

		$image[0]="images/1.png"; 
		$image[1]="images/2.jpg"; 
		$image[2]="images/3.png"; 
		$image[3]="images/4.jpg"; 
		$image[4]="images/5.png"; 
		$image[5]="images/6.jpg"; 
		$image[6]="images/7.png"; 
		$image[7]="images/8.png"; 
	return $image[$i];
	} 
?>

<!-- Début -->

<body> 
<?php include("header.php");?>
<p> <a href="index.php"> Retour </a> </p> 
<section> 
<article> 
<p> 
 <?php
if (isset($_POST['voteA'])) 
			{ 
				$change='B'; 
				
				$_POST['voteB']=null;
			} 
		elseif (isset($_POST['voteB'])) 
			{ 
				$change='A';
				
				$_POST['voteA']=null;
			} 
		elseif ($first) 
			{ 
				echo "Votez pour A ou B"; 
			}
		else
			{
				echo "ERREUR";
			} ?> 
<form action="vote.php" method="post"> 
</p> 

<div class="cadrePhotoA"> 
<?php 

if ($first=true || $change =='A')
	{

		$renduA=photoRand();?>
		<p><img src="<?php echo $renduA;?>"/></p> 
<?php 
	}
?> 
</div> 
<p> 
<input type="hidden" name="voteA" value="voteA" /> 
</p> <p> 
<input type="submit" value="Vote A" /> 

</p> 
</form> 
</article> 
 
<article> 
<p> 
<form action="vote.php" method="post"> 
</p> 
<div class="cadrePhotoB"> 
<?php 

if ($first=true || $change =='B')
	{

		$renduB=photoRand();?>
		<p><img src="<?php echo $renduB;?>"/></p> 
		<?php 
	} ?>
</div> 
<p> <input type="hidden" name="voteB" value="voteB" /> 
</p> 
<p> 
<input type="submit" value="Vote B" /> 
<?php $first=false;?>
</p> 
</form> 

</article> 
</section> 
</body> 
</html>

Mais je crois qu'il y a un probleme avec mon serveur Apache qui ne m'affiche pas les erreurs (j'ai suivi la combine : php.ini  changer à = ON, mai rien n'y fait)
quand aux images quand je fait click droit sur le logo image fendu / Afficher l'image j'ai un gros forbidden : => You don't have permission to access /html/images/8.png on this server.
Apache/2.4.7 (Ubuntu) Server at localhost Port 80

Dernière modification par JuJuMars13 (Le 10/06/2014, à 16:50)

Hors ligne

#6 Le 10/06/2014, à 16:59

JuJuMars13

Re : [ PHP ] pb sur Ubuntu 14.04 avec Gedit sur APACHE2

Hop réglé avec :
chmod 775 -R "nom_du_dossier"
Merci à tous...

Hors ligne

#7 Le 10/06/2014, à 17:06

bruno

Re : [ PHP ] pb sur Ubuntu 14.04 avec Gedit sur APACHE2

Ne jamais faire de chmod 775 ou 777 !

Pour les droits sur les fichiers, en supposant que ton site est dans /var/www/html :

sudo chmod -R a+r /var/www/html

Pour les erreurs, tu as bien relancé apache après avoir modifié le php.ini ?
http://fr.php.net/manual/fr/errorfunc.c … lay-errors

Dernière modification par bruno (Le 10/06/2014, à 17:07)

Hors ligne

#8 Le 10/06/2014, à 17:12

JuJuMars13

Re : [ PHP ] pb sur Ubuntu 14.04 avec Gedit sur APACHE2

Oui j'ai relancé apache2. Mais je vais finir par trouver (je trouve quand meme que c'est bien qu'il ne m'affiche rien, ça me force à chercher et à m'améliorer)
Ok c'est fait pour le chmod Merci

Hors ligne